OSDN Git Service

* darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT to 64.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-11-07  Aldy Hernandez  <aldyh@redhat.com>
2
3         * doc/invoke.texi: Add -maltivec, -mno-altivec, and -mabi=altivec
4         for rs6000.
5
6         * config/rs6000/rs6000.h (MASK_ALTIVEC): New.
7         (TARGET_ALTIVEC): New.
8         (TARGET_SWITCHES): Add altivec.
9         (FIRST_PSEUDO_REGISTER): Change to 109.
10         (CALL_USED_REGISTERS): Same.
11         (FIRST_ALTIVEC_REGNO): New.
12         (LAST_ALTIVEC_REGNO): New.
13         (ALTIVEC_REGNO_P): New.
14         (UNITS_PER_ALTIVEC_WORD): New.
15         (ALTIVEC_VECTOR_MODE): New.
16         (FIXED_REGISTERS): Add altivec registers.
17         (REG_ALLOC_ORDER): Same.
18         (HARD_REGNO_NREGS): Adjust for altivec registers.
19         (HARD_REGNO_MODE_OK): Same.
20         (MODES_TIEABLE_P): Same.
21         (REGISTER_MOVE_COST): Same.
22         (REGNO_REG_CLASS): Same.
23         (reg_class): Add ALTIVEC_REGS.
24         (REG_CLASS_NAMES): Same.
25         (REG_CLASS_CONTENTS): Same.
26         (REG_CLASS_FROM_LETTER): Add 'v' constraint for ALTIVEC_REGS.
27         (ALTIVEC_ARG_RETURN): New.
28         (FUNCTION_VALUE): Handle VECTOR_TYPE.
29         (LIBCALL_VALUE): Handle altivec vector modes.
30         (VECTOR_MODE_SUPPORTED_P): New.
31         (ALTIVEC_ARG_MIN_REG): New.
32         (ALTIVEC_ARG_MAX_REG): New.
33         (ALTIVEC_ARG_NUM_REG): New.
34         (FUNCTION_VALUE_REGNO_P): Return true for altivec return register.
35         (FUNCTION_ARG_REGNO_P): Support passing args in altivec registers.
36         (REGISTER_NAMES): Add altivec regs.
37         (DEBUG_REGISTER_NAMES): Same.
38         (ADDITIONAL_REGISTER_NAMES): Same.
39         (rs6000_builtins): New.
40         (MD_EXPAND_BUILTIN): New.
41         (MD_INIT_BUILTINS): New.
42         (LEGITIMATE_OFFSET_ADDRESS_P): This addressing mode is not valid
43         for AltiVec instructions.
44         (LEGITIMATE_LO_SUM_ADDRESS_P): Same.
45         (HARD_REGNO_MODE_OK): Altivec modes can only go in altivec
46         registers.
47         (SECONDARY_MEMORY_NEEDED): We need memory to copy vector modes.
48         (TARGET_SWITCHES): Add no-altivec.
49         (DATA_ALIGNMENT): Align vectors to 128 bits.
50         (TARGET_OPTIONS): Add abi= option.
51         Add rs6000_abi_string extern.
52         (LOCAL_ALIGNMENT): New.
53         (CPP_CPU_SPEC): Define __ALTIVEC__ when -maltivec.
54         (MASK_ALTIVEC_ABI): New.
55         (TARGET_ALTIVEC_ABI): New.
56         (CONDITIONAL_REGISTER_USAGE): Set first 20 AltiVec registers to
57         call-saved.
58         (STACK_BOUNDARY): Adjust for altivec.
59         (BIGGEST_ALIGNMENT): Same.
60         (rs6000_args): Add vregno.
61         (USE_ALTIVEC_FOR_ARG_P): New.
62         (FIXED_REGISTERS): Add vrsave register.
63         (CALL_USED_REGISTERS): Same.
64         (CONDITIONAL_REGISTER_USAGE): Set VRSAVE info.
65         (VRSAVE_REGNO): New.
66         (reg_class): Add VRSAVE_REGS.
67         (REG_CLASS_NAMES): Same.
68         (REG_CLASS_CONTENTS): Same.
69         (REGNO_REG_CLASS): Same.
70         
71         * config/rs6000/sysv4.h (STACK_BOUNDARY): Adjust for altivec.
72         (ABI_STACK_BOUNDARY): Same.
73         (BIGGEST_ALIGNMENT): Same.
74         (ADJUST_FIELD_ALIGN): Remove undef.  Define anew.
75         (ROUND_TYPE_ALIGN): Same.
76         
77         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
78         to 64.
79
80         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
81         to 64.
82
83         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
84         to 64.
85
86         * config/rs6000/rs6000.c (rs6000_expand_builtin): New.
87         (altivec_expand_builtin): New.
88         (altivec_init_builtins): New.
89         (TARGET_EXPAND_BUILTIN): New.
90         (TARGET_INIT_BUILTINS): New.
91         (rs6000_init_builtins): New.
92         (struct builtin_description): New.
93         (bdesc_2arg): New.
94         (rs6000_reg_names): Add altivec registers.
95         (alt_reg_names): Same.
96         (secondary_reload_class): Altivec regs can hold altivec regs and
97         memory.
98         (rs6000_emit_move): Force constants into memory for AltiVec moves.
99         (print_operand): Add 'y' case for printing altivec memory
100         operands.
101         (rs6000_legitimize_address): Legitimize vector addresses into
102         [REG+REG] or [REG].
103         (altivec_expand_binop_builtin): New.
104         New string rs6000_current_abi.
105         (rs6000_override_options): Call rs6000_parse_abi_options.
106         (rs6000_parse_abi_options): New.
107         (function_arg_boundary): Vector arguments must be 16
108         byte aligned.
109         (function_arg_advance): Handle vector arguments.
110         (function_arg_partial_nregs): Same.
111         (init_cumulative_args): Same.
112         (function_arg): Same.
113
114         * config/rs6000/rs6000.md (altivec_lvx): New.
115         (type): Add altivec attribute.
116         (movv4si): New.
117         (*movv4si_internal): New.
118         (movv16qi): New.
119         (*movv16qi_internal): New.
120         (movv8hi): New.
121         (*movv8hi_internal1): New.
122         (movv4sf): New.
123         (*movv4sf_internal1): New.
124         (altivec_stvx): New.
125         (vaddubm): New.
126         (vadduhm): New.
127         (vadduwm): New.
128         (vaddfp): New.
129         (vaddcuw): New.
130         (vaddubs): New.
131         (vaddsbs): New.
132         (vadduhs): New.
133         (vaddshs): New.
134         (vadduws): New.
135         (vaddsws): New.
136         (vand): New.
137         (vandc): New.
138         (vavgub): New.
139         (vavgsb): New.
140         (vavguh): New.
141         (vavgsh): New.
142         (vavguw): New.
143         (vavgsw): New.
144         (vcmpbfp): New.
145         (vcmpequb): New.
146         (vcmpequh): New.
147         (vcmpequw): New.
148         (vcmpeqfp): New.
149         (vcmpgefp): New.
150         (vcmpgtub): New.
151         (vcmpgtsb): New.
152         (vcmpgtuh): New.
153         (vcmpgtsh): New.
154         (vcmpgtuw): New.
155         (vcmpgtsw): New.
156         (vcmpgtfp): New.
157         (vcmpgefp): New.
158         (vcmpgtub): New.
159         (vcmpgtsb): New.
160         (vcmpgtuh): New.
161         (vcmpgtsh): New.
162         (vcmpgtuw): New.
163         (vcmpgtsw): New.
164         (vcmpgtfp): New.
165         (vmaxub): New.
166         (vmaxsb): New.
167         (vmaxuh): New.
168         (vmaxsh): New.
169         (vmaxuw): New.
170         (vmaxsw): New.
171         (vmaxfp): New.
172         (vmrghb): New.
173         (vmrghh): New.
174         (vmrghw): New.
175         (vmrglb): New.
176         (vmrglh): New.
177         (vmrglw): New.
178         (vminub): New.
179         (vminsb): New.
180         (vminuh): New.
181         (vminsh): New.
182         (vminuw): New.
183         (vminsw): New.
184         (vminfp): New.
185         (vmuleub): New.
186         (vmulesb): New.
187         (vmuleuh): New.
188         (vmulesh): New.
189         (vmuloub): New.
190         (vmulosb): New.
191         (vmulouh): New.
192         (vmulosh): New.
193         (vnor): New.
194         (vor): New.
195         (vpkuhum): New.
196         (vpkuwum): New.
197         (vpkpx): New.
198         (vpkuhss): New.
199         (vpkshss): New.
200         (vpkuwss): New.
201         (vpkswss): New.
202         (vpkuhus): New.
203         (vpkshus): New.
204         (vpkuwus): New.
205         (vpkswus): New.
206         (vrlb): New.
207         (vrlh): New.
208         (vrlw): New.
209         (vslb): New.
210         (vslh): New.
211         (vslw): New.
212         (vsl): New.
213         (vslo): New.
214         (vsrb): New.
215         (vrsh): New.
216         (vrsw): New.
217         (vsrab): New.
218         (vsrah): New.
219         (vsraw): New.
220         (vsr): New.
221         (vsro): New.
222         (vsububm): New.
223         (vsubuhm): New.
224         (vsubuwm): New.
225         (vsubfp): New.
226         (vsubcuw): New.
227         (vsububs): New.
228         (vsubsbs): New.
229         (vsubuhs): New.
230         (vsubshs): New.
231         (vsubuws): New.
232         (vsubsws): New.
233         (vsum4ubs): New.
234         (vsum4sbs): New.
235         (vsum4shs): New.
236         (vsum2sws): New.
237         (vsumsws): New.
238         (vxor): New.
239
240 2001-11-07  Daniel Berlin  <dan@cgsoftware.com>
241
242         * Makefile.in (df.o): Add fibheap.h to dependencies.
243        
244         * df.h: Add prototypes for transfer functions, iterative_dataflow
245         functions.
246         (enum df_flow_dir): New enum.
247         (enum df_confluence_op): New enum.
248         (struct df): Add inverse_rts_map.
249
250         * df.c: Add sbitmap.h to the list of includes.
251         (df_rd_global_compute): Removed.
252         (df_ru_global_compute): Removed.
253         (df_lr_global_compute): Removed.
254         (df_rd_transfer_function): New function.
255         (df_ru_transfer_function): New function.
256         (df_lr_transfer_function): New function.
257         (df_analyse_1): allocate/compute/free df->inverse_rts_map.
258         Use iterative_dataflow_bitmap instead of df_*_global_compute.
259         (iterative_dataflow_sbitmap): New function.
260         (iterative_dataflow_bitmap): New function.
261
262 2001-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
263
264         * doc/gcc.texi: Move terminology and spelling conventions to
265         htdocs/codingconventions.html.
266
267 2001-11-07  Graham Stott  <grahams@redhat.com>
268
269         * cse.c (cse_insn): Emit BARRIER after unconditional jump.
270
271 Wed Nov  7 13:33:34 CET 2001  Jan Hubicka  <jh@suse.cz>
272
273         * expmed.c (expand_mult): Force operand to register before computing
274         cost.
275         * i386.c (x86_decompose_lea): New global vairable.
276         * i386.h (x86_decompose_lea): Declare.
277         (TARGET_DECOMPOSE_LEA): New macro.
278         (RTX_COST): Handle leas properly.
279
280 2001-11-06  Richard Henderson  <rth@redhat.com>
281
282         * config/alpha/elf.h (DO_SELECT_SECTION): TREE_READONLY is not
283         defined for a CONSTRUCTOR; don't check it.
284
285 2001-11-06  Danny Smith  <dannysmith@users.sourceforge.net>
286
287         * gcov.c (output_data): Use IS_ABSOLUTE_PATHNAME to
288         test for absolute pathnames.
289
290 2001-11-06  Olivier Hainque <hainque@act-europe.fr>
291
292         * unwind-dw2.c (execute_cfa_program): Evaluate call frame
293         instructions up to the target pc inclusive.
294
295 2001-11-06  Steve Christiansen  <smc@us.ibm.com>
296
297         * loop.c (loop_regs_scan):  Don't invalidate PIC register.
298
299 2001-11-06  Eric Christopher  <echristo@redhat.com>
300
301         * config/mips/mips.md(movdf_internal2): Add constraints for float
302         to general register move.
303         * config/mips/elf64.h: Add default ABI.
304
305 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
306
307         * alias.c:: Include langhooks.h.
308         * emit-rtl.c: Similarly.
309         * toplev.c: Similarly.
310         * tree-inline.c: Similarly.
311         * langhooks-def.h: New, the old langhooks.h.  Give the default
312         hooks a common prefix.
313         * langhooks.h: Contents extracted from toplev.h.
314         * toplev.h: Move langhook stuff to langhooks.h.
315         * langhooks.c: Give default hooks a common prefix.
316
317         * c-lang.c: Include langhooks-def.h.
318         * objc/objc-act.c: Similarly.
319         * Makefile.in: Update.
320         * objc/Make-lang.in: Update.
321
322 2001-11-06  Joseph S. Myers  <jsm28@cam.ac.uk>
323
324         * doc/install.texi: Document that configure options not listed in
325         this file are unsupported.  Document --with-system-zlib.
326
327 Tue Nov  6 09:21:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
328
329         * rtl.h (mem_for_const_double): New declaration.
330         * varasm.c (mem_for_const_double): New function.
331         * config/convex/convex.md (movdf): Use it.
332         * config/m68k/hp320.h (LEGITIMATE_PIC_OPERAND_P): Likewise.
333         * config/m68k/linux.h, config/m68k/m68k.h: Likewise.
334         * config/m68k/m68kv4.h: Likewise.
335
336         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Adjust for addition
337         of new GP reg classes.
338
339         * expr.c (store_field): When making temp object for unaligned
340         component, set it to alias set 0.
341
342 2001-11-06  Joseph S. Myers  <jsm28@cam.ac.uk>
343
344         * c-common.c (c_expand_expr_stmt): Apply default conversions to
345         non-lvalue arrays if C99.
346         * c-typeck.c (default_conversion): Split out code handling
347         array-to-pointer and function-to-pointer conversions into a
348         separate default_function_array_conversion function.
349         (default_function_array_conversion): New function.  Keep track of
350         whether any NON_LVALUE_EXPRs were stripped.  Return non-lvalue
351         arrays unchanged outside C99 mode instead of giving an error for
352         them.
353         (build_component_ref): Use pedantic_non_lvalue when handling
354         COMPOUND_EXPR.  Don't handle COND_EXPR specially.
355         (convert_arguments): Use default_function_array_conversion.
356         (build_unary_op): For ADDR_EXPR, take a flag indicating whether
357         non-lvalues are OK.
358         (unary_complex_lvalue): Likewise.
359         (internal_build_compound_expr): Use
360         default_function_array_conversion.  Apply default conversions to
361         function in compound expression.
362         (build_c_cast, build_modify_expr, digest_init, build_asm_stmt):
363         Use default_function_array_conversion.
364         * doc/extend.texi: Update documentation of subscripting non-lvalue
365         arrays.
366         Fixes PR c/461.
367
368 >>>>>>> 1.11778
369 2001-11-05  Zack Weinberg  <zack@codesourcery.com>
370
371         * aclocal.m4: (AM_WITH_NLS): Don't look at ALL_LINGUAS.
372         (AM_GNU_GETTEXT): Set CATALOGS to a list of .gmo files
373         corresponding to the complete set of .po and .gmo files in
374         the source directory's po subdir, modified by LINGUAS.  Don't
375         look at ALL_LINGUAS.
376         * configure.in: Don't set ALL_LINGUAS.
377         * configure: Regenerate.
378
379         * Makefile.in (.po.gmo): Don't move into source directory.
380         (.po.pox): Clarify comments.
381         (install-po): Look for .gmo files in both srcdir and objdir;
382         don't fail if a file is totally missing.
383         (distclean): rmdir ada subdirectory too.
384
385 2001-11-05  Geoffrey Keating  <geoffk@redhat.com>
386
387         * config/rs6000/rs6000.c (rs6000_select_section): Handle
388         CONSTRUCTORs _correctly_.
389
390 2001-11-05  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
391
392         * c-decl.c (delete_block): Remove.
393         * c-tree.h (delete_block): Remove.
394
395 2001-11-05  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
396
397         * cppexp.c (lex, parse_defined): Update warning about defined.
398
399 2001-11-05  Geoffrey Keating  <geoffk@redhat.com>
400
401         * config/rs6000/rs6000.c (rs6000_select_section): Handle
402         CONSTRUCTORs too.
403
404 2001-11-05  Nick Clifton  <nickc@cambridge.redhat.com>
405
406         * config/arm/arm.c (arm_return_in_memory): Cope with
407         int_size_in_bytes returning -1.
408
409         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Handle
410         DECL being NULL.
411
412 Mon Nov  5 16:15:25 CET 2001  Jan Hubicka  <jh@suse.cz>
413
414         * Makefile.in (bb-reoder.o): Add depdendency on cfglayout.h;
415         remove unneded depdendencies;
416         (cfglayout.o): New.
417         * cfglayout.c, cfglayout.h: New files; break out from ...
418         * bb-reorder.c: ... here; Remove unneeded includes;
419
420 2001-11-04  Alan Modra  <amodra@bigpond.net.au>
421
422         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Mark r2 as used.
423
424 2001-11-04  David Edelsohn  <edelsohn@gnu.org>
425
426         * config/rs6000/rs6000.c (rs6000_emit_move): Handle 64-bit
427         mode as well.  Do not explicitly create intermediate regs.
428
429 2001-11-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
430
431         * arm/aof.h (aof_text_section, aof_data_section): Don't declare.
432         (common_section): Delete unused variable.
433         (ASM_OUTPUT_ASCII): Fix signed/unsigned warnings.
434         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
435         * arm-protos.h (arm_poke_function_name, aof_add_import,
436         aof_delete_import): Const-ify.
437         * arm.c (legitimize_pic_address): Wrap variables in the macro
438         controlling their usage.
439         (arm_finalize_pic): Mark variable with ATTRIBUTE_UNUSED.
440         (arm_poke_function_name, pic_chain, import, aof_add_import,
441         aof_delete_import): Const-ify.
442         * i386.c (ix86_osf_output_function_prologue): Const-ify.
443         * i386/sysv4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE,
444         ASM_OUTPUT_LONG_DOUBLE): Fix format specifier warnings.
445         * i860/fx2800.h (DBX_OUTPUT_STANDARD_TYPES): Const-ify.
446         * i860/sysv3.h: Add missing comment closure.
447         * m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Add missing semi-colon.
448         * m88k/dgux.h (SELECT_RTX_SECTION): Add missing argument in call
449         to symbolic_operand.
450
451         * config.gcc (m680[02]0-*-*): Rename case from m68000-*-*.
452         (i960-*-*): Set tmake_file.
453         (sparc86x-*-elf*): Fix typo in header name.
454
455         * sched-rgn.c (schedule_insns): Delete unused variable.
456
457 2001-11-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
458
459         PR c/2820
460         * c-typeck.c (lookup_field): Rework to return a chain down to
461         the looked-up field.
462         (build_component_ref): Use the new lookup_field to handle
463         nested anonymous entities correctly.
464
465 Sun Nov  4 11:53:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
466
467         * config/sparc/sparc.c (sparc_emit_set_const32, GEN_HIGHINT64):
468         Change parameters to gen_rtx_CONST_DOUBLE.
469         (GEN_INT64, sparc_emit_set_const64): Likewise.
470         * config/sparc/sparc.md (movdf split): Likewise.
471
472 2001-11-03  Geoffrey Keating  <geoffk@redhat.com>
473
474         * unroll.c (calculate_giv_inc): Use find_last_value rather
475         than just hoping the last instruction is the right SET.
476         [Fixes 990604-1.c on stormy16.]
477
478         * config/stormy16/stormy16.h (LIB_SPEC): Don't supply any libgloss
479         library at all if -T is used.
480
481         * config/stormy16/stormy16.c (stormy16_print_operand): Avoid
482         some uses of uninitialized variables in error cases.
483
484         * config/stormy16/stormy16.c (stormy16_output_shift): Don't
485         look at 'temp' if we won't be using it.
486
487         * config/stormy16/stormy16.h (CONST_COSTS): Define.
488         (RTX_COSTS): Define.
489         (ADDRESS_COST): Define.
490         (MEMORY_MOVE_COST): Allow for memory_move_secondary_cost.
491
492         * config/stormy16/stormy16.h (ASM_SPEC): Pass -g to the assembler.
493
494         * config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Call
495         stormy16_asm_output_mi_thunk.
496         * config/stormy16/stormy16.c (stormy16_asm_output_mi_thunk): New
497         function.
498         * config/stormy16/stormy16-protos.h
499         (stormy16_asm_output_mi_thunk): New prototype.
500
501 2001-11-04  Joseph S. Myers  <jsm28@cam.ac.uk>
502
503         * ChangeLog.2, ChangeLog.4, ChangeLog.5, ChangeLog,
504         FSFChangeLog.10, FSFChangeLog.11, alias.c, attribs.c,
505         caller-save.c, calls.c, cfg.c, cfganal.c, cfgcleanup.c, cfgrtl.c,
506         cppmacro.c, fold-const.c, ifcvt.c, local-alloc.c, profile.c,
507         sched-int.h, toplev.c, config/alpha/alpha.c,
508         config/alpha/alpha.md, config/c4x/c4x.h, config/cris/cris.h,
509         config/cris/cris.md, config/i370/i370.md, config/i386/i386.c,
510         config/i386/i386.h, config/i386/i386.md, config/i386/xm-djgpp.h,
511         config/ia64/ia64.c, config/m68hc11/m68hc11.c, config/m68k/m68k.md,
512         config/mcore/mcore.h, config/mmix/mmix.c, config/ns32k/ns32k.h,
513         config/ns32k/ns32k.md, config/rs6000/rs6000.c,
514         config/rs6000/sysv4.h, config/sh/sh.md: Fix spelling errors.
515
516 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
517
518         * Makefile.in (dbxout.o): Depend on function.h.
519         * collect2.c (is_in_list): Hide unused function.
520         * dbxout.c: Include function.h.
521         (source_label_number, dbxout_source_line, dbxout_source_file,
522         dbxout_function_end, dbxout_begin_function): Wrap/move inside
523         macros controlling usage.
524         * gcc.c (TARGET_EXECUTABLE_SUFFIX): Undef before defining.
525         * output.h (exports_section): Prototype.
526
527         * convex.c (convex_output_function_prologue): Fix format specifier
528         warning.
529         (asm_declare_function_name): Fix signed/unsigned warning.
530         (print_operand): Fix format specifier warning.
531         * convex.h (S_REGNO_P, A_REGNO_P): Fix signed/unsigned warning.
532         * dsp16xx-protos.h (uns_comparison_operator,
533         num_1600_core_shifts): Prototype.
534         * dsp16xx.c: Include tm_p.h, not dsp16xx-protos.h.
535         (frame_size, frame_pointer_offset): Delete.
536         (dsp16xx_output_function_prologue, dsp16xx_output_function_epilogue):
537         Make static.  Fix format specifier warnings.
538         * dsp16xx.h (IS_ACCUM_REG): Fix unsigned>=0 warning.
539         (EXTRA_SECTION_FUNCTIONS): Prototype const_section.
540         * dsp16xx.md: Add default case in switches.
541         * fr30.h (IN_RANGE): Delete.
542         * ia64.h (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
543         * mcore-protos.h (mcore_output_cmov): Const-ify.
544         * mcore.c (mcore_output_cmov): Likewise.
545         * mcore.h (switch_to_section): Make static and prototype.
546         * mn10200.h (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Fix
547         unsigned>=0 warnings.
548         * mn10300.h (REGNO_IN_RANGE_P): Likewise.
549         * rs6000-protos.h (read_only_data_section,
550         read_only_private_data_section): Prototype.
551         * rs6000.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
552         * sh.c (sh_adjust_cost): Mark parameter with ATTRIBUTE_UNUSED.
553         * sh.h (GENERAL_REGISTER_P): Fix unsigned>=0 warning.
554
555 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
556
557         * dwarf2asm.c (dw2_asm_output_pcrel): Mark parameters with
558         ATTRIBUTE_UNUSED.
559         * final.c (final_scan_insn): Add brackets around body of if-stmt.
560         * gcc.c (convert_filename): Add static prototype.  Const-ify.
561         Wrap variable in macros controlling its use.
562         * output.h (sdata_section): Add prototype.
563
564         * 1750a.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
565         (ASM_OUTPUT_ASCII): Avoid signed/unsigned warning.
566         * c4x.h (INIT_SECTION_FUNCTION): Add prototype.
567         (ASM_FILE_START): Const-ify.
568         (ASM_OUTPUT_BYTE_FLOAT, ASM_OUTPUT_SHORT_FLOAT): Fix format
569         specifier warning.
570         * c4x.md: Don't use the 'U' integer suffix.
571         * clipper.md (clipper_movstr): Delete declaration.
572         * d30v-protos.h (d30v_move_2words): Const-ify.
573         (debug_stack_info): Add prototype.
574         * d30v.c: Include "integrate.h".
575         (d30v_function_arg_boundary, d30v_function_arg,
576         d30v_function_arg_partial_nregs, d30v_function_arg_advance): Avoid
577         signed/unsigned warnings.
578         (d30v_print_operand_memory_reference, d30v_move_2words):
579         Const-ify.
580         * d30v.h (REG_CLASS_FROM_LETTER): Use unsigned array subscript.
581         * fr30.c (fr30_pass_by_reference, fr30_pass_by_value): Prototype.
582         * fr30.md: Const-ify.
583         * h8300.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
584         * i370.c (i370_label_scan, mvs_get_label): Make definition static.
585         (mvs_get_label_page): Hide unused static function.
586         * i860.c (current_function_original_name): Const-ify.
587         * i860/sysv3.h (current_function_original_name): Likewise.
588         * i860/sysv4.h (current_function_original_name): Likewise.
589         * i960.md: Add default case in switches.  Remove unused variable.
590         * i960/vx960-coff.h (MULTILIB_DEFAULTS): Undef before defining.
591         * m32r.md: Const-ify.
592         * m68hc11-protos.h (m68hc11_asm_file_start): Const-ify.
593         * m68hc11.c: Include "reload.h".
594         (static_chain_reg, print_options, m68hc11_asm_file_start):
595         Const-ify.
596         * m68hc11.md: Delete unused variable.  Const-ify.  Add parens
597         around & in comparison.
598         * mcore.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
599         * mn10200.c (shift_mode): Remove trailing comma.
600         * mn10300-protos.h (output_tst): Const-ify.
601         * mn10300.c (output_tst): Likewise.
602         * pa/long_double.h (ASM_OUTPUT_LONG_DOUBLE): Fix format specifier
603         warnings.
604         * pa-protos.h (output_ascii): Use regular char *, not unsigned.
605         * pa.c (output_ascii): Likewise.
606         * pa/som.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
607         * pdp11.md (expand_unop): Delete declarations.
608         * pj-protos.h (pj_output_addsi3): Const-ify.
609         * pj.c (pj_output_push_int, pj_output_load, pj_output_inc,
610         pj_output_cnv_op, mode_to_char, pj_output_varidx, pj_print_cond,
611         unique_src_operand): Add prototypes.
612         (pj_output_store_into_lval): Make definition static.
613         (pj_function_incoming_arg): Don't use unary plus.
614         (pj_output_addsi3): Const-ify.
615         * romp.md (get_symref): Delete declarations.
616         * v850-c.c (mark_current_function_as_interrupt): Don't return
617         value from void function.
618         * v850.c: Include "integrate.h".
619         * v850.h (ASM_OUTPUT_LABELREF): Const-ify.
620         * vax-protos.h (const_section): Add prototype.
621
622 2001-11-03  Aldy Hernandez  <aldyh@redhat.com>
623
624         * machmode.def: Add documentation for the seventh argument in
625         vector modes.
626
627 2001-11-04  Hans-Peter Nilsson  <hp@bitrange.com>
628
629         * doc/invoke.texi (MMIX Options) <-mno-knuthdiv>: Say remainder
630         consistently.
631         <-mno-toplevel-symbols>: Change @code{:} to @samp{:}.
632         <-melf>: Don't have markup for ELF acronym.
633
634 2001-11-03  Hans-Peter Nilsson  <hp@bitrange.com>
635
636         * config.gcc (mmix-*-*): New target.
637         * doc/invoke.texi: Document MMIX options.
638         * doc/contrib.texi: Add note about MMIX port to my entry.
639         * config/mmix/t-mmix: New file.
640         * config/mmix/mmix.h: New file.
641         * config/mmix/mmix-protos.h: New file.
642         * config/mmix/mmix.c: New file.
643         * config/mmix/mmix.md: New file.
644         * config/mmix/crti.asm: New file.
645         * config/mmix/crtn.asm: New file.
646
647 2001-11-03  Kazu Hirata  <kazu@hxi.com>
648
649         * config/sparc/linux-aout.h: Fix comment formatting.
650         * config/sparc/linux.h: Likewise.
651         * config/sparc/linux64.h: Likewise.
652         * config/sparc/lynx.h: Likewise.
653         * config/sparc/pbd.h: Likewise.
654         * config/sparc/sol2-sld-64.h: Likewise.
655         * config/sparc/sol2.h: Likewise.
656         * config/sparc/sparc.c: Likewise.
657         * config/sparc/sparc.h: Likewise.
658         * config/sparc/sparc.md: Likewise.
659         * config/sparc/sunos4.h: Likewise.
660         * config/sparc/vxsim.h: Likewise.
661         * config/sparc/vxsparc.h: Likewise.
662         * config/sparc/vxsparc64.h: Likewise.
663
664 Sat Nov  3 10:37:56 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
665
666         * cselib.c (cselib_subst_to_values, case CONST_DOUBLE): Remove
667         reference to CONST_DOUBLE_MEM in comment.
668         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Remove one operand.
669         (gen_rtx, case CONST_DOUBLE): Call it with one less operand.
670         (init_emit_once): Don't clear CONST_DOUBLE_MEM.
671         * function.c (pop_function_context_from): Don't call
672         restore_varasm_status.
673         * function.h (restore_varasm_status): Delete declaration.
674         * gengenrtl.c (CONST_DOUBLE_FORMAT): Delete CONST_DOUBLE_MEM slot.
675         * rtl.c: Likewise.
676         * rtl.def (CONST_DOUBLE): Update comment.
677         * rtl.h (CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW): Update operand number.
678         (CONST_DOUBLE_CHAIN): Likewise.
679         (CONST_DOUBLE_MEM): Delete.
680         (gen_rtx_CONST_DOUBLE): Update parameters.
681         * varasm.c (struct varasm_status): x_pool_offset now HOST_WIDE_INT.
682         Remove reference to CONST_DOUBLE_MEM.
683         (const_alias_set): New variable.
684         (immed_double_const): Change call to gen_rtx_CONST_DOUBLE.
685         (immed_real_const_1): Adjust tests for 0, 1, and 2.
686         Don't set CONST_DOUBLE_MEM.
687         (clear_const_double_mem): Don't do anything with const_tiny_rtx.
688         (output_constant_def): Don't look at TREE_CST_RTL if INTEGER_CST.
689         Put constant in const_alias_set.
690         (struct pool_constant): ALIGN now unsigned.
691         OFFSET now HOST_WIDE_INT.
692         Delete LABEL.
693         (restore_varasm_status): Deleted.
694         (mark_pool_constant): Mark desc->rtl.
695         (force_const_mem): Rework to store rtl in hash table,
696         not CONST_DOUBLE_MEM.
697         Put constant in const_alias_set.
698         (find_pool_constant): Check desc->rtl.
699         (mark_constants, mark_constant): Don't special-case CONST_DOUBLE.
700         (init_varasm_once): Initialize const_alias_set.
701
702         * expr.c (expand_expr, case ADDDR_EXPR): If at top level, don't call
703         force_const_mem.
704
705         * reload.c (combine_reloads): Don't combine an output reload if there
706         are other reloads around for part of the output.
707
708         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGINGP_P if T is a
709         constant expression.
710         (set_mem_decl): New function.
711         * expr.h (set_mem_decl): New declaration.
712         * final.c (get_decl_from_op): Don't use ORIGINAL_REGNO if not pseudo.
713         (output_asm_operand_names): Add tab.
714         * reload1.c (alter_reg): Set decl of MEM from REG_DECL.
715
716         * builtins.c (get_memory_rtx): Properly set MEM alias set and
717         attributes.
718
719 2001-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
720
721         * doc/extend.texi, doc/gcc.texi, doc/install.texi, doc/tm.texi:
722         Use "invalid" instead of "illegal".  Use @r in comments in
723         examples.
724
725 2001-11-02  Neil Booth  <neil@daikokuya.demon.co.uk>
726
727         * c-decl.c (pushdecl): Move block inside if conditional to remove
728         possibility of a segfault.  Lookup block-level extern
729         variables in enclosing scopes correctly.
730
731         * testsuite/gcc.c-torture/compile/20001018-1.x: Remove XFAIL.
732
733 2001-11-02  Aldy Hernandez  <aldyh@redhat.com>
734
735         * expmed.c (store_bit_field): Use simplify_gen_subreg to make
736         SUBREG so we avoid SUBREGing memory.
737
738         * expmed.c (store_bit_field): Same.
739
740 2001-11-02  DJ Delorie  <dj@redhat.com>
741
742         * config/rs6000/rs6000.c (rs6000_emit_move): Make sure that
743         using FP registers for DImode mem-mem moves is acceptable.
744
745 2001-11-02  Aldy Hernandez  <aldyh@redhat.com>
746
747         * builtins.c (apply_args_size): Handle vector arguments.
748         (apply_result_size): Same.
749
750         * machmode.def: Set WIDER mode field for all vector entries.
751
752 2001-11-02  Graham Stott  <grahams@redhat.com>
753
754         * recog.c (decode_asm_operands):  Check that the SRC is ASM_OPERANDS.
755
756 2001-11-01  Eric Christopher  <echristo@redhat.com>
757
758         * config.gcc: Revert part of earlier patch.
759         * config/mips/linux.h: Ditto.
760         * df.c: Include tm_p.h to avoid warnings.
761         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Add defaults.  Adjust
762         #if/#endif.
763         * config/mips/mips.c: Define mips_abi regardless.
764         (mips_output_function_prologues): Add long casts for .frame
765         output.
766         (override_options): Allow use of ABI_32.
767
768 2001-11-01  Kazu Hirata  <kazu@hxi.com>
769
770         * config/m68hc11/m68hc11.c: Fix comment formatting.
771         * config/m68hc11/m68hc11.h: Likewise.
772         * config/m68hc11/m68hc11.md: Likewise.
773
774 2001-11-01  Neil Booth  <neil@daikokuya.demon.co.uk>
775
776         * c-typeck.c (default_conversion): Retain the original expression
777         codes.
778         * gcc.dg/Wparentheses.c: New tests.
779
780 2001-11-01  David S. Miller  <davem@redhat.com>
781
782         * doc/install.texi (Specific, sparc-sun-solaris2*): Bring
783         64-bit Sparc description more in line with reality.
784
785 2001-11-01  Joseph S. Myers  <jsm28@cam.ac.uk>
786
787         * Makefile.in (GCOV_OBJS): Add version.o.
788         * gcov.c: Include "version.h" and <getopt.h>.
789         (gcov_version_string): Remove.
790         (print_usage): Take a parameter to determine whether this is a
791         call from --help or an error message.  Give fuller output that
792         follows the GNU Coding Standards for --help.
793         (print_version): New function.
794         (options): New.
795         (process_args): Use getopt_long.  Support long options.  Follow
796         GNU Coding Standards for --help and --version.
797         * doc/gcov.texi: Document long options.
798         Addresses part of PR other/704.
799
800 2001-11-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
801
802         * pa.c (output_move_double): Fix typo in double load.
803
804 2001-11-01  Kazu Hirata  <kazu@hxi.com>
805
806         * config/h8300/h8300.c (h8300_encode_label): Compute a string
807         before passing it to ggc_alloc_string.
808
809 2001-11-01  Kazu Hirata  <kazu@hxi.com>
810
811         * config/m68k/3b1.h: Fix comment formatting.
812         * config/m68k/3b1g.h: Likewise.
813         * config/m68k/a-ux.h: Likewise.
814         * config/m68k/amix.h: Likewise.
815         * config/m68k/apollo68.h: Likewise.
816         * config/m68k/atari.h: Likewise.
817         * config/m68k/aux-exit.c: Likewise.
818         * config/m68k/ccur-GAS.h: Likewise.
819         * config/m68k/crds.h: Likewise.
820         * config/m68k/dpx2.h: Likewise.
821         * config/m68k/dpx2g.h: Likewise.
822         * config/m68k/hp310.h: Likewise.
823         * config/m68k/hp320.h: Likewise.
824         * config/m68k/isi.h: Likewise.
825         * config/m68k/linux.h: Likewise.
826         * config/m68k/lynx.h: Likewise.
827         * config/m68k/m68k-psos.h: Likewise.
828         * config/m68k/m68k.c: Likewise.
829         * config/m68k/m68k.h: Likewise.
830         * config/m68k/m68k.md: Likewise.
831         * config/m68k/m68kelf.h: Likewise.
832         * config/m68k/m68kv4.h: Likewise.
833         * config/m68k/mot3300.h: Likewise.
834         * config/m68k/news.h: Likewise.
835         * config/m68k/next.h: Likewise.
836         * config/m68k/pbb.h: Likewise.
837         * config/m68k/plexus.h: Likewise.
838         * config/m68k/sgs.h: Likewise.
839         * config/m68k/sun3.h: Likewise.
840         * config/m68k/tower.h: Likewise.
841         * config/m68k/vxm68k.h: Likewise.
842
843 2001-10-31  DJ Delorie  <dj@redhat.com>
844
845         * config/mips/mips.h (mips_cache_flush_func): Prototype.
846         (TARGET_OPTIONS): Support -mflush-func= and -mno-flush-func.
847         (INITIALIZE_TRAMPOLINE): Use mips_cache_flush_func if nonzero.
848         * config/mips/mips.c (mips_cache_flush_func): New.
849         * doc/invoke.texi: Document the new options.
850
851 2001-10-31  Hans-Peter Nilsson  <hp@axis.com>
852
853         * config.gcc (cris-*-linux*, tm_file): Rearrange order.
854         * config/cris/linux.h (LIB_SPEC, STARTFILE_SPEC): Don't redefine.
855
856         * config/cris/cris.h (EH_RETURN_DATA_REGNO): Fix formatting.
857
858         * config/cris/cris.c: Include output.h after tree.h but before
859         target.h.
860
861 2001-10-31  Zack Weinberg  <zack@codesourcery.com>
862
863         * Makefile.in (INTL_TARGETS, POSUB): Delete all references.
864         (INTL_SUBDIRS): Just intl.
865         (.SUFFIXES): Add .gmo .po .pox.
866         (native): Also depend on build-@POSUB@.
867         (intl.all, intl.install): Depend on config.h and things it includes.
868         (po-generated): New target; depend on c-parse.c and tradcif.c.
869         (install-normal): Also depend on install-@POSUB@.
870         (XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): New variables.
871         (build-, install-, build-po, update-po, install-po,
872         .po.gmo, .po.pox, $(PACKAGE).pot, po/$(PACKAGE).pot): New rules.
873
874         * aclocal.m4: Prefix each entry in CATALOGS with "po/"
875         * configure.in: Don't munge XGETTEXT.  Don't generate
876         po/Makefile.in.
877         * configure: Regenerate.
878
879         * exgettext: Delete.
880         * config/m68k/m68k.h: Add doc strings for -msky and -mnosky.
881         * objc/Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
882
883 2001-10-31  Kazu Hirata  <kazu@hxi.com>
884
885         * config/h8300/h8300.md (two anonymous patterns): New.
886
887 2001-10-31  Aldy Hernandez  <aldyh@redhat.com>
888
889         * tree.h (tree_index): Add support for V16QI and V8HI.
890         (V8HI_type_node): New.
891         (V16QI_type_node): New.
892
893         * tree.c (build_common_tree_nodes_2): Same.
894
895         * c-common.c (type_for_mode): Same.
896
897 2001-10-31  Kazu Hirata  <kazu@hxi.com>
898
899         * config/i386/att.h: Fix comment formatting.
900         * config/i386/beos-elf.h: Likewise.
901         * config/i386/bsd.h: Likewise.
902         * config/i386/bsd386.h: Likewise.
903         * config/i386/crtdll.h: Likewise.
904         * config/i386/cygwin.asm: Likewise.
905         * config/i386/cygwin.h: Likewise.
906         * config/i386/djgpp.h: Likewise.
907         * config/i386/freebsd-aout.h: Likewise.
908         * config/i386/freebsd.h: Likewise.
909         * config/i386/gas.h: Likewise.
910         * config/i386/i386-interix.h: Likewise.
911         * config/i386/i386-protos.h: Likewise.
912         * config/i386/i386.c: Likewise.
913         * config/i386/i386.h: Likewise.
914         * config/i386/i386.md: Likewise.
915         * config/i386/i386elf.h: Likewise.
916         * config/i386/interix.c: Likewise.
917         * config/i386/isc.h: Likewise.
918         * config/i386/isccoff.h: Likewise.
919         * config/i386/iscdbx.h: Likewise.
920         * config/i386/linux.h: Likewise.
921         * config/i386/lynx.h: Likewise.
922         * config/i386/mingw32.h: Likewise.
923         * config/i386/netbsd-elf.h: Likewise.
924         * config/i386/next.h: Likewise.
925         * config/i386/osf1elf.h: Likewise.
926         * config/i386/osfrose.h: Likewise.
927         * config/i386/sco5.h: Likewise.
928         * config/i386/seq-gas.h: Likewise.
929         * config/i386/seq-sysv3.h: Likewise.
930         * config/i386/sequent.h: Likewise.
931         * config/i386/sol2.h: Likewise.
932         * config/i386/sun386.h: Likewise.
933         * config/i386/uwin.asm: Likewise.
934         * config/i386/uwin.h: Likewise.
935         * config/i386/vxi386.h: Likewise.
936         * config/i386/win32.h: Likewise.
937         * config/i386/winnt.c: Likewise.
938         * config/i386/xm-cygwin.h: Likewise.
939         * config/i386/xm-mingw32.h: Likewise.
940
941 2001-10-31  Kazu Hirata  <kazu@hxi.com>
942
943         * builtins.def: Fix comment typos.
944         * config/alpha.c: Likewise.
945         * config/arm/arm.c: Likewise.
946         * config/avr/avr.h: Likewise.
947         * config/d30v/d30v.c: Likewise.
948         * config/d30v/d30v.h: Likewise.
949         * config/d30v/d30v.md: Likewise.
950         * config/dsp16xx/dsp16xx.c: Likewise.
951         * config/fr30/fr30.c: Likewise.
952         * config/fr30/fr30.md: Likewise.
953         * config/i386/i386.c: Likewise.
954         * config/i860/i860.c: Likewise.
955         * config/i960/i960.c: Likewise.
956         * config/ia64/ia64.c: Likewise.
957         * config/mips/mips.c: Likewise.
958         * config/pa/pa.c: Likewise.
959         * config/rs6000/rs6000.c: Likewise.
960         * config/s390/s390.c: Likewise.
961         * config/sparc/sparc.c: Likewise.
962
963 2001-10-30  Kazu Hirata  <kazu@hxi.com>
964
965         * config/mips/elf.h: Fix comment formatting.
966         * config/mips/elf64.h: Likewise.
967         * config/mips/iris5.h: Likewise.
968         * config/mips/iris5gas.h: Likewise.
969         * config/mips/iris6.h: Likewise.
970         * config/mips/isa3264.h: Likewise.
971         * config/mips/linux.h: Likewise.
972         * config/mips/mips.c: Likewise.
973         * config/mips/mips.h: Likewise.
974         * config/mips/mips.md: Likewise.
975         * config/mips/mips16.S: Likewise.
976         * config/mips/netbsd.h: Likewise.
977         * config/mips/osfrose.h: Likewise.
978         * config/mips/r3900.h: Likewise.
979         * config/mips/sni-svr4.h: Likewise.
980         * config/mips/svr4-t.h: Likewise.
981         * config/mips/ultrix.h: Likewise.
982
983 2001-10-30  Daniel Berlin  <dan@cgsoftware.com>
984
985         * bitmap.c (bitmap_element_free): Don't forget to update head->indx
986         when we update head->current.
987
988 2001-10-30  Neil Booth  <neil@daikokuya.demon.co.uk>
989
990         * tree.c (id_string_size): Remove.
991         (dump_tree_statistics): Update.
992         * toplev.c (compile_file): If dumping stats, dump tree stats too.
993
994 Tue Oct 30 19:00:43 CET 2001  Jan Hubicka  <jh@suse.cz>
995
996         * sched-rgn.c (schedule_insns): Fix comment.
997
998 2001-10-30  Zack Weinberg  <zack@codesourcery.com>
999
1000         * configure.in: Correct previous change: don't assume that
1001         gas's version number _isn't_ the last thing on the line, or
1002         isn't the only number on the line, either.
1003         * configure: Regenerate.
1004
1005 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1006
1007         * cfgcleanup.c: Fix a comment typo.
1008
1009 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1010
1011         * alias.c: Fix comment formatting.
1012         * recog.c: Likewise.
1013         * config/cris/cris.c: Likewise.
1014         * config/cris/cris.h: Likewise.
1015         * config/i960/i960.c: Likewise.
1016         * config/i960/i960.h: Likewise.
1017
1018 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1019
1020         * config/arm/arm.c: Fix a comment typo.
1021         * config/arm/arm.h: Likewise.
1022         * config/ia64/ia64.c: Likewise.
1023
1024 2001-10-30  Jakub Jelinek  <jakub@redhat.com>
1025
1026         * emit-rtl.c (set_unique_reg_note): Don't create REG_EQUAL or
1027         REG_EQUIV notes for ASM_OPERANDS.  Return the new note (if any).
1028         * rtl.h (set_unique_reg_note): Change return value.
1029         * gcse.c (try_replace_reg): Use set_unique_reg_note.
1030         * cse.c (cse_insn): Likewise.
1031         * expr.c (emit_move_insn): Likewise.
1032         * explow.c (force_reg): Likewise.
1033         * local-alloc (update_equiv_regs): Likewise.
1034         * loop.c (move_moveables, load_mems): Likewise.
1035         * reload (find_reloads): Likewise.
1036
1037 2001-10-30  Paolo Bonzini  <bonzini@gnu.org>
1038
1039         Localization fixes.
1040         * c-decl.c (parmlist_tags_warning, start_struct,
1041         check_for_loop_decls): Separate messages for struct, union and
1042         enum cases to allow for languages in which they have different
1043         genders.
1044         * c-format.c (scanf_flag_specs): Separate short and long name of
1045         the assignment suppression feature.
1046         (check_format_types): Localize "pointer" and "different types"
1047         strings.
1048         * c-lex.c (lex_number): Localize "an unsigned long int" and
1049         related strings.
1050         (lex_string) [MULTIBYTE_CHARS]: Use initial lowercase letter on
1051         warning message.
1052         * c-typeck.c (build_unary_up): Separate messages for increment and
1053         decrement cases to allow for languages in which they use different
1054         articles.  Localize the strings "increment" and "decrement" in one
1055         case.
1056
1057 Tue Oct 30 11:08:11 CET 2001  Jan Hubicka  <jh@suse.cz>
1058
1059         * lcm.c (optimize_mode_switching):  Do not rebuild liveness information
1060         when no changes has been made.
1061
1062         * gcse.c (reg_set_bitmap): Turn into reg_set.
1063         (modify_mem_list_set, canon_modify_mem_list_set)
1064         (clear_modify_mem_tables, free_modify_mem_tables): New.
1065         (gcse_main); Use free_modify_mem_tables.
1066         (free_gcse_mem): Likewise; free the bitmaps.
1067         (alloc_gcse_main): Initialize the bitmaps.
1068         (canon_list_insert): Set canon_modify_mem_list_set.
1069         (record_last_mem_set_info): Likewise; set modify_mem_list_set.
1070         (compute_hash_table): Use clear_modify_mem_tables.
1071         (reset_opr_set_tables): Likewise.
1072         (oprs_not_set_p): reg_set_bitmap is regset.
1073         (mark_set, mark_clobber): Likewise.
1074
1075         * df.h (DF_EQUIV_NOTES): New constant.
1076         (df_insn_refs_record): Record uses inside or REG_EQUIV/EQUAL notes
1077         when asked for.
1078
1079         * sched-rgn.c (CHECK_DEAD_NOTES): New constant.
1080         (init_regions, schedule_insns): Conditionalize the checking
1081         code by CHECK_DEAD_NOTES; avoid multiple calls to update_life_info.
1082
1083 Tue Oct 30 11:02:31 CET 2001  Jan Hubicka  <jh@suse.cz>
1084
1085         * i386.md (movti_rex64 splitter): Fix condition.
1086
1087 2001-10-29  Zack Weinberg  <zack@codesourcery.com>
1088
1089         * configure.in: Do not assume that gas's version number is the
1090         last thing on the first line of as --version output.
1091         * configure: Regenerate.
1092
1093         * tradcpp.c: Include intl.h.  Rename WARNING, ERROR, FATAL to
1094         MT_WARNING, MT_ERROR, MT_FATAL.
1095         (main): Call gcc_init_libintl.
1096         (v_message): Call gettext on msgid and "warning: "
1097         * tradcif.y: Include intl.h.
1098         (yyerror): Make parameter definition consistent with
1099         prototype.  Call gettext on msgid argument.
1100
1101 2001-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1102
1103         * combine.c (num_sign_bit_copies): Avoid signed/unsigned
1104         warnings.
1105
1106         * sparc/sol2.h: Include <sys/mman.h> when L_trampoline is defined.
1107
1108 Mon Oct 29 19:22:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1109
1110         * reload1.c (eliminate_regs): Test for reg_renumber being allocated
1111         before referencing it.
1112
1113 2001-10-26  DJ Delorie  <dj@redhat.com>
1114
1115         * config/rs6000/sysv4.h (LINK_SPEC): Allow -msdata=none to
1116         override -G, and force -G0.
1117
1118 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1119
1120         * ChangeLog.2, ChangeLog.3, ChangeLog.4, FSFChangeLog.10,
1121         FSFChangeLog.11, c-common.c, c-common.def, c-common.h, c-decl.c,
1122         c-dump.c, c-typeck.c, except.c, sdbout.c, simplify-rtx.c,
1123         timevar.h, tree.h, varasm.c: Fix spelling errors and typos.
1124
1125         * loop.h (struct induction): Rename ext_dependant to
1126         ext_dependent.
1127         * loop.c: Change all uses.
1128         (check_ext_dependant_givs): Rename to check_ext_dependent_givs.
1129         All callers changed.
1130         * timevar.c (DEFTIMEVAR): Fix spelling of identifier__ parameter.
1131
1132 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1133
1134         * c-parse.in (expr_no_commas, primary), c-typeck.c
1135         (parser_build_binary_op): Use IS_EXPR_CODE_CLASS.
1136
1137 2001-10-29  David Edelsohn  <edelsohn@gnu.org>
1138
1139         Undo assemble_name change in earlier patch.
1140
1141 Mon Oct 29 21:11:40 2001  Nicola Pero  <n.pero@mi.flashnet.it>
1142
1143         * objc/objc-act.c (finish_message_expr): For the GNU runtime: when
1144         determining the type of the receiver, do not check that TREE_CODE
1145         of receiver is CALL_EXPR before calling receiver_is_class_object().
1146         (receiver_is_class_object): For the GNU runtime: recognize
1147         the case that the receiver is self in a class method context.
1148         Check that TREE_CODE of receiver is CALL_EXPR when checking that
1149         the receiver is a call to objc_get_class.
1150
1151 2001-10-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1152
1153         * pa.md (floatunssisf2): Set subreg 0 of operand 2 to zero.
1154
1155 Mon Oct 29 07:23:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1156
1157         * Makefile.in (OBJS): Put all files in alphabetical order.
1158
1159         * dwarf2out.c (add_const_value_attribute): Fix error in last
1160         change.
1161
1162 Mon Oct 29 12:43:06 CET 2001  Jan Hubicka  <jh@suse.cz>
1163
1164         * basic-block.h (purge_all_dead_edges): Add update_life_p argument.
1165         * cfgcleanup.c (merge_blocks): Update the life flag after merging;
1166         fix warning.
1167         * cfgrtl.c (purge_all_dead_edges): Allow updating of liveness.
1168         (life_analysis): call purge_all_dead_edges after deleting noops.
1169         (delete_noop_move): Do not purge CFG.
1170         * toplev.c (rest_of_compilation): Update purge_all_dead_edges call.
1171
1172 2001-10-28  David Edelsohn  <edelsohn@gnu.org>
1173
1174         * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.
1175         * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): Delete.
1176         (ASM_GLOBALIZE_LABEL): Use assemble_name.
1177         (ASM_OUTPUT_COMMON): Likewise.
1178         * config/rs6000/rs6000.c (print_operand): Use assemble_name.
1179         (rs6000_output_function_epilogue): Likewise.
1180         (output_mi_thunk): Fix typo.
1181         (rs6000_output_symbol_ref): Use assemble_name.
1182         (output_toc): Likewise.
1183         * config/rs6000/sysv4.h (RS6000_OUTPUT_BASENAME): Delete.
1184         * config/rs6000/xcoff.h (RS6000_OUTPUT_BASENAME): Delete;
1185         assemble_name calls STRIP_NAME_ENCODING.
1186         (ASM_OUTPUT_LABEL): Use assemble_name.
1187         (ASM_GLOBALIZE_LABEL): Likewise.
1188         (ASM_DECLARE_FUNCTION_NAME): Likewise.
1189         (ASM_OUTPUT_ALIGNED_COMMON): Indent pseudo-op.  Use assemble_name.
1190         (ASM_OUTPUT_LOCAL): Likewise.
1191
1192 Sun Oct 28 15:45:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1193
1194         * builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case.
1195         (expand_builtin_apply, expand_builtin_return): Likewise.
1196         (expand_builtin_va_arg, expand_builtin_va_copy): Likewise.
1197
1198 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
1199
1200         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
1201         ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11,
1202         c-common.c, c-common.h, c-parse.in, c-typeck.c, cfg.c, config.gcc,
1203         configure, configure.in, except.c, except.h, flow.c, function.c,
1204         gcc.c, gcse.c, genrecog.c, libgcc2.c, loop.c, loop.h, params.def,
1205         predict.def, predict.h, reg-stack.c, regmove.c, sched-deps.c,
1206         sched-int.h, sibcall.c, ssa.c, stringpool.c, toplev.c, tree.c,
1207         unroll.c: Fix spelling errors.
1208
1209         * doc/extend.texi, doc/invoke.texi: Fix spelling.
1210
1211         * doc/gcc.texi: Document use of "dependent" and American spelling.
1212
1213 Sun Oct 28 17:05:36 CET 2001  Jan Hubicka  <jh@suse.cz>
1214
1215         * expr.c (emit_group_load): Support CONCATs by storing them to memory
1216         and reloading.
1217
1218 Sun Oct 28 09:59:54 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1219
1220         * expr.c (store_constructor_field): Only call adjust_address on MEM.
1221
1222 Sun Oct 28 16:48:09 CET 2001  Jan Hubicka  <jh@suse.cz>
1223
1224         * genrecog.c (write_switch):  Output if before switch for
1225         DT_elt_zero_wide_safe.
1226
1227 2001-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1228
1229         * Makefile.in (toplev.o, halfpic.o): Depend on halfpic.h
1230         * i386/osfrose.h (SUBTARGET_SWITCHES): Add missing comma.
1231         (FUNCTION_PROFILER): Const-ify.
1232         * halfpic.c: Include "expr.h", "output.h" and "halfpic.h".
1233         (eliminate_constant_term, assemble_name, output_addr_const):
1234         Remove declarations.
1235         (ptr_half_pic_address_p, half_pic_hash): Prototype.
1236         (all_refs, half_pic_prefix, half_pic_hash, half_pic_declare,
1237         half_pic_external, half_pic_address_p, half_pic_ptr): Const-ify.
1238         * halfpic.h (ptr_half_pic_address_p, half_pic_finish): Prototype.
1239         (half_pic_declare, half_pic_external): Const-ify.
1240         * toplev.c: Include "halfpic.h".
1241
1242 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
1243
1244         * config/alpha/alpha.md, config/arm/arm.c, config/arm/arm.h,
1245         config/d30v/d30v.h, config/fr30/fr30.c, config/i370/x-oe,
1246         config/i386/i386.c, config/i386/i386-interix.h,
1247         config/i386/i386.md, config/i386/i386.h, config/i386/sco5.h,
1248         config/i860/i860.h, config/i860/i860.md, config/m68k/aux-exit.c,
1249         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.md,
1250         config/ns32k/ns32k.h, config/pa/pa.c, config/rs6000/rs6000.c,
1251         config/sparc/sparc.c, config/m68hc11/m68hc11.c,
1252         config/cris/cris.c, config/cris/cris.h, config/s390/s390.c,
1253         config/s390/s390.h, config/stormy16/stormy16.h, doc/tm.texi: Fix
1254         spelling errors.
1255
1256         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
1257         ChangeLog.5, ChangeLog, ChangeLog.lib, FSFChangeLog.10, ONEWS,
1258         c-common.c, caller-save.c, cfg.c, cfgcleanup.c, cfgrtl.c,
1259         collect2.c, df.h, diagnostic.h, final.c, gcse.c, gthr.h,
1260         haifa-sched.c, jump.c, local-alloc.c, profile.c, protoize.c,
1261         regmove.c, reload1.c, rtlanal.c, sched-vis.c, ssa.c, stmt.c,
1262         system.h, toplev.c: Fix spelling errors.
1263
1264 Sat Oct 27 17:32:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1265
1266         * gcse.c (insert_insn_end_bb): Don't assume PAT is a SET.
1267
1268         * dwarf2out.c (reg_number): Abort if pseudo.
1269         (reg_loc_descriptor): Return 0 if pseudo.
1270         (is_based_loc): Return 0 if pseudo.
1271         (mem_loc_descriptor): Return 0 for pseudo and handle 0 return from
1272         recursive calls.
1273         (concat_loc_descriptor): Return 0 if either part's descriptor is 0.
1274         (loc_descriptor): Return 0 if can't find location and handle 0
1275         return from recursive calls.
1276         (loc_descriptor_from_tree): Likewise.
1277         Fix handling of indirect.
1278         Also return 0 for PLACEHOLDER_EXPR.
1279         Clean up COMPONENT_REF cases.
1280         (add_AT_location_descriptor): Simplify, but handle 0 return from
1281         loc_descriptor.
1282         (add_const_value_attribute): Avoid shift count warning.
1283         (add_bound_info): Remove test for PLACEHOLDER_EXPR here.
1284         Set comp_unit_die as context if not in function.
1285
1286         * config/mips/mips-protos.h: Break up long lines.
1287         Remove needless #ifdef/#endif blocks.
1288         Don't declare functions declared in file made by genpreds or recog.h.
1289         * config/mips/mips.c (mips_output_function_prologue): TSIZE
1290         is now HOST_WIDE_INT; delete unneeded casts.
1291         * config/mips/mips.h: Don't use #elif.
1292
1293         * expr.c (stor_constructor_field): Always call adjust_address.
1294         Copy TARGET before changing its alias set.
1295         (store_field): Likewise, for TO_RTX.
1296         (get_inner_reference): Stop at PLACEHOLDER_EXPR if can't find
1297         replacement.
1298         (safe_from_p, case ADDR_EXPR): Properly check for conflict.
1299         (find_placeholder): Return 0 if can't find object.
1300         (expand_expr, case PLACEHOLDER_EXPR): Abort if find_placeholder
1301         returns 0.
1302
1303 Sat Oct 27 16:31:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
1304
1305         * ifcvt.c (if_convert): Call clear_aux_for_blocks.
1306
1307 Sat Oct 27 12:12:09 CEST 2001  Jan Hubicka  <jh@suse.cz>
1308
1309         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps,
1310         merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE.
1311         (merge_blocks): Properly udpate life after making edge nonfallthru.
1312         * cfgrtl.c (merge_blocks_nomove): Update global_live_at_end.
1313
1314 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1315
1316         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
1317
1318 2001-10-26  Neil Booth  <neil@daikokuya.demon.co.uk>
1319
1320         * c-typeck.c (convert_arguments): When comparing for enumeral
1321         type equality, use TYPE_MAIN_VARIANT.
1322         * gcc.dg/Wconversion.c: New tests.
1323
1324 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1325
1326         * s390/s390.c: Fix comment typos.
1327         * s390/s390.h: Likewise.
1328         * s390/s390.md: Likewise.
1329
1330 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
1331
1332         * tree-inline.c (WALK_SUBTREE_TAIL): New macro.
1333         (walk_tree): Use it for tail calls where appropriate.
1334
1335 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
1336
1337         * cse.c (check_for_label_ref): Don't require REG_LABEL notes for
1338         non-local label_refs.
1339
1340 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1341
1342         * config/h8300/h8300.md (4 anonymous patterns): New.
1343
1344 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1345
1346         * config/h8300/h8300.c (get_shift_alg): Clean up.  Return the
1347         algorithm through the shift_info structure.
1348         (emit_a_shift): Update the use of get_shift_alg.
1349
1350 2001-10-27  Daniel Berlin  <dan@cgsoftware.com>
1351
1352         * sched-rgn.c: Remove bitset typedef.
1353         Change bitset to sbitmap in prototypes / variable types.
1354         Remove bbset_size.
1355         Remove edgeset_bits.
1356         Remove edgeset_size.
1357         s/BITSET_ADD/SET_BIT/g
1358         s/BITSET_INVERT/sbitmap_ones/g
1359         s/BITSET_INTER/sbitmap_a_and_b/g
1360         s/BITSET_UNION/sbitmap_a_or_b/g
1361         s/BITSET_DIFFER/sbitmap_difference/g
1362         s/bitset_member/TEST_BIT/g
1363         (BITSET_*): Removed.
1364         (bitset_member): Removed.
1365         (extract_bitlst): Rewrite, now that we have sbitmaps, we can use
1366         EXECUTE_IF_SET_IN_SBITMAP.
1367         (split_edges): Rewrite, use sbitmap functions instead of bitset
1368         operations.
1369         (schedule_region): Allocate/free sbitmaps, rather than bitsets.
1370
1371 2001-10-26  Andreas Schwab  <schwab@suse.de>
1372
1373         * reload1.c (emit_input_reload_insns): Fix parens in last
1374         (undocumented) change that was supposed to change only whitespace.
1375
1376 Fri Oct 26 07:18:08 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1377
1378         * cfgcleanup.c (BB_SET_FLAG, BB_CLEAR_FLAG): Add cast to avoid warning.
1379
1380         * local-alloc.c (update_equiv_regs): Don't make REG_EQUAL note for
1381         ASM_OPERANDS.
1382
1383 2001-10-26  Andreas Jaeger  <aj@suse.de>
1384
1385         * flow.c (clear_log_links): Remove unused variable.
1386         * cfgcleanup.c (cleanup_cfg): Likewise.
1387
1388 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
1389
1390         * tree-inline.c (remap_decl): Don't copy size and size_unit here.
1391         (remap_save_expr): Map a remapped SAVE_EXPR to error_mark_node.
1392
1393 2001-10-26  Richard Henderson  <rth@redhat.com>
1394
1395         * config/alpha/alpha.h (enum reg_class): Add R24_REG, R25_REG;
1396         rename PV_REG to R27_REG.
1397         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
1398         (REG_CLASS_FROM_LETTER): Update.
1399         (PREFERRED_RELOAD_CLASS): Don't widen a reg class.
1400         * config/alpha/alpha.md (divsi3): Don't hard-code r24, r25, r27.
1401         (udivsi3, modsi3, umodsi3): Likewise.
1402         (divdi3, udivdi3, moddi3, umoddi3): Likewise.
1403
1404 2001-10-26  Richard Henderson  <rth@redhat.com>
1405
1406         * cfg.c (clear_aux_for_blocks): Split out of ...
1407         (free_aux_for_blocks): here.
1408         (clear_aux_for_edges): Split from ...
1409         (free_aux_for_edges): here.
1410         * basic-block.h: Declare them.
1411         * lcm.c (compute_antinout_edge): Use them.
1412         (compute_laterin, compute_available, compute_nearerout): Likewise.
1413         (optimize_mode_switching): Likewise.
1414
1415 2001-10-26  Richard Henderson  <rth@redhat.com>
1416
1417         * Makefile.in (unstage*): Remove as, ld, collect-ld before
1418         moving everything back to the main build directory.
1419
1420 2001-10-26  Christopher Faylor  <cgf@redhat.com>
1421
1422         * config/i386/cygwin.h: Search target specfic include directory, if
1423         appropriate.
1424
1425 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1426
1427         * dwarf2out.c (PTR_SIZE, default_eh_frame_section): Move outside
1428         of macro guards. Fix #endif comment.
1429
1430         * output.h (default_exception_section, default_eh_frame_section):
1431         Move prototypes outside of macro guard.
1432
1433         * crtstuff.c: Fix #endif comment.
1434
1435 Thu Oct 25 12:21:58 2001  Jeffrey A Law  (law@cygnus.com)
1436
1437         * doc/md.texi (movMM): Clarify semantics of storing into a
1438         non-paradoxical SUBREG.
1439
1440 2001-10-25  Zack Weinberg  <zack@codesourcery.com>
1441
1442         * langhooks.c (lang_hook_default_clear_binding_stack): New.
1443         (lang_hook_default_get_alias_set): Move next to other alias
1444         hooks.
1445         * langhooks.h: Prototype lang_hook_default_clear_binding_stack.
1446         (LANG_HOOKS_CLEAR_BINDING_STACK): New macro.
1447         (LANG_HOOKS_INITIALIZER): Add it.
1448         * toplev.h (struct lang_hooks): Add clear_binding_stack.
1449         * toplev.c (compile_file):  Call lang_hooks.clear_binding_stack
1450         instead of a loop calling poplevel.
1451
1452 2001-10-25  Nick Clifton  <nickc@cambridge.redhat.com>
1453
1454         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Replace
1455         occurrences of #elif with #if...#endif.
1456
1457 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1458
1459         * cris.h (EH_RETURN_DATA_REGNO): Fix unsigned>=0 warning.
1460
1461 Thu Oct 25 08:46:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1462
1463         * alias.c (can_address_p): No longer static.
1464         * emit-rtl.c (get_mem_attrs): New parameter, MODE; all callers changed.
1465         Return 0 if all parameters are default values.
1466         (set_mem_attributes): Set MEM_KEEP_ALIAS_SET_P.
1467         (adjust_address_1): Try harder to compute a size.
1468         * expr.c (expand_assignment, store_constructor): If can't address,
1469         set MEM_KEEP_ALIAS_SET_P.
1470         (store_constructor_field): Don't change set if MEM_KEEP_ALIAS_SET_P.
1471         (store_field): Likewise.
1472         (store_constructor): Simplify call to store_constructor_field.
1473         * expr.h (can_address_p): New declaration.
1474         * gensupport.c (gen_rtx_CONST_INT): New function.
1475         * rtl.h (MEM_KEEP_ALIAS_SET_P): New macro.
1476         (MEM_SIZE): Get size from mode, if not set and not BLKmode.
1477         (MEM_COPY_ATTRIBUTES): Copy MEM_KEEP_ALIAS_SET_P.
1478
1479         * stmt.c (expand_end_case): Remove orig_minval and use tree_low_cst.
1480
1481 2001-10-24  Christopher Faylor  <cgf@redhat.com>
1482
1483         * config/i386/cygwin.h: Use proper path for mingw crt files when
1484         -mno-cygwin.
1485
1486 Wed Oct 24 18:43:42 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1487
1488         * dwarf2out.c (file_info_cmp): Always return consistent results.
1489
1490 2001-10-24  Roger Sayle <roger@eyesopen.com>
1491
1492         * stmt.c (expand_end_case): Index jumptables from zero for
1493         suitably small values of minval.
1494
1495 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
1496
1497         * stor-layout.c (place_union_field): If any field was aligned with
1498         attribute aligned, set record type's TYPE_USER_ALIGN.
1499         (place_field): Likewise.
1500         (finalize_record_size): Don't clear TYPE_USER_ALIGN.
1501         (layout_type) [ARRAY_TYPE]: Copy element's TYPE_USER_ALIGN.
1502
1503 2001-10-24  Zack Weinberg  <zack@codesourcery.com>
1504
1505         * c-common.h (struct c_common_identifier): Remove rid_code field.
1506         (C_RID_CODE): Use ->node.rid_code instead of ->rid_code.
1507
1508         * c-typeck.c (constructor_designated): New local flag.
1509         (struct constructor_stack): Add "designated" field to match.
1510         (start_init): Clear it.
1511         (really_start_incremental_init, push_init_level): Push and
1512         clear it.
1513         (pop_init_level): Pop it.
1514         (set_designator): Set it.
1515
1516         (pop_init_level): Suppress "missing initializer" warnings if
1517         constructor_designated is true.
1518         (process_init_element): Suppress warning about union
1519         initialization under traditional C, if constructor_designated
1520         is true.
1521
1522 Wed Oct 24 15:35:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1523
1524         * integrate.c (copy_rtx_and_substitute, case CALL): Fix error in last
1525         change.
1526
1527 Wed Oct 24 13:26:12 2001  Jeffrey A Law  (law@cygnus.com)
1528
1529         * h8300.h (RETURN_ADDR_RTX): Remove old, incorrect definition.
1530
1531 2001-10-24  Dan Nicolaescu  <dann@ics.uci.edu>
1532
1533         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't do anything if
1534         the node was already a set to a constant.
1535
1536 Wed Oct 24 12:41:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1537
1538         * emit-rtl.c (set_mem_attributes): Fix typo in last change.
1539         * print-rtl.c (print_rtx, case MEM): Improve display of MEM_DECL.
1540
1541 2001-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1542
1543         * s390/linux.h (ASM_OUTPUT_BYTE): Fix format specifier warnings.
1544         (ASM_OUTPUT_ASCII): Const-ify.  Fix signed/unsigned warning.
1545         (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
1546         * s390.c (s390_final_chunkify): Don't use string concatenation.
1547         (s390_function_prologue, s390_function_epilogue): Const-ify.
1548         * s390.h (FUNCTION_PROFILER): Remove unused variable.
1549
1550 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
1551
1552         * c-decl.c (finish_decl): Don't add DECL_STMTs for nested function
1553         prototypes.
1554
1555 2001-10-23  Stan Shebs  <shebs@apple.com>
1556
1557         * config/rs6000/x-darwin: Use -no-cpp-precomp instead of
1558         -traditional-cpp in first-stage compilation.
1559
1560 Tue Oct 23 21:45:40 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1561
1562         * gensupport.c (target_flags): Add.
1563
1564 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
1565
1566         * builtins.c (expand_builtin_setjmp): Only call convert_memory_address
1567         if needed.
1568         (expand_builtin_longjmp, expand_builtin_alloca): Likewise.
1569         * except.c (expand_builtin_frob_return_addr): Likewise.
1570         (expand_builtin_eh_return): Likewise.
1571         * stmt.c (expand_computed_goto): Likewise.
1572         * explow.c (memory_address): Likewise.
1573         (allocate_dynamic_stack_space): Clean up predicate testing.
1574         (probe_stack_range): Convert SIZE to Pmode.
1575         * calls.c (rtx_for_function_call): Only call convert_memory_address
1576         if needed.
1577         Pass function call operand as ptr_mode, not Pmode.
1578         * expr.c (expand_assignment): Clean up calls to convert_memory
1579         address by only doing so when needed and making offsets Pmode.
1580         (store_constructor, expand_expr, expand_expr_unaligned): Likewise.
1581         * function.c (assign_parms): Ensure address in MEM for RESULT_DECL
1582         is in Pmode, not ptr_mode.
1583
1584 2001-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1585
1586         * darwin-protos.h (constructor_section, destructor_section,
1587         mod_init_section, mod_term_section): Prototype.
1588         * darwin.c (machopic_finish, update_non_lazy_ptrs, update_stubs):
1589         Const-ify.
1590         * darwin.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_NAME):
1591         Likewise.
1592         (SECTION_FUNCTION): Prototype `FUNCTION'.  Delete
1593         objc_section_init declaration.
1594         (EXTRA_SECTION_FUNCTIONS): Prototype objc_section_init.
1595         (objc_section_init, try_section_alias): Make static.
1596         (alias_section): Make static and hide unused function.
1597         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
1598
1599 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1600
1601         * alias.c (can_address_p): Compnonents are not addressable if
1602         the containing type has alias set 0.
1603         (get_alias_set): Rework to use STRIP_NOPS.
1604         Only call front-end routine on object, type, or object with
1605         NOPs stripped, not inner values.
1606         Use language hook to call front-end routine.
1607         * builtins.c (get_memory_rtx): Always call set_mem_attributes.
1608         (expand_builtin_apply): Call set_mem_align on MEMs we make.
1609         Don't pass alignment to emit_block_move.
1610         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
1611         (expand_builtin_memset): Likewise, but for clear_storage.
1612         * c-common.c (lang_get_alias_set): Renamed to c_common_alias_set
1613         and remove C++ specific parts.
1614         * c-common.h (c_common_get_alias_set): Add declaration.
1615         * c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
1616         * calls.c (emit_call_1): Fix typo in sibcall_pop case.
1617         (save_fixed_argument_area): Call set_mem_align.
1618         Remove alignment in call to emit_block_move.
1619         (emit_library_call_value_1, store_one_arg): Likewise.
1620         (target_for_arg): Remove; disabled long ago.
1621         * emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs
1622         once and similar cleanups.
1623         (offset_address): Use proper introductory comment.
1624         * expr.c (emit_block_move): Use alignment from that of MEM args, not
1625         from explicit operand; all callers changed.
1626         (clear_storage): Likewise.
1627         (expand_assignment): Don't call set_mem_alias_set on to_rtx.
1628         (store_field): Remove kludge on alias set used for to_rtx.
1629         (highest_pow2_factor, case *_DIV_EXPR): Never return 0.
1630         (expand_expr_unaligned): Call set_mem_attributes instead of
1631         set_mem_alias_set.
1632         * expr.h (emit_block_move, clear_storage): Remove ALIGN argument.
1633         * function.c (assign_stack_temp_for_type): Set MEM alignment.
1634         (expand_function_end): Track MEM attributes of trampolines.
1635         * ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM.
1636         * integrate.c (copy_rtx_and_substitute, case CALL): Copy memory
1637         attributes from original.
1638         * langhooks.c (lang_hook_default_get_alias_set): New function.
1639         (hook_get_alias_set_0): New function.
1640         * langhooks.h (hook_get_alias_set_0): New declaration.
1641         (lang_hook_default_get_alias_set): Likewise.
1642         (LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer.
1643         * reload1.c (alter_reg): Use adjust_address_nv.
1644         * rtl.c (get_mode_alignment): Moved to here.
1645         * rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and
1646         change default if unknown from 1 to BITS_PER_UNIT.
1647         * stor-layout.c (get_mode_alignment): Remove from here.
1648         * toplev.h (struct lang_hoks): Add get_alias_set field.
1649         * tree.h (lang_get_alias_set): Delete declaration.
1650         * config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment.
1651         * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
1652         (ix86_va_arg): Likewise.
1653         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
1654         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
1655         * config/sparc/sparc.c (sparc_va_arg): Likewise.
1656         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
1657         (expand_block_move_mem): Remove dead code.
1658
1659 2001-10-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1660
1661         * c-common.c (warn_div_by_zero): New.
1662         * c-common.h (warn_div_by_zero): New.
1663         * c-decl.c (c_decode_option): Take it on the command line.
1664         * c-typeck.c (build_binary_op): Warn about division by zero.
1665         * doc/invoke.texi: Document the new command line option, fix
1666         documentation of -Wmultichar.
1667         * testsuite/gcc.dg/divbyzero.c: New tests.
1668         * testsuite/gcc.dg/noncompile/20010524-1.c: Update.
1669
1670 Tue Oct 23 15:30:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
1671
1672         * i386.c (ix86_expand_int_movcc): Cleanup; use expand_simple_*op.
1673
1674         * toplev.c (rest_of_compilation): Use CLEANUP_UPDATE_LIFE
1675         to avoid update_life_info call.
1676         * basic-block.h (CLEANUP_UPATE_LIFE): Define.
1677         * cfgcleanup.c (bb_flags): New enum.
1678         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG, FORWARDER_BLOCK_P): New macros.
1679         (notice_new_block, update_forwarder_flag): New functions.
1680         (try_simplify_condjump): Use FORWARDER_BLOCK_P.
1681         (try_forward_edges): Likewise; update flags.
1682         (merge_blocks): Likewise.
1683         (outgoing_edges_match): Likewise.
1684         (try_crossjump_to_edge): Likewise.
1685         (try_optimize_cfg): Likewise; initialize and clear the flags;
1686         recompute life info if needed.
1687         (cleanup_cfg): No need to clear aux pointers.
1688
1689 2001-10-23  Alexandre Oliva  <aoliva@redhat.com>
1690
1691         * config/i386/i386.c (override_options): Default to minimum
1692         stack alignment when optimizing for code size.
1693         * doc/invoke.texi (-mpreferred-stack-boundary): Document the
1694         change.
1695
1696         * config/i386/i386.c (override_options): Set upper limit of
1697         -mpreferred-stack-boundary to 12.
1698
1699 2001-10-22  Zack Weinberg  <zack@codesourcery.com>
1700
1701         * recog.c (peephole2_optimize): Add default case to switch.
1702
1703 2001-10-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1704
1705         * doc/gcc.texi (Sending Patches): Remove.
1706
1707 2001-10-22  Hans-Peter Nilsson  <hp@bitrange.com>
1708
1709         * unwind-dw2-fde.c (fde_unencoded_compare): Derefer pc_begin
1710         fields when comparing.
1711
1712 2001-10-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1713
1714         * arm.h (HOST_INT, HOST_UINT): Delete.  Remove all uses.
1715         * arm.c (HOST_INT, HOST_UINT): Likewise.
1716
1717 2001-10-22  Stan Shebs  <shebs@apple.com>
1718
1719         * config/darwin-protos.h (darwin_exception_section): Declare.
1720         (darwin_eh_frame_section): Declare.
1721
1722 Mon Oct 22 18:21:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
1723
1724         * i386.md (movti_rex64): Fix mode.
1725
1726 2001-10-22  Stan Shebs  <shebs@apple.com>
1727
1728         * target.h (struct gcc_target): Add asm_out.exception_section,
1729         asm_out.eh_frame_section.
1730         * target-def.h (TARGET_ASM_EXCEPTION_SECTION): New macro.
1731         (TARGET_ASM_EH_FRAME_SECTION): New.
1732         (TARGET_INITIALIZER): Update.
1733         * output.h (default_exception_section): Declare.
1734         (default_eh_frame_section): Declare.
1735         * dwarf2out.c: Include target.h.
1736         (output_call_frame_info): Call target hook for eh frames.
1737         (default_eh_frame_section): New function.
1738         * except.c: Include target.h.
1739         (output_function_exception_table): Call target hook for exception
1740         section.
1741         * varasm.c (default_exception_section): Rename from
1742         exception_section, remove EXCEPTION_SECTION macro.
1743
1744         * config/darwin.h (darwin_eh_frame_section): New function.
1745         (EXCEPTION_SECTION): Remove.
1746         (TARGET_ASM_EXCEPTION_SECTION): Define.
1747         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP): Remove.
1748         (nextstep_exception_section): New function.
1749         (nextstep_eh_frame_section): New function.
1750         (TARGET_ASM_EXCEPTION_SECTION): Define.
1751         (TARGET_ASM_EH_FRAME_SECTION): Define.
1752
1753         * config/pa/som.h (EXCEPTION_SECTION): Remove.
1754         (TARGET_ASM_EXCEPTION_SECTION): Define.
1755         * config/rs6000/sysv4.h, config/rs6000/xcoff.h
1756         (EXCEPTION_SECTION): Remove.
1757         (TARGET_ASM_EXCEPTION_SECTION): Define.
1758         * config/stormy16/stormy16.h: Remove comments referencing
1759         EXCEPTION_SECTION and EH_FRAME_SECTION_ASM_OP.
1760
1761         * doc/tm.texi: Document TARGET_ASM_EXCEPTION_SECTION and
1762         TARGET_ASM_EH_FRAME_SECTION.
1763
1764 2001-10-22  Nick Clifton  <nickc@cambridge.redhat.com>
1765
1766         * config/mips/mips.md (mul_acc_si): Fix precedence of conditional
1767         terms.
1768
1769         * c-format.c: Fix spelling typo in comment.
1770
1771         * sched-int.h: Fix typo in GCC preamble.
1772
1773 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1774
1775         PR debug/4252
1776         * doc/invoke.texi: Remove references to -fdump-translation-unit.
1777
1778 2001-10-22  Richard Henderson  <rth@redhat.com>
1779
1780         * config/i386/i386.c (ix86_expand_clear): New.
1781         * config/i386/i386-protos.h: Declare it.
1782         * config/i386/i386.md (setcc peep2s): Use it.
1783         (movsi_xor): Unexport.
1784
1785 2001-10-22  Richard Henderson  <rth@redhat.com>
1786
1787         * flow.c (clear_log_links): Use free_INSN_LIST_list, not
1788         free_EXPR_LIST_list for LOG_LINKS.
1789
1790 2001-10-21  Robert Lipe  <robertlipe@usa.net>
1791
1792         * config/i386/i386.c (sco_asm_named_section): Delete.
1793         (sco_asm_out_constructor): Delete.
1794         * config/i386/sco5.h (ASM_QUAD): Undo damage from att.h.
1795         (ASM_OUTPUT_DOUBLE_INT): Likewise.
1796         (TARGET_ASM_CONSTRUCTOR): Delete.  Use default.
1797         (TARGET_ASM_NAMED_SECTION): Use default for ELF.
1798         (EXCEPTION_SECTION): Delete EH scn renaming hack.
1799
1800 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1801
1802         * c-format.c (maybe_read_dollar_number): Use safe-ctype macros
1803         and/or fold extra calls into fewer ones.
1804         * collect2.c (dump_file): Likewise.
1805         * cppexp.c (parse_number): Likewise.
1806         * cpplex.c (_cpp_lex_direct): Likewise.
1807         * final.c (output_asm_insn, asm_fprintf): Likewise.
1808         * fix-header.c (inf_scan_ident, main): Likewise.
1809         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
1810         Likewise.
1811         * fold-const.c (real_hex_to_f): Likewise.
1812         * gen-protos.c (parse_fn_proto): Likewise.
1813         * genattrtab.c (check_attr_test, check_attr_value): Likewise.
1814         * genrecog.c (change_state, write_action): Likewise.
1815         * gensupport.c (shift_output_template): Likewise.
1816         * local-alloc.c (requires_inout): Likewise.
1817         * mips-tfile.c (IS_ASM_IDENT): Likewise.
1818         * protoize.c (is_id_char, main): Likewise.
1819         * real.c (asctoeg): Likewise.
1820         * recog.c (asm_operand_ok): Likewise.
1821         * reload.c (find_reloads): Likewise.
1822         * scan.c (scan_identget_token): Likewise.
1823         * sched-vis.c (print_value): Likewise.
1824         * stringpool.c (ggc_alloc_string): Likewise.
1825         * toplev.c (read_integral_parameter, decode_g_option): Likewise.
1826         * tradcif.y (parse_number, yylex, parse_escape): Likewise.
1827         * tradcpp.c (rescan): Likewise.
1828         * tree.c (clean_symbol_name): Likewise.
1829         * varasm.c (decode_reg_name): Likewise.
1830
1831         * alpha.h (ASM_OUTPUT_ASCII): Likewise.
1832         * darwin.c (name_needs_quotes, func_name_maybe_scoped): Likewise.
1833         * dsp16xx.h (ASM_OUTPUT_ASCII): Likewise.
1834         * m88k.c (output_ascii): Likewise.
1835         * m88k.h (OVERRIDE_OPTIONS): Likewise.
1836         * mcore.h (REG_CLASS_FROM_LETTER): Likewise.
1837         * ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise.
1838         * sh.h (REG_CLASS_FROM_LETTER): Likewise.
1839
1840 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1841
1842         * langhooks.c (lang_hook_default_do_nothing,
1843         lang_hook_default_decode_option): New defaults.
1844         * langhooks.h: Make hooks unconditional and non-NULL.
1845         * toplev.c (compile_file, toplev_main): Update.
1846         * toplev.h: Update comments.
1847         * objc/objc-act.c (lang_hooks): Update to new paradigm.
1848
1849 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1850
1851         * arm.h (FUNCTION_ARG_REGNO_P): Use IN_RANGE.
1852
1853         * system.h (IN_RANGE): New macro.
1854
1855 2001-10-21  Zack Weinberg  <zack@codesourcery.com>
1856
1857         * aclocal.m4 (AM_WITH_NLS): Also create and substitute
1858         INTLDEPS variable, which does not include $LIBICONV.
1859         * Makefile.in: Use INTLDEPS in LIBDEPS.
1860         * configure: Regenerate.
1861
1862 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1863
1864         * cpphash.h (struct cpp_buffer): Delete read_ahead and extra_char.
1865         * cpplex.c (lex_percent, lex_dot): Remove.
1866         (get_effective_char, skip_block_comment, skip_line_comment,
1867         parse_identifier_slow, parse_number, parse_string, save_comment,
1868         _cpp_lex_direct): Update to do lookback freely.
1869         (IF_NEXT_IS, BACKUP): New macros.
1870         * cpplib.c (cpp_push_buffer): Don't set read_ahead and extra_char.
1871         * cppmacro.c (paste_tokens): Update.
1872
1873 2001-10-20  Nick Clifton  <nickc@cambridge.redhat.com>
1874
1875         * doc/invoke.texi (i386 and x86-64 Options): Fix typo.
1876
1877 2001-10-20  Hans-Peter Nilsson  <hp@axis.com>
1878
1879         * reload1.c (reload): Check CONSTANT_P before calling
1880         LEGITIMATE_PIC_OPERAND_P.
1881         * config/cris/cris.c (cris_legitimate_pic_operand): Revert
1882         workaround of 2001-10-13.
1883
1884 Sat Oct 20 15:16:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
1885
1886         * i386.c (split_di): Handle splitting of DFmode.
1887
1888 Sat Oct 20 07:27:14 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1889
1890         * emit-rtl.c (set_mem_attributes): Alignment is in bits.
1891         (adjust_address_1, offset_address): Likewise.
1892
1893         * final.c (output_asm_operand_names): New fcn, from output_asm_insn.
1894         (output_asm_insn): Call it for each line output.
1895         Don't record an operand more than once.
1896
1897         * toplev.h (struct lang_hooks): HONOR_READONLY now bool.
1898         * main.c: Include config.h and system.h, but not ansidecl.h.
1899         * Makefile.in (main.o): Update accordingly.
1900
1901 Sat Oct 20 12:05:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
1902
1903         * i386.h (SSE_REGPARM_MAX): Set to 8 for x86_64.
1904
1905 Sat Oct 20 12:01:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
1906
1907         * basic-block.h (find_sub_basic_blocks): Use sbitmap parameter.
1908         * cfgbuild.c (find_bb_boundaries, compute_outgoing_frequencies):
1909         Break out from ...
1910         (find_sub_basic_blocks): ... here;
1911         (find_many_sub_basic_blocks): New.
1912         * recog.c (split_all_insns): Update find_sub_basic_blocks call.
1913
1914         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Define sdata4.
1915
1916         * i386.c (ix86_va_arg): Kill indirect_p handling; fix aliasing issues.:
1917
1918         * i386.c (split_di, split_ti): Revamp to use simplify_subreg.
1919
1920         * timevar.def (TV_LIFE, TV_LIFE_UPDATE, TV_MODE_SWITCH): new.
1921         * flow.c (update_life_info): Measure time.
1922         * c-decl.c: Include timevar.h
1923         (c_expand_body): Measure time.
1924         * toplev.c (rest_of_compilation): Measure time of mode switching
1925         separately.
1926         * Makefile.in (c-decl.o, cfgcleanup.o): Add dependency.
1927
1928         * toplev.c (flag_asynchronous_unwind_tables): New global variable.
1929         (lang_independent_options): Add asynchronous-unwind-tables
1930         (toplev_main): flag_asynchronous_unwind_tables implies
1931         flag_unwind_tables.
1932         * flags.h (flag_asynchronous_unwind_tables): Declare.
1933         * dwarf2out.c (dwarf2out_stack_adjust): Take into account
1934         flag_asynchronous_unwind_tables.
1935         (output_call_frame_info): Likewise.
1936         * invoke.texi (-fasynchronous-unwind-tables): Document.
1937         * i386.c (optimization_options): Enable
1938         flag_asynchronous_unwind_tables.
1939
1940         * i386.c (ix86_expand_setcc):  Always expect target to be QImode.
1941         * i386.md (s* expanders): Destination is QImode.
1942
1943         * toplev.c (rest_of_compilation): Do not call clear_log_links.
1944         * rtl.h (clear_log_links): Kill.
1945         * flow.c (clear_log_links): Make static; accept blocks parameter;
1946         do no clear life info.
1947         (update_life_info): Call clear_log_links.
1948
1949         * cfganal.c (forwarder_block_p): Avoid active_insn_p calls.
1950
1951 2001-10-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1952
1953         * cpplex.c (handle_newline, skip_escaped_newlines,
1954         get_effective_char, skip_block_comment, skip_line_comment,
1955         parse_identifier_slow, parse_number, parse_string,
1956         _cpp_lex_direct): Update to do more stepping back.
1957         (trigraph_ok): Similarly.  Rename trigraph_p.
1958         (SAVE_STATE, RESTORE_STATE): Remove.
1959         (BUFF_SIZE_UPPER_BOUND): Tweak.  Add sanity check.
1960
1961         * cpplib.c (destringize): Rename destringize_and_run, and
1962         call run_directive directly.
1963         (_cpp_do__Pragma): Simplify.
1964
1965 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1966
1967         * pe.c (arm_pe_unique_section): Const-ify.
1968         * pe.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
1969         (switch_to_section): Add static prototype.
1970
1971         * output.h (drectve_section): Prototype.
1972
1973 2001-10-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1974
1975         * config.gcc (i[34567]86-*-gnu*, arc-*-elf*, d30v-*,
1976         fr30-*-elf, hppa*64*-*-linux*, parisc*64*-*-linux*, hppa*-*-linux*,
1977         parisc*-*-linux*, i370-*-linux*, i[34567]86-*-chorusos*,
1978         i[34567]86-*-elf*, i[34567]86-ncr-sysv4*, i[34567]86-*-netware,
1979         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1980         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-freebsd*,
1981         i[34567]86-*-netbsdelf*, i[34567]86-*-linux*libc1,
1982         i[34567]86-*-linux*, i[34567]86-moss-msdos*, i[34567]86-*-moss*,
1983         i[34567]86-go32-rtems*, i[34567]86-*-rtems*, i[34567]86-*-rtemself*,
1984         i[34567]86-*-solaris2*, i[34567]86-*-sysv5*, i[34567]86-*-sysv4*,
1985         i[34567]86-*-udk*, i[34567]86-*-osf1*, i[34567]86-dg-dgux*,
1986         i860-alliant-*, i860-*-sysv4*, ia64*-*-aix*, ia64*-*-linux*,
1987         ia64*-*-hpux*, m32r-*-elf*, m88k-dg-dgux*, m88k-*-sysv4*, mcore-*-elf,
1988         mips*-*-linux*, mn10200-*-*, mn10300-*-*, pj*-linux*, pjl-*,
1989         powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*,
1990         powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*,
1991         powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*,
1992         powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*,
1993         powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*,
1994         powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*,
1995         rs6000-*-mach*, s390-*-linux*, s390x-*-linux*, sh-*-elf*,
1996         sh-*-rtemself*, sh-*-rtems*, sh-*-linux*, stormy16-*-elf,
1997         v850-*-rtems*, v850-*-*, x86_64-*-linux*), cris-*-aout, cris-*-elf,
1998         cris-*-none, cris-*-linux*: Update ${tmfile} list.
1999         (c4x-*-rtems*, c4x-*, i[34567]86-go32-rtems*, i[34567]86-*-rtemscoff*,
2000         i[34567]86-*-rtems*, i[34567]86-*-rtemself*, i[34567]86-*-osf1*,
2001         mn10200-*-*, mn10300-*-*, powerpc-*-beos*, powerpc-*-darwin*,
2002         powerpc-wrs-vxworks*, powerpcle-wrs-vxworks*, v850-*-rtems*,
2003         v850-*-*): Delete superflous ${cpu_type} setting.
2004         * config/linux.h: Delete svr4.h include.
2005         (SET_ASM_OP): Delete.
2006         * config/netware.h (INT_ASM_OP): Undef before define.
2007         * config/ptx4.h: Delete elfos.h include.
2008         (PREFERRED_DEBUGGING_TYPE): Undef instead of wrapping.
2009         * config/svr4.h: Delete elfos.h include. Update commentary.
2010         * config/arc/arc.h, config/d30v/d30v.h, config/fr30/fr30.h,
2011         config/m32r/m32r.h, config/m88k/sysv4.h, config/mn10200/mn10200.h,
2012         config/mn10200/mn10300.h, config/stormy16/stormy16.h,
2013         config/v850/v850.h: Delete svr4.h include.
2014         * config/i370/linux.h, config/i386/osf1elf.h, config/m68k/linux.h,
2015         config/m68k/m68kv4.h, config/m88k/sysv4.h,
2016         config/sparc/sysv4.h: Update includes.
2017         * config/i386/beos-elf.h, config/i386/netware.h, config/i386/ptx4-i.h,
2018         config/i386/rtemself.h, config/i386/sol2.h, config/i386/sysv4.h,
2019         config/i386/sysv5.h, config/i386/udk.h, config/ia64/linux.h,
2020         config/m88k/dguxbcs.h: Delete includes.
2021         * config/i386/dgux.h, config/i386/osf1elfgdb.h: Delete include.
2022         (PREFERRED_DEBUGGING_TYPE): Undef before defining it.
2023         * config/i860/fx2800.h (ASM_OUTPUT_SOURCE_LINE): Undef before defining
2024         it.
2025         * config/m88k/dgux.h: Delete include.
2026         (SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):  Undef before
2027         defining it.
2028         * config/pj/pj.h (ASM_GENERATE_INTERNAL_LABEL,
2029         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Undef before defining it.
2030         * config/sh/elf.h: Update include.
2031         (SDB_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2032         DWARF2_ASM_LINE_DEBUG_INFO): Move behind includes.
2033
2034 2001-10-19  Catherine Moore  <clm@redhat.com>
2035
2036         * config/stormy16/stormy-abi:  Updates to varargs descriptions.
2037         * config/stormy16/stormy16.c (stormy16_build_va_list):  Reverse
2038         base and count fields.
2039         (stormy16_expand_builtin_va_start):  last_reg_count changed to
2040         size_of_reg_args.  Use count + size in first comparison.
2041
2042 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2043
2044         * langhooks.h (LANG_HOOKS_HONOR_READONLY): New macro.
2045         * toplev.h (struct lang_hooks): New field HONOR_READONLY.
2046         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGING_P from
2047         TREE_READONLY and TYPE_READONLY if lang_hooks.honor_readonly.
2048         Set alignment from type if INDIRECT_REF.
2049         (adjust_address_1, offset_address): Simplify alignment compuitation.
2050         * expr.c (expand_expr, case INDIRECT_REF): Don't set RTX_UNCHANGING_P
2051         here; done by set_mem_attributes.
2052
2053 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2054
2055         * Makefile.in (rtlanal.o): Depend on $(TM_P_H).
2056         * arm-protos.h (rdata_section, zero_init_section, common_section):
2057         Prototype.
2058         * arm.h (ASM_OUTPUT_DEF_FROM_DECLS): Const-ify.
2059         * avr.h (ASM_OUTPUT_SKIP): Rename macro parameter to avoid
2060         traditional mode stringification.
2061         * function.c (thread_prologue_and_epilogue_insns): Wrap variable
2062         in macros controling its use.
2063         * rtlanal.c: Include tm_p.h.
2064         * varasm.c (asm_output_aligned_bss): Mark parameter with
2065         ATTRIBUTE_UNUSED.
2066         (assemble_constant_align, assemble_start_function, assemble_align,
2067         assemble_variable, assemble_trampoline_template,
2068         output_constant_def_contents): Wrap potentially empty if-stmt body
2069         in brackets.
2070
2071 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2072
2073         * a29k-protos.h (literal_section): Prototype.
2074         * a29k.h (ASM_FILE_START): Don't discard pointer qualifier.
2075         * a29k.md: Ensure function pointers are prototyped.
2076         * genattrtab.c (write_eligible_delay): Mark parameter with
2077         ATTRIBUTE_UNUSED.
2078
2079 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2080
2081         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
2082         * 1750a.c (print_operand): Fix format specifier warning.
2083         * 1750a.h (ASM_FILE_START): Don't discard pointer qualifier.
2084         * 1750a.md: Likewise.
2085         * gcc.c (init_gcc_specs): Wrap with ENABLE_SHARED_LIBGCC.
2086         * genemit.c (output_add_clobbers): Mark parameter with
2087         ATTRIBUTE_UNUSED.
2088         * genrecog.c (write_subroutine): Likewise.
2089         * integrate.c (expand_inline_function): Delete unused variable.
2090         * varasm.c (remove_from_pending_weak_list): Wrap with
2091         ASM_WEAKEN_LABEL.
2092
2093 2001-10-19  Jakub Jelinek  <jakub@redhat.com>
2094
2095         * simplify-rtx.c (simplify_plus_minus): Negate constant iff its neg
2096         field is different to previous argument's neg field.
2097
2098         * config/alpha/alpha.c (summarize_insn): Don't abort on ASM_INPUT.
2099
2100 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2101
2102         * final.c (get_decl_from_op): New function.
2103         (output_asm_insn): Call it; write "*" when item with decl is address.
2104
2105 2001-10-19  Janis Johnson  <janis187@us.ibm.com>
2106
2107         * doc/install.texi (Specific, sparc-sun-solaris2*) Copy documentation
2108         about 64-bit support from the 3.0_branch version.
2109
2110 2001-10-19  Zack Weinberg  <zack@codesourcery.com>
2111
2112         * aclocal.m4 (AM_WITH_NLS): AC_DEFINE HAVE_LIBINTL_H and
2113         USE_INCLUDED_LIBINTL when appropriate.
2114         * configure, config.in: Regenerate.
2115         * Makefile.in (datadir): Set to @datadir@.
2116         (intl.o): Also depend on $(CONFIG_H) and system.h.
2117
2118         * intl.c: Factor out common gettext initialization sequence.
2119         (gcc_init_libintl):  New function.
2120         * intl.h: Include intl/libgnuintl.h if USE_INCLUDED_LIBINTL;
2121         otherwise include libintl.h if HAVE_LIBINTL_H; otherwise turn
2122         off NLS.  Add multiple include guard.  No need to #ifdef-guard
2123         an #undef.  Prototype gcc_init_libintl here.
2124
2125         * collect2.c (main), cppmain.c (general_init), gcc.c (main),
2126         gcov.c (main), protoize.c (main), toplev.c (toplev_main):
2127         Use gcc_init_libintl.
2128
2129 2001-10-19  Catherine Moore  <clm@redhat.com>
2130
2131         * config/stormy16/stormy16.h (ASM_COMMENT_START): Define.
2132
2133         * config/stormy16/stormy16.c (stormy16_split_move):  Make
2134         sure that REG_INC notes are present for auto_inc operands.
2135
2136 2001-10-19  Andreas Jaeger  <aj@suse.de>
2137
2138         * configure: Regenerated.
2139         * configure.in: Add x86_64 to switch statements.
2140
2141 2001-10-18  Richard Henderson  <rth@redhat.com>
2142
2143         * config/alpha/alpha.md (sibcall_osf_1): Load destination
2144         address into $27 explicitly.
2145         (sibcall_value_osf_1): Likewise.
2146
2147 Thu Oct 18 16:07:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2148
2149         * emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.
2150         (offset_address): New function.
2151         (free_emit_status): Free regno_decl.
2152         (init_emit): Pass proper number of elements to xcalloc.
2153         Allocate regno_decl.
2154         (mark_emit_status): Mark regno_decl values.
2155         * expr.c (highest_pow2_factor): New function.
2156         (expand_assigment): Use it and offset_address.
2157         Properly handle ptr_mode vs. Pmode in offset calculation.
2158         (store_constructor, expand_expr_unaligned): Likewise.
2159         (expand_expr, case COMPONENT_EXPR): Likewise.
2160         * expr.h (offset_address): New decl.
2161         * function.h (struct emit_status): Add regno_decl.
2162         (REGNO_DECL): New macro.
2163         * final.c (output_asm_name): Move in file and don't conditionalize
2164         on flag_print_asm_name.
2165         (output_asm_insn): Only call output_asm_name if flag_print_asm_name.
2166         Output names of operands, if known.
2167         * function.c (assign_parms): Set REGNO_DECL.
2168         * integrate.c (integrate_decl_tree): Likewise.
2169         * stmt.c (expand_decl): Likewise.
2170         * regclass.c (reg_scan_mark_refs): Propagate REGNO_DECL for copies.
2171
2172 2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
2173
2174         * attribs.c (handle_noinline_attribute): New function.
2175         (handle_used_attribute): Likewise.
2176         (c_common_attribute_table): Added noinline and used.
2177         * doc/extend.texi (Function Attributes): Document them.
2178         * c-decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
2179         Warn when merging inline with attribute noinline.
2180         (start_decl, start_function): Warn if inline and attribute
2181         noinline appear in the same declaration.
2182
2183 2001-10-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2184
2185         * config.gcc: Update c4x and i370 for C front end-specific
2186         dependencies.
2187         * config/c4x/c4x-c.c: New.
2188         * config/c4x/c4x-protos.h (c4x_handle_pragma): Remove.
2189         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
2190         New declarations.
2191         * config/c4x/c4x.c: Don't include c-lex.h or c-pragma.h.
2192         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
2193         Make extern.
2194         (c4x_init_pragma): Remove.
2195         (c4x_parse_pragma, c4x_pr_CODE_SECTION, c4x_pr_DATA_SECTION,
2196         c4x_pr_FUNC_IS_PURE, c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT,
2197         c4x_pr_ignored): Move to c4x-c.c.
2198         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
2199         * config/c4x/t-c4x: Update.
2200         * config/i370/i370-c.c: New.
2201         * config/i370/i370.c: Don't include c-lex.h or c-pragma.h.
2202         (i370_pr_map): Move to i370-c.c.
2203         * config/i370/t-i370: New.
2204
2205         * doc/tm.texi: Update.
2206
2207 2001-10-17  Stan Shebs  <shebs@apple.com>
2208
2209         * config/rs6000/rs6000.c: Make assorted mechanical formatting and
2210         typo fixes throughout.
2211         (machopic_output_stub): Remove some dead code.
2212
2213 2001-10-17  Richard Earnshaw <rearnsha@arm.com>
2214
2215         * cpplex.c (_cpp_get_buff): Fix off-by-one error that caused memory
2216         leak.
2217
2218 Wed Oct 17 05:26:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2219
2220         * Makefile.in (print-rtl.o): Depend on TREE_H.
2221         * alias.c (get_alias_set): Make two passes over objects to first
2222         see if inner object is access via restricted pointer.
2223         Defer allocating alias set for restricted pointer until here.
2224         Call find_placeholder with second arg nonzero.
2225         Minor cleanups.
2226         * c-common.c (c_apply_type_quals_to_decl): Defer getting alias
2227         set for restricted pointer types.
2228         * emit-rtl.c (set_mem_attributes): Set more attributes.
2229         (set_mem_align, change_address, adjust_address_1): New functions.
2230         (change_address_1): Now static.
2231         (adjust_address, adjust_address_nv): Deleted.
2232         (replace_equiv_address): Call change_address_1.
2233         * expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR.
2234         (find_placeholder): Get starting point from PLIST arg.
2235         (expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg.
2236         * expr.h (set_mem_align, change_address, adjust_address_1): New decls.
2237         (adjust_address, adjust_address_nv): New macros.
2238         * print-rtl.c (tree.h): New include.
2239         (print_rtx, case MEM): Print all memory attributes.
2240
2241 2001-10-17  Richard Henderson  <rth@redhat.com>
2242
2243         * config/alpha/alpha.c (direct_call_operand): Don't fall off end.
2244
2245 2001-10-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
2246
2247         * c-tree.texi: Eliminate duplicated word.
2248         * cpp.texi: Likewise.
2249         * install.texi: Likewise.
2250         * invoke.texi: Likewise.
2251         * tm.texi: Likewise.
2252
2253 2001-10-17  Michael Collison  <collison@isisinc.net>
2254
2255         * dsp16xx.c: Fix comment formatting to match GNU standards.
2256         (dsp16xx_output_function_prologue): Change type of 'size'
2257         parameter from 'int' to HOST_WIDE_INT.
2258         (dsp16xx_output_function_epilogue): Change type of 'size'
2259         parameter from 'int' to HOST_WIDE_INT.
2260
2261 2001-10-16  Richard Henderson  <rth@redhat.com>
2262
2263         * configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
2264         * configure, config.in: Rebuild.
2265
2266         * config/i386/i386.c (ix86_output_addr_vec_elt): New.
2267         (ix86_output_addr_diff_elt): New.
2268         * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them.
2269         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2270         (JUMP_TABLES_IN_TEXT_SECTION): New.
2271         * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA.
2272         * config/i386/i386-protos.h: Update.
2273
2274         * config/i386/386bsd.h, config/i386/beos-elf.h,
2275         config/i386/freebsd-aout.h, config/i386/freebsd.h,
2276         config/i386/i386-interix.h, config/i386/i386elf.h,
2277         config/i386/linux.h, config/i386/netbsd-elf.h,
2278         config/i386/netbsd.h, config/i386/openbsd.h,
2279         config/i386/ptx4-i.h, config/i386/rtemself.h,
2280         config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h
2281         (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove.
2282
2283 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
2284
2285         * stmt.c (expand_asm_operands): Update commentary.
2286
2287 2001-10-16  Stan Shebs  <shebs@apple.com>
2288
2289         * config/darwin.h (GCC_NAME): Remove, no longer used.
2290         (NO_MATH_LIBRARY): Ditto.
2291         (MATH_LIBRARY): Define to emptiness.
2292         (DWARF2_DEBUGGING_INFO): Define.
2293         (PREFERRED_DEBUGGING_TYPE): Define.
2294         (EXTRA_SECTION_FUNCTIONS): Add darwin_exception_section.
2295         (EXCEPTION_SECTION): Define.
2296         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2297         * config/darwin.c (darwin_encode_section_info): Handle case of
2298         DECL_INITIAL being error_mark_node.
2299
2300 2001-10-16  Richard Henderson  <rth@redhat.com>
2301
2302         * alpha.c (current_file_function_operand): Don't fail for profiling.
2303         (direct_call_operand): New.
2304         * alpha-protos.h: Declare it.
2305         * alpha.h (EXTRA_CONSTRAINT): Use it.
2306         (PREDICATE_CODES): Add it.
2307         (ASM_OUTPUT_MI_THUNK): Remove.
2308         * alpha32.h (ASM_OUTPUT_MI_THUNK): Remove.
2309         * alpha.md (sibcall_osf_1, sibcall_value_osf_1): Add 's' alternative.
2310
2311 2001-10-16  Krister Walfridsson  <cato@df.lth.se>
2312
2313         * config/i386/netbsd-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Define.
2314         (JUMP_TABLES_IN_TEXT_SECTION): Define.
2315
2316 Wed Oct 17 00:21:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
2317
2318         * cfg.c (free_edge): Break out from ....
2319         (remove_edge): ... here.
2320         (clear_edges): Use free_edge.
2321
2322         * att.h (ASM_QUAD): Add comment.
2323         * bsd.h, sco5.h, sun386.h (ASM_QUAD): Define.
2324
2325 Wed Oct 17 00:01:02 CEST 2001  Jan Hubicka  <jh@suse.cz>
2326
2327         * i386.c (split_ti): New function.
2328         (ix86_split_to_parts): Support TImodes.
2329         * i386.h (VALID_INT_MODE_P): Add TImode.
2330         * i386.md (movdi splitter): Fix.
2331         (movti): Support 64bit integer registers.
2332         (movti_rex64): New function and splitter.
2333
2334         * i386.c (*_cost): Add movsx/movzx cost.
2335         * i386.h (struct processor_costs): Add movsx/movzx fields.
2336         (RTX_COSTS): Handle zero/sign extend + avoid believing that
2337         64bit operations require split on 64bit machine.
2338         (CONST_COST): Make large 64bit constants expensive on 64bit compilation.
2339
2340         * i386.c (ix86_setup_incoming_varargs): Fix mode of PLUS.
2341         (ix86_expand_move): Avoid pushes of memory if size does not match;
2342         move long constants to register.
2343         (x86_initialize_trampoline): Fix mode.
2344         * i386.h (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT):
2345         Use ASM_QUAD on 64bit.
2346         * i386.md (test pattern): Disallow impossible constants.
2347         (tablejump PIC expander): Fix emitting of sum.
2348         (movdicc_rex64): Rename to movdicc.
2349         * linux64.h (LINK_SPEC): Add missing '%'.
2350
2351 2001-10-16  Alexandre Oliva  <aoliva@redhat.com>
2352
2353         * tree-inline.c (inlinable_function_p): Leave it up to the
2354         front-end to turn -finline-functions into DECL_INLINE set for all
2355         functions.
2356
2357 2001-10-16  Stan Shebs  <shebs@apple.com>
2358
2359         * config/rs6000/darwin.h (ASM_COMMENT_START): Define.
2360
2361 2001-10-16  Alan Modra  <amodra@bigpond.net.au>
2362
2363         * recog.c: Formatting and comment typo fixes.
2364
2365         * configure.in (gcc_cv_as_bfd_srcdir): New.  Use it to find gas
2366         version in single tree build.
2367         * configure: Regenerate.
2368
2369 2001-10-15  David Edelsohn  <edelsohn@gnu.org>
2370
2371         * config/rs6000/rs6000.md (cr_logical): Swap order of CODE and
2372         MODE arguments to gen_rtx and compare operand with const0_rtx.
2373
2374 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
2375
2376         * system.h: Poison old unused target macros.
2377         * config/dsp16xx.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
2378         * config/stormy16/stormy16.c: Update references to obsolete macros.
2379         * config/stormy16/stormy16.h: Similarly.
2380         * config/stormy16/stormy16.md: Similarly.
2381         * config/cris/cris.h: Similarly.
2382
2383 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
2384
2385         * cpplib.c (struct pragma_entry): Store the name as a hashnode.
2386         (lookup_pragma_entry, insert_pragma_entry, do_pragma,
2387         cpp_register_pragma): Update accordingly.
2388
2389 2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2390
2391         * c-pragma.h (cpp_register_pragma_space): Remove.
2392         * cpplib.h (cpp_register_pragma_space): Remove.
2393         * cpplib.c (lookup_pragma_entry, insert_pragma_entry): New.
2394         (cpp_register_pragma_space): Remove.
2395         (cpp_register_pragma): Simplify using lookup_pragma_entry,
2396         add sanity checks.
2397         (do_pragma): Similarly.
2398         (_cpp_init_internal_pragmas): Don't register namespaces.
2399
2400         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS):
2401         Don't register namespaces.
2402         * cp/lex.c (init_cp_pragma): Similarly.
2403         * doc/tm.texi: Update.
2404
2405 2001-10-10  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2406
2407         PR c/4157
2408         * config/i386/cygwin.h: Add missing space to MINGW_INCLUDES
2409
2410 2001-10-13  Michael Collison  <collison@dhcp-12-114.townisp.com>
2411
2412         * config/dsp16xx/dsp16xx.md: Rewrite for more efficient code and
2413         add scheduling support.
2414         * config/dsp16xx/dsp16xx.h: Rewrite for more efficient code.
2415         * config/dsp16xx/dsp16xx.c: Rewrite for more efficient code.
2416         * config/dsp16xx/dsp16xx-protos.h: Add new function prototypes.
2417
2418
2419 2001-10-13  Hans-Peter Nilsson  <hp@axis.com>
2420
2421         * config/cris/cris.c (cris_legitimate_pic_operand): Kludge around
2422         missing CONSTANT_P test in core GCC.
2423
2424 2001-10-12  Neil Booth  <neil@daikokuya.demon.co.uk>
2425
2426         * cppmain.c (struct printer): New member source.
2427         (scan_translation_unit): Fix spacing at start of lines.
2428         (cb_line_change): Update.
2429
2430         * gcc.dg/cpp/spacing2.c: New test.
2431
2432 2001-10-12  Hans-Peter Nilsson  <hp@axis.com>
2433
2434         * config/cris/arit.c: Use __builtin_labs, not abs.
2435
2436         * config/cris/cris.h (SET_STRIPPABLE_EXECUTABLE): Don't define.
2437
2438         * config/cris/cris.c (cris_target_asm_function_epilogue): Move
2439         misplaced sprintf and fprintf argument.
2440
2441 2001-10-12  Zack Weinberg  <zack@codesourcery.com>
2442
2443         * ABOUT-NLS, aclocal.m4: Update i18n framework from gettext 0.10.40.
2444         * configure.in, Makefile.in: Take out obsolete check-po logic.
2445         * configure, config.in: Regenerate.
2446
2447 2001-10-12  Ziemowit Laski  <zlaski@apple.com>
2448
2449         * objc/objc-act.c (finish_objc): Correct precondition for emitting
2450         symtab declarations.
2451
2452 2001-10-12  Stan Shebs  <shebs@apple.com>
2453
2454         * config/rs6000/rs6000.c: Remove uses of "register" specifier in
2455         declarations of arguments and local variables.
2456
2457 2001-10-12  Christopher Faylor  <cgf@redhat.com>
2458
2459         * config/i386/cygwin.h: Revert erroneous checkin of crtbegin and
2460         ENDFILE_SPEC definition.
2461
2462 2001-10-12  Kazu Hirata  <kazu@hxi.com>
2463
2464         * gthr-dce.h: Fix comment formatting.
2465         * gthr-posix.h: Likewise.
2466         * gthr-single.h: Likewise.
2467         * gthr-solaris.h: Likewise.
2468         * gthr-vxworks.h: Likewise.
2469         * gthr-win32.h: Likewise.
2470
2471 2001-10-12  Jakub Jelinek  <jakub@redhat.com>
2472
2473         * final.c (output_asm_insn): Make sure assembly dialects are
2474         terminated, not nested.  Output `|' and `}' characters if they
2475         don't appear inside assembly dialect selection.
2476         * config/i386/i386.md (rep_movdi_rex64, rep_movsi, rep_movsi_rex64,
2477         rep_movqi, rep_movqi_rex64, rep_stosdi_rex64, rep_stossi,
2478         rep_stossi_rex64, rep_stosqi, rep_stosqi_rex64, strsetsi_1,
2479         strsetsi_rex_1): Add {} braces.
2480
2481 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
2482
2483         * toplev.c (compile_file): Ignore return value from yyparse.
2484         Always pop any nested binding levels after yyparse returns.
2485
2486 2001-10-11  Richard Henderson  <rth@redhat.com>
2487
2488         * doc/c-tree.texi (Expression trees): Add VTABLE_REF.
2489
2490 2001-10-11  Richard Henderson  <rth@redhat.com>
2491
2492         * dwarf2out.c (add_const_value_attribute): If long < HOST_WIDE_INT,
2493         fall back to add_AT_long_long for large CONST_INT.
2494
2495 2001-10-11  Richard Henderson  <rth@redhat.com>
2496
2497         * config/i386/i386.md (setcc splitters): Add four splitters to
2498         simplify compound compares that simplify_comparison can't handle.
2499
2500 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
2501
2502         * cpplex.c (digraph_spellings, token_spellings): Make static.
2503
2504 2001-10-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2505
2506         * unroll.c (loop_iterations): Fixup last patch.
2507
2508 2001-10-11  Richard Henderson  <rth@redhat.com>
2509
2510         * rtl.h (REG_VTABLE_REF): New.
2511         * rtl.c (reg_note_name): Add it.
2512         * combine.c (distribute_notes): Handle it.
2513         * final.c (final_scan_insn): Handle it.
2514         * tree.def (VTABLE_REF): New.
2515         * expr.c (expand_expr): Handle it.
2516         * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New.
2517         * output.h: Declare them.
2518
2519 2001-10-11  Richard Henderson  <rth@redhat.com>
2520
2521         * dwarf2out.c (rtl_for_decl_location): If no DECL_RTL, look
2522         for a DECL_INITIAL.
2523
2524 2001-10-11  David Edelsohn  <edelsohn@gnu.org>
2525
2526         * config/rs6000/xcoff.h (UNALIGNED_DOUBLE_INT_ASM_OP): Only
2527         available in 64-bit mode.
2528
2529 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
2530
2531         * config.gcc: Add cris-*-aout, cris-*-elf, cris-*-none,
2532         cris-*-linux* cases.
2533         * config/cris/cris-protos.h: New file.
2534         * config/cris/cris.c: New file.
2535         * config/cris/cris.h: New file.
2536         * config/cris/cris.md: New file.
2537         * config/cris/linux.h: New file.
2538         * config/cris/aout.h: New file.
2539         * config/cris/arit.c: New file.
2540         * config/cris/cris_abi_symbol.c: New file.
2541         * config/cris/mulsi3.asm: New file.
2542         * config/cris/t-aout: New file.
2543         * config/cris/t-cris: New file.
2544         * config/cris/t-elfmulti: New file.
2545         * config/cris/t-linux: New file.
2546         * doc/invoke.texi: Add CRIS options.
2547         * doc/install.texi (Specific): Add blurb for CRIS.
2548
2549 2001-10-10  Hartmut Schirmer <SchirmerH@Innovative-Systems.de>
2550
2551         * config/float-i128.h: Make sure __STDC__VERSION__ is defined
2552         before using it.
2553         * config/float/i32.h: Likewise.
2554         * config/float-i386.h: Likewise.
2555         * config/float-i64.h: Likewise.
2556         * config/float-m68k.h: Likewise.
2557         * config/float-sh.h: Likewise.
2558         * config/float-sparc.h: Likewise.
2559
2560 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
2561
2562         * doc/contrib.texi: Add note about CRIS port to my entry.
2563
2564 2001-10-11  Kazu Hirata  <kazu@hxi.com>
2565
2566         * basic-block.h: Fix formatting.
2567         * bitmap.h: Likewise.
2568         * cpplib.h: Likewise.
2569         * c-tree.h: Likewise.
2570         * diagnostic.h: Likewise.
2571         * flags.h: Likewise.
2572         * ggc.h: Likewise.
2573         * longlong.h: Likewise.
2574         * real.h: Likewise.
2575         * reload.h: Likewise.
2576         * rtl.h: Likewise.
2577         * tree.h: Likewise.
2578
2579 2001-10-10  Richard Henderson  <rth@redhat.com>
2580
2581         * c-parse.in (asm_operand): Allow named operands.
2582         * genconfig.c (max_recog_operands): Set to 29.
2583         * local-alloc.c (requires_inout): Skip multiple digits.
2584         * recog.c (asm_operand_ok): Likewise.
2585         (preprocess_constraints): Use strtoul for matching constraints.
2586         (constrain_operands): Likewise.
2587         * regmove.c (find_matches): Likewise.
2588         * reload.c (find_reloads): Likewise.
2589         * stmt.c (parse_output_constraint): Don't reject in-out
2590         constraint on operands > 9.  Reject '[' in constraint.
2591         (expand_asm_operands): Handle named operands.  Use strtoul
2592         for matching constraints.
2593         (check_operand_nalternatives): Split out from expand_asm_operands.
2594         (check_unique_operand_names): New.
2595         (resolve_operand_names, resolve_operand_name_1): New.
2596
2597         * doc/extend.texi (Extended Asm): Document named operands.
2598         * doc/md.texi (Simple Constraints): Document matching constraints
2599         on operands > 9.
2600
2601 2001-10-10  Richard Henderson  <rth@redhat.com>
2602
2603         * combine.c (try_combine): Handle a SEQUENCE of one insn.
2604
2605         * i386.c (test splitter): Narrow tests vs paradoxical subregs.
2606         (jcc splitters): Add two splitters to simplify compound compares
2607         that simplify_comparison can't handle.
2608
2609 2001-10-10  Richard Henderson  <rth@redhat.com>
2610
2611         * langhooks.c: Include langhooks.h.
2612         * Makefile.in (langhooks.o): Depend on it.
2613
2614 Wed Oct 10 23:49:06 EDT 2001  John Wehle  (john@feith.com)
2615
2616         * rtlanal.c (noop_move_p): Insns with a REG_RETVAL note
2617         should not be considered as a no-op.
2618         * flow.c (delete_noop_moves): Handle REG_LIBCALL notes.
2619
2620 2001-10-10  Stan Shebs  <shebs@apple.com>
2621
2622         * alias.c: Remove uses of "register" specifier in declarations
2623         of arguments and local variables.
2624         * c-common.c: Ditto.
2625         * c-convert.c: Ditto.
2626         * c-decl.c: Ditto.
2627         * c-format.c: Ditto.
2628         * c-semantics.c: Ditto.
2629         * c-typeck.c: Ditto.
2630         * caller-save.c: Ditto.
2631         * calls.c: Ditto.
2632         * cfg.c: Ditto.
2633         * cfgbuild.c: Ditto.
2634         * cfgrtl.c: Ditto.
2635         * collect2.c: Ditto.
2636         * combine.c: Ditto.
2637         * convert.c: Ditto.
2638         * cppexp.c: Ditto.
2639         * cppfiles.c: Ditto.
2640         * cse.c: Ditto.
2641         * dbxout.c: Ditto.
2642         * defaults.h: Ditto.
2643         * df.c: Ditto.
2644         * dwarf2out.c: Ditto.
2645         * dwarfout.c: Ditto.
2646         * emit-rtl.c: Ditto.
2647         * explow.c: Ditto.
2648         * expmed.c: Ditto.
2649         * expr.c: Ditto.
2650         * final.c: Ditto.
2651         * fix-header.c: Ditto.
2652         * floatlib.c: Ditto.
2653         * flow.c: Ditto.
2654         * fold-const.c: Ditto.
2655         * function.c: Ditto.
2656         * gcc.c: Ditto.
2657         * gcse.c: Ditto.
2658         * gen-protos.c: Ditto.
2659         * genattrtab.c: Ditto.
2660         * gencheck.c: Ditto.
2661         * genconfig.c: Ditto.
2662         * genemit.c: Ditto.
2663         * genextract.c: Ditto.
2664         * genflags.c: Ditto.
2665         * gengenrtl.c: Ditto.
2666         * genoutput.c: Ditto.
2667         * genpeep.c: Ditto.
2668         * genrecog.c: Ditto.
2669         * gensupport.c: Ditto.
2670         * global.c: Ditto.
2671         * gmon.c: Ditto.
2672         * graph.c: Ditto.
2673         * haifa-sched.c: Ditto.
2674         * hard-reg-set.h: Ditto.
2675         * hash.c: Ditto.
2676         * integrate.c: Ditto.
2677         * jump.c: Ditto.
2678         * lists.c: Ditto.
2679         * local-alloc.c: Ditto.
2680         * loop.c: Ditto.
2681         * mips-tdump.c: Ditto.
2682         * mips-tfile.c: Ditto.
2683         * optabs.c: Ditto.
2684         * prefix.c: Ditto.
2685         * print-rtl.c: Ditto.
2686         * read-rtl.c: Ditto.
2687         * real.c: Ditto.
2688         * recog.c: Ditto.
2689         * reg-stack.c: Ditto.
2690         * regclass.c: Ditto.
2691         * regmove.c: Ditto.
2692         * reload.c: Ditto.
2693         * reload1.c: Ditto.
2694         * reorg.c: Ditto.
2695         * resource.c: Ditto.
2696         * rtl.c: Ditto.
2697         * rtlanal.c: Ditto.
2698         * scan.c: Ditto.
2699         * sched-deps.c: Ditto.
2700         * sched-rgn.c: Ditto.
2701         * sdbout.c: Ditto.
2702         * simplify-rtx.c: Ditto.
2703         * stmt.c: Ditto.
2704         * stor-layout.c: Ditto.
2705         * toplev.c: Ditto.
2706         * tradcif.y: Ditto.
2707         * tradcpp.c: Ditto.
2708         * tree.c: Ditto.
2709         * unroll.c: Ditto.
2710         * varasm.c: Ditto.
2711         * xcoffout.c: Ditto.
2712
2713 2001-10-10  Richard Henderson  <rth@redhat.com>
2714
2715         * rtl.h (can_reverse_comparison_p): Remove.
2716
2717 2001-10-10  Christopher Faylor <cgf@redhat.com>
2718
2719         * config/i386/cygwin.h: Avoid adding include files if -nostdinc is
2720         used.
2721
2722 2001-10-10  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
2723
2724         * config/i386/mingw32.h (WIN32_NO_ABSOLUTE_INST_DIRS): New define.
2725         (Thanks to Chris Faylor for suggesting macro name).
2726         (CPP_PREDEFINES): Define __MINGW32__ but don't set value; add more
2727         WIN32 defines.
2728         (STANDARD_INCLUDE_DIR): Remove i386- from directory name.
2729         (STANDARD_INCLUDE_COMPONENT): Change to MINGW.
2730         (MATH_LIBRARY): Undef before definition.
2731         (OUTPUT_QUOTED_STRING): Likewise.
2732         * config/i386/cygwin.h: Use WIN32_NO_ABSOLUTE_INST_DIRS.
2733
2734 2001-10-10  Richard Henderson  <rth@redhat.com>
2735
2736         * unwind-dw2-fde.c (fde_compare_t): Change return type to int.
2737         (fde_unencoded_compare): Likewise.  Don't use subtraction to get
2738         a tristate comparison value.
2739         (fde_single_encoding_compare, fde_mixed_encoding_compare): Likewise.
2740
2741 2001-10-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2742
2743         PR c++/4512
2744         * unroll.c (loop_iterations): Ignore insns generated by loop
2745         unrolling.
2746
2747         * config.gcc (mips*-*-gnu*): Delete support.
2748         * config/mips/gnu.h: Remove.
2749
2750 2001-10-10  Kazu Hirata  <kazu@hxi.com>
2751
2752         * calls.c: Fix formatting.
2753         * c-decl.c: Likewise.
2754         * cfgcleanup.c: Likewise.
2755         * combine.c: Likewise.
2756         * cppfiles.c: Likewise.
2757         * cpplib.c: Likewise.
2758         * cppmacro.c: Likewise.
2759         * crtstuff.c: Likewise.
2760         * cse.c: Likewise.
2761         * dwarf2out.c: Likewise.
2762         * expmed.c: Likewise.
2763         * expr.c: Likewise.
2764         * fold-const.c: Likewise.
2765         * function.c: Likewise.
2766         * gcse.c: Likewise.
2767         * genattrtab.c: Likewise.
2768         * ggc-page.c: Likewise.
2769         * integrate.c: Likewise.
2770         * libgcc2.c: Likewise.
2771         * loop.c: Likewise.
2772         * optabs.c: Likewise.
2773         * profile.c: Likewise.
2774         * protoize.c: Likewise.
2775         * real.c: Likewise.
2776         * recog.c: Likewise.
2777         * reload1.c: Likewise.
2778         * reload.c: Likewise.
2779         * reorg.c: Likewise.
2780         * resource.c: Likewise.
2781         * sched-rgn.c: Likewise.
2782         * sdbout.c: Likewise.
2783         * stmt.c: Likewise.
2784         * toplev.c: Likewise.
2785         * varasm.c: Likewise.
2786
2787 2001-10-10  Janis Johnson  <janis187@us.ibm.com>, Alexandre Oliva  <aoliva@redhat.com>
2788
2789         * langhooks.c: Include rtl.h, insn-config.h and integrate.h.
2790         * Makefile.in (langhooks.o): Add dependencies.
2791
2792 Wed Oct 10 00:41:29 EDT 2001  John Wehle  (john@feith.com)
2793
2794         * rs6000.c (rs6000_emit_load_toc_table): Don't
2795         strdup the toc label.
2796         (create_TOC_reference): Likewise.
2797
2798 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
2799
2800         * config.gcc (i[34567]86-*-mingw32*): Make msvcrt-dependent
2801         version default.
2802
2803 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
2804
2805         * config/i386/i386.c (ix86_attribute_table): Correct
2806         min_len, max_len fields for dllimport, dllexport and shared.
2807
2808 2001-10-10  Joseph S. Myers  <jsm28@cam.ac.uk>
2809
2810         * doc/c-tree.texi, doc/cppinternals.texi, doc/extend.texi,
2811         doc/install.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi:
2812         Consistently use "nonzero" instead of "non-zero".
2813
2814 2001-10-09  Kazu Hirata  <kazu@hxi.com>
2815
2816         * acconfig.h: Fix comment formatting.
2817         * c-dump.h: Likewise.
2818         * c-tree.h: Likewise.
2819         * conditions.h: Likewise.
2820         * expr.h: Likewise.
2821         * function.h: Likewise.
2822         * gthr.h: Likewise.
2823         * hwint.h: Likewise.
2824         * integrate.h: Likewise.
2825         * intl.h: Likewise.
2826         * loop.h: Likewise.
2827         * optabs.h: Likewise.
2828
2829 2001-10-09  Kazu Hirata  <kazu@hxi.com>
2830
2831         * c-common.h: Fix comment formatting.
2832         * c-dump.c: Likewise.
2833         * cfg.c: Likewise.
2834         * diagnostic.h: Likewise.
2835         * except.c: Likewise.
2836         * gcc.h: Likewise.
2837         * gcov-io.h: Likewise.
2838         * genattrtab.c: Likewise.
2839         * output.h: Likewise.
2840         * predict.h: Likewise.
2841         * reload1.c: Likewise.
2842         * reload.h: Likewise.
2843         * resource.h: Likewise.
2844         * scan.h: Likewise.
2845         * system.h: Likewise.
2846         * tree.h: Likewise.
2847         * tree-inline.c: Likewise.
2848         * tsystem.h: Likewise.
2849         * varasm.c: Likewise.
2850         * xcoffout.h: Likewise.
2851
2852 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2853
2854         * doc/gcc.texi: Document preference for "nonzero" over "non-zero".
2855
2856 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2857
2858         * config/alpha/freebsd.h, config/alpha/lib1funcs.asm,
2859         config/i386/i386elf.h, config/i386/netbsd-elf.h,
2860         config/i386/netware.h, config/mcore/gfloat.h,
2861         config/mcore/mcore.c, config/mcore/mcore.h, config/mcore/mcore.md,
2862         config/netware.h, gccbug.in: Update FSF address.
2863
2864 2001-10-09  Kazu Hirata  <kazu@hxi.com>
2865
2866         * c-common.c: Fix comment typos.
2867         * cfgrtl.c: Likewise.
2868         * collect2.c: Likewise.
2869         * cpplex.c: Likewise.
2870         * doloop.c: Likewise.
2871         * dwarf2out.c: Likewise.
2872         * dwarfout.c: Likewise.
2873         * expr.c: Likewise.
2874         * fold-const.c: Likewise.
2875         * gcc.c: Likewise.
2876         * gcov.c: Likewise.
2877         * gcse.c: Likewise.
2878         * global.c: Likewise.
2879         * ifcvt.c: Likewise.
2880         * loop.c: Likewise.
2881         * optabs.c: Likewise.
2882         * protoize.c: Likewise.
2883         * regclass.c: Likewise.
2884         * reorg.c: Likewise.
2885         * rtl.h: Likewise.
2886         * stmt.c: Likewise.
2887         * tree.h: Likewise.
2888         * doc/cpp.texi: Likewise.
2889         * doc/c-tree.texi: Likewise.
2890         * doc/extend.texi: Likewise.
2891         * doc/invoke.texi: Likewise.
2892         * doc/objc.texi: Likewise.
2893         * doc/tm.texi: Likewise.
2894
2895 2001-10-08  Richard Henderson  <rth@redhat.com>
2896
2897         * varasm.c (set_named_section_flags): Initialize "declared".
2898
2899 2001-10-08  Robert Lipe  <robertlipe@usa.net>
2900
2901         * varasm.c (struct in_named_entry): Add declared.
2902         (named_section_first_declaration): New function.
2903         (default_elf_asm_named_section): Use it.
2904         * output.h (named_section_first_declaration): New.
2905
2906 2001-10-08  Richard Henderson  <rth@redhat.com>
2907
2908         * i386.md (movsi_xor): Export.
2909         (setcc peep2): Use it when available; add an alternative to
2910         match zero_extendhisi2_and.
2911
2912 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2913
2914         * romp-protos.h (romp_initialize_trampoline): New function.
2915         * romp.c (romp_initialize_trampoline): Likewise.
2916         * romp.h (INITIALIZE_TRAMPOLINE): Define in terms of
2917         romp_initialize_trampoline.
2918
2919 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2920
2921         * m68k/3b1.h (ASM_OUTPUT_SOURCE_LINE): Don't reference `last_linenum'.
2922         * m68k/auxas.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2923         * m68k/crds.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2924         * m68k/mot3300.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2925
2926 2001-10-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2927
2928         * unroll.c (loop_iterations): Extend check for multiple back edges.
2929
2930 2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
2931
2932         * langhooks.h: New file.
2933         * Makefile.in (OBJS): Added langhooks.o.
2934         (c-lang.o): Depend on langhooks.h.
2935         (c-common.o): Don't depend on tree-inline.h.
2936         (tree-inline.o): Depend on toplev.h.
2937         (langhooks.o): New rule.
2938         * c-common.c: Don't include tree-inline.h.
2939         (c_mark_lang_decl): Mark argument c as unused.
2940         (c_common_lang_init): Don't initialize hooks here.
2941         * c-lang.c: Include langhooks.h, then override some macros.
2942         (lang_hooks): Initialize with macros in langhooks.h.
2943         (c_init): Don't initialize hooks here.
2944         * toplev.c (struct lang_hooks_for_tree_inlining): New struct.
2945         (struct lang_hooks): Add tree_inlining.  Refer to langhooks.h.
2946         * tree-inline.c: Include toplev.h.  Don't define hook variables.
2947         * tree-inline.h: Don't define hook types nor declare hook
2948         variables.  Move macros to...
2949         * langhooks.c: ... new file, as functions.  Adjust all callers.
2950
2951 2001-10-08  Jeffrey A Law  <law@cygnus.com>
2952
2953         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Call
2954         purge_mem_unchanging_flag on all instructions, not just on those
2955         before NOTE_INSN_FUNCTION_BEG.
2956
2957 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2958
2959         * cppmacro.c (_cpp_create_definition): Leave comments off.
2960
2961         * doc/cpp.texi: Update.
2962
2963 2001-10-08  DJ Delorie  <dj@redhat.com>
2964
2965         * c-decl.c (grokfield): Make sure the only unnamed fields
2966         we're allowing are either structs or unions.
2967         * doc/extend.texi: Add documentation for the unnamed field
2968         extension.
2969
2970 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
2971
2972         * aclocal.m4 (gcc_AC_PROG_GNAT): New.
2973         * configure.in: Use it.
2974         * configure: Regenerated.
2975         * config/pa/t-linux, config/pa/t-pa, config/pa/t-pa64,
2976         config/pa/t-pro: Set T_ADAFLAGS, not ADA_CFLAGS.
2977
2978 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2979
2980         * cppfiles.c (open_file): Don't mark zero-length files
2981         never-reread here.  Don't output diagnostics here either.
2982         (stack_include_file): Mark them never-reread here.
2983         (_cpp_read_file): Update.
2984
2985 2001-10-08  Richard Henderson  <rth@redhat.com>
2986
2987         * config/i386/sol2.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
2988
2989 2001-10-08  Richard Henderson  <rth@redhat.com>
2990
2991         * expr.c (store_expr): When converting a CONST_INT for storage
2992         in a SUBREG, convert it to both SUBREG modes before stripping
2993         the SUBREG.
2994
2995 2001-10-08  Richard Henderson  <rth@redhat.com>
2996
2997         * varasm.c (restore_varasm_status): New.
2998         * function.h: Declare it.
2999         * function.c (pop_function_context_from): Call it.
3000
3001 2001-10-08  Richard Henderson  <rth@redhat.com>
3002
3003         * c-common.h (struct c_lang_decl): Add declared_inline.
3004         * c-tree.h (DECL_DECLARED_INLINE_P): New.
3005         * c-lang.c (c_disregard_inline_limits): Use it.
3006         * c-decl.c (duplicate_decls): Likewise.
3007         (pushdecl, redeclaration_error_message): Likewise.
3008         (pushdecl): Allocate DECL_LANG_SPECIFIC if needed.
3009         (grokdeclarator): Likewise.  Set DECL_DECLARED_INLINE_P.
3010         Set DECL_INLINE if -finline-functions.
3011         (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here.
3012
3013 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3014
3015         * cppmacro.c (funlike_invocation_p): Move some logic to caller
3016         in enter_macro_context.  Create a padding token in its own context
3017         if necessary when the search for '(' fails.
3018         (enter_macro_context): Update.
3019
3020 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3021
3022         * ChangeLog.2, c-decl.c, config/i386/i386.md, doc/gcc.texi, gcc.c,
3023         genmultilib, toplev.c: Fix spelling errors of "separate" as
3024         "seperate", and corresponding spelling errors of related words.
3025
3026 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3027
3028         * builtins.c (expand_builtin_setjmp_receiver): Const-ify.
3029         * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
3030         Likewise.
3031         * c-dump.c (dump_option_value_info): Likewise.
3032         * c-format.c (format_length_info, format_char_info,
3033         format_flag_spec, format_flag_pair, format_kind_info): Likewise.
3034         * collect2.c (names): Likewise.
3035         * cppdefault.h (default_include): Likewise.
3036         * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
3037         * flow.c (life_analysis): Likewise.
3038         * gcc.c (dir_separator_str, modify_target, option_map,
3039         target_option_translations, spec_list_1, extra_specs_1,
3040         init_spec): Likewise.
3041         * gcov.c (gcov_version_string): Likewise.
3042         * genattr.c (write_units): Likewise.
3043         * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
3044         * gengenrtl.c (rtx_definition, defs): Likewise.
3045         * genrecog.c (pred_table): Likewise.
3046         * global.c (global_alloc): Likewise.
3047         * lcm.c (optimize_mode_switching): Likewise.
3048         * local-alloc.c (find_free_reg): Likewise.
3049         * params.h (param_info): Likewise.
3050         * predict.c (predictor_info): Likewise.
3051         * protoize.c (unexpansion_struct): Likewise.
3052         * real.c (bmask): Likewise.
3053         * recog.h (insn_operand_data, insn_data): Likewise.
3054         * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
3055         * stmt.c (expand_nl_goto_receiver): Likewise.
3056         * toplev.c (da, debug_args, lang_opt, documented_lang_options,
3057         target_switches, target_options): Likewise.
3058         * tradcif.y (token, tokentab2, yylex): Likewise.
3059         * tree.h (attribute_spec): Likewise.
3060
3061         * alpha.c (override_options, alpha_lookup_xfloating_lib_func):
3062         Likewise.
3063         * arc.c (arc_output_function_epilogue): Likewise.
3064         * arm.c (processors, all_cores, all_architectures,
3065         arm_override_options, isr_attribute_arg, isr_attribute_args,
3066         arm_isr_value): Likewise.
3067         * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
3068         Likewise.
3069         * c4x.c (c4x_int_reglist): Likewise.
3070         * d30v.c (override_options): Likewise.
3071         * h8300.c (shift_insn): Likewise.
3072         * i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
3073         pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
3074         ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
3075         builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
3076         ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
3077         * i386.h (processor_costs, ix86_cost): Likewise.
3078         * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
3079         * m68hc11.h (processor_costs, m68hc11_cost): Likewise.
3080         * m68k.c (codes_68881, codes_FPA): Likewise.
3081         * m88k.c (mode_from_align, max_from_align, all_from_align,
3082         best_from_align, m_options): Likewise.
3083         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
3084         * mcore.c (mode_from_align): Likewise.
3085         * mips/elf64.h (UNIQUE_SECTION): Likewise.
3086         * mips/iris6gld.h (UNIQUE_SECTION): Likewise.
3087         * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
3088         * mips.h (mips_regno_to_class): Likewise.
3089         * ns32k.c (scales): Likewise.
3090         * pa.c (import_string, magic_milli): Likewise.
3091         * rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
3092         * sparc.c (leaf_reg_remap, sparc_override_options,
3093         reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
3094         Likewise.
3095         * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.
3096
3097 2001-10-07  Dale Johannesen  <dalej@apple.com>
3098
3099         * reload1.c (reload_reg_free_p): Teach register interference
3100         checking that multiple output reloads are emitted in
3101         reverse order.
3102         reload1.c (reload_reg_reaches_end_p):  Ditto.
3103         reload1.c (reloads_conflict):  Ditto.
3104
3105 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3106
3107         * doc/c-tree.texi, doc/tm.texi: Consistently put NULL and
3108         NULL_TREE inside @code.
3109
3110 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3111
3112         * doc/gcc.texi: Document consistent style of "32-bit",
3113         "Objective-C", and "@code{NULL}".
3114
3115 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
3116
3117         * cpplex.c (enum spell_type): Add SPELL_NUMBER.
3118         (cpp_token_len, cpp_spell_token, cpp_output_token,
3119         _cpp_equiv_tokens): Handle it.
3120         * cpplib.h (TTYPE_TABLE): Use SPELL_NUMBER for CPP_NUMBER and
3121         CPP_COMMENT, SPELL_NONE for CPP_PADDING and CPP_EOF.
3122         * cppexp.c (_cpp_parse_expr): Use the correct operator code in
3123         error messages.
3124
3125 Sat Oct  6 07:42:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3126
3127         * gcc.c (default_compilers): Remove .ada.
3128
3129 2001-10-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3130
3131         * doc/cppinternals.texi: Update.
3132
3133 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
3134
3135         * gcc.c (main): Set this_file_error if the appropriate
3136         compiler for a language has not been installed.
3137
3138 2001-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
3139
3140         * config/s390/s390.c (s390_va_arg): Use set_mem_alias_set.
3141
3142 2001-10-05  Joseph S. Myers  <jsm28@cam.ac.uk>
3143
3144         * gccbug.in (CATEGORIES): Add ada.
3145
3146 2001-10-05  Catherine Moore  <clm@redhat.com>
3147
3148         * config/stormy16/stormy-abi:  Document abi changes.
3149         * config/stormy16/stormy16.h (REG_ALLOC_ORDER): Redefine.
3150         (ICALL_REGS): New register class.
3151         (NUM_ARGUMENT_REGISTERS): Now 6.
3152         (DEFAULT_PCC_STRUCT_RETURN): Don't try to return structs
3153         in registers.
3154         (REG_CLASS_FROM_LETTER): Map 'z' to ICALL_REGS.
3155         * config/stormy16.md (call_internal, call_value_internal,
3156         indirect_jump): Use new 'z' constraint.
3157
3158 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3159
3160         * doc/cppinternals.texi: Update.
3161
3162 2001-10-05  Richard Henderson  <rth@redhat.com>
3163
3164         * dwarf2out.c (FRAME_BEGIN_LABEL): New.
3165         (output_call_frame_info): Use it instead of __FRAME_BEGIN__ and
3166         the gas section-name-as-label feature.
3167
3168 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3169
3170         * doc/cppinternals.texi: Update.
3171
3172 Fri Oct  5 08:17:46 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3173
3174         * config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode
3175         to ensure valid SImode constants.
3176
3177 2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
3178
3179         * Makefile.in (c-decl.o): Depend on tree-inline.h.
3180         (c-lang.o): Likewise, as well as insn-config.h and integrate.h.
3181         * c-decl.c: Include tree-inline.h.
3182         (c_expand_body): Call optimize_inline_calls. Determine whether
3183         a function is inlinable upfront, and only clear
3184         DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't.
3185         * c-lang.c: Include tree-inline.h, insn-config.h and integrate.h.
3186         (c_disregard_inline_limits): New function.
3187         (inline_forbidden_p, c_cannot_inline_tree_fn): Likewise.
3188         (c_post_options): Enable tree inlining if inlining is enabled.
3189         Don't inline trees when instrumenting functions.
3190         (c_init): Initialize lang_disregard_inline_limits and
3191         lang_cannot_inline_tree_fn.
3192         * tree-inline.c (initialize_inlined_parameters): Handle calls
3193         with fewer arguments than declared parameters, and fewer
3194         parameters than passed arguments.  Don't assume value is a
3195         DECL.
3196         (declare_return_variable): Convert return value back to the
3197         original type, if it was promoted.
3198         (tree_inlinable_function_p): New function.
3199         (inlinable_function_p): Don't look at DECL_INLINE if we're
3200         inlining all functions.  Make it work with a NULL id.
3201         Re-check DECL_UNINLINABLE after language-specific checks.
3202         * tree-inline.h (tree_inlinable_function_p): Declare it.
3203         * integrate.c (save_for_inline): Don't bother to prepare argvec
3204         when not inlining.
3205         * cse.c (check_for_label_ref): Don't check deleted labels.
3206
3207         * Makefile.in (tree-inline.o): Depend on newly-included headers.
3208         * tree-inline.c: Include headers needed for the functions moved in.
3209         (struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c.
3210         (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
3211         (copy_body, initialize_inlined_parameters): Likewise.
3212         (declare_return_variable, inlinable_function_p): Likewise.
3213         (expand_call_inline, expand_calls_inline): Likewise.
3214         (optimize_inline_calls, clone_body): Likewise.
3215         (walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c.
3216         (copy_tree_r, remap_save_expr): Likewise.
3217
3218 2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
3219
3220         * Makefile.in (OBJS): Added tree-inline.o.
3221         (c-common.o): Depend on tree-inline.h.
3222         (tree-inline.o): New target.
3223         * c-common.c: Include tree-inline.h.
3224         (c_mark_lang_decl): Don't mark saved_tree.
3225         (c_common_lang_init): Set lang_anon_aggr_type_p.
3226         * c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h.
3227         (struct c_lang_decl): Moved saved_tree to tree_decl.
3228         * ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs.
3229         * integrate.h (function_attribute_inlinable_p): Declare it.
3230         * integrate.c (function_attribute_inlinable_p): Export it.
3231         * tree-inline.c: New file.  Define variables declared in...
3232         * tree-inline.h: New file.  Declare functions to be moved to
3233         tree-inline.c.  Define macros and declare types and hooks for
3234         language-specific tree inlining.
3235         (flag_inline_trees): Moved definition from cp/decl2.c.
3236         * tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h.
3237         (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h.
3238         (struct tree_decl): Moved saved_tree from c_lang_decl and
3239         inlined_fns from C++'s lang_decl.
3240
3241 2001-10-04  Loren J. Rittle  <ljrittle@acm.org>
3242
3243         * Makefile.in (STAGE2_FLAGS_TO_PASS): Remove patches which
3244         propagated HOST_CC, HOST_CFLAGS, HOST_LDFLAGS and HOST_CPPFLAGS.
3245
3246 2001-10-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3247
3248         * doc/cppinternals.texi: Update.
3249
3250 2001-10-04  Eric Christopher  <echristo@redhat.com>
3251
3252         * config/mips/mips.c (init_cumulative_args): Remember to set
3253         cum->prototype.
3254         * config.gcc: Redo linux configuration. Add target_cpu_default
3255         of soft-float to all mipsisa32 combinations and tx39.
3256         * config/mips/linux.h: Remove include of mips.h.
3257
3258 2001-10-03  Loren J. Rittle  <ljrittle@acm.org>
3259
3260         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CFLAGS,
3261         HOST_LDFLAGS and HOST_CPPFLAGS.
3262
3263 2001-10-03  Ziemowit Laski  <zlaski@apple.com>
3264
3265         * c-parse.in (objc_inherit_code, objc_pq_context,
3266         objc_public_flag): Make static.
3267         (objc_interface_context, objc_implementation_context,
3268         objc_method_context, objc_ivar_chain, objc_ivar_context): Move to
3269         global tree array in objc/objc-act.[ch].
3270         (methoddef): Remove unnecessary code.
3271
3272         * objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry):
3273         Hoist struct definitions to objc-act.h.
3274         (nst_method_hash_list, cls_method_hash_list, imp_list, imp_count,
3275         cat_count): Place declaration in objc-act.h.
3276         (objc_tree_index): Move enumeration to objc-act.h.
3277         (objc_global_trees): Place declaration and macro accessors in
3278         objc-act.h.
3279         (implementation_context): Remove duplicate; use
3280         objc_implementation_context instead:
3281         (method_context): Remove duplicate; use objc_method_context
3282         instead.
3283         (objc_ellipsis_node, objc_method_prototype_template,
3284         implemented_classes, function_type): Move global vars to
3285         objc_global_trees.
3286         (init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE.
3287         (build_message_expr): Move actual construction of ObjC message
3288         send nodes to finish_message_expr.
3289         (finish_message_expr): New routine, contains code formerly in
3290         build_message_expr.
3291         * objc/objc-act.h (finish_message_expr): New prototype.
3292         (objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove
3293         declarations; these vars are now part of objc_global_trees.
3294         (objc_tree_index, objc_global_trees): Move definitions from
3295         objc-act.c.
3296         * objc/objc-tree.def: Update copyright info.
3297
3298 Wed Oct  3 12:22:11 EDT 2001  John Wehle  (john@feith.com)
3299
3300         * dwarf2asm.c (unaligned_integer_asm_op): Abort if
3301         op is NULL.
3302         * sparc/sysv4.h (UNALIGNED_DOUBLE_INT_ASM_OP): Use
3303         only if TARGET_ARCH64.
3304
3305 2001-10-02  Bernd Schmidt  <bernds@redhat.com>
3306
3307         * doc/extend.texi: Fix some problems with previous checkin.
3308         * doc/invoke.texi: Likewise.
3309
3310 2001-10-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3311
3312         * cpphash.h: Update comments.
3313         (cpp_context): Update.
3314         (spec_nodes): Remove n__Pragma.
3315         * cppinit.c (cpp_create_reader): Update.
3316         (builtin_array): Add _Pragma.
3317         * cpplib.h: Update comments.
3318         (NODE_DISABLED, BT_PRAGMA): New.
3319         (cpp_start_lookahead, cpp_stop_lookahead): Remove prototypes.
3320         * cppmacro.c (struct cpp_macro): Remove disabled.
3321         (builtin_macro): Return int, handle _Pragma, push the new token
3322         on the context stack.
3323         (funlike_invocation_p): Unconstify, update.
3324         (enter_macro_context): Handle builtins here.
3325         (replace_args, push_token_context, push_ptoken_context):
3326         Update for prototype changes.
3327         (_cpp_pop_context): Update.
3328         (cpp_get_token): Don't handle buitins, nor _Pragma here.
3329         (cpp_sys_macro_p): Update.
3330         (_cpp_free_definition): Clear disabled flag.
3331         (_cpp_create_definition): Upate.
3332         * cppmain.c: Update comments.
3333
3334 Tue Oct  2 12:46:01 CEST 2001  Bo Thorsen     <bo@suse.co.uk>,
3335                                 Andreas Jaeger <aj@suse.de>,
3336                                 Jan Hubicka    <jh@suse.cz>
3337
3338         * doc/invoke.texi (i386 Options): Document x86-64 options.
3339         (i386 and x86-64 Options): Rename i386 options section.
3340
3341         * config/i386/i386.h (TARGET_UNWIND_INFO): New.
3342         (TARGET_SWITCHES): Add -munwind-info.
3343         (MASK_NO_UNWIND_INFO): New.
3344         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define for
3345         biarch compilation.
3346         (ASM_OUTPUT_DOUBLE_INT): New.
3347
3348         * config/i386/linux64.h: New spec file for Linux x86-64 support.
3349         * config.gcc: Fix tm_file settings for x86-64.
3350         * config/i386/x86-64.h: New file with OS independent x86-64
3351         definitions.
3352         * config/i386/biarch64.h: New file used to configure compiler
3353         to biarch/64bit compilation.
3354
3355         * config/i386/i386.c: (override_options): Set flags default
3356         for 64bit compilation.
3357
3358 Tue Oct  2 12:46:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
3359
3360         * i386.c (legitimize_pic_address): Add missing bits of 64bit support.
3361         (ix86_expand_int_movcc): Optimize DImode conditional moves with
3362         constants on x86_64.
3363         (ix86_attr_length_immediate_default): Support MODE_DI.
3364         * i386.md (fixdi splitter): Add missing "&& 1" in splitter
3365         condition.
3366         (indirect_jump, tablejump): Turn into expander.
3367
3368 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3369
3370         * c-common.c (c_format_attribute_table): Make format and
3371         format_arg attributes apply to function types rather than to
3372         decls.
3373         (is_valid_printf_arglist): Construct an attribute list and pass
3374         that to check_function_format rather than a name.
3375         * c-common.h (check_function_format): Adjust prototype.
3376         * c-decl.c (duplicate_decls): Preserve attributes from type of
3377         built-in decl when allowing for harmless conflict in types.
3378         * c-format.c (record_function_format,
3379         record_international_format, function_format_list,
3380         international_format_info, international_format_list): Remove.
3381         (function_format_info): Remove next, name and assembler_name.
3382         Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
3383         (decode_format_attr): New.
3384         (handle_format_attribute): Handle receiving a type rather than a
3385         decl.  Call decode_format_attr.  Store format information in a
3386         function_format_info.
3387         (handle_format_arg_attribute): Correct comment.  Handle receiving
3388         a type rather than a decl.  Use unsigned HOST_WIDE_INT for
3389         arg_num.
3390         (check_format_info_recurse, check_format_info_main): Take argument
3391         numbers as unsigned HOST_WIDE_INT.
3392         (check_function_format): Take a list of attributes from the
3393         function type rather than a name or assembler name.  Check for
3394         format attributes in that list and the attributes on the type of
3395         the current function rather than looking through
3396         function_format_list.
3397         (check_format_info): Use unsigned HOST_WIDE_INT for argument
3398         numbers.
3399         (check_format_info_recurse): Take format_arg attributes from the
3400         type of the function calls rather than using
3401         international_format_list.  Allow for multiple format_arg
3402         attributes.
3403         * c-typeck.c (build_function_call): Pass type attributes to
3404         check_function_format rather than name or assembler name.  Don't
3405         require there to be a name or assembler name to check formats.
3406
3407 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3408
3409         * attribs.c (decl_attributes): Possibly call
3410         insert_default_attributes to insert default attributes on
3411         functions in a lazy manner.
3412         * builtin-attrs.def: New file; define the default format and
3413         format_arg attributes.
3414         * c-common.c (c_format_attribute_table): Move to earlier in the
3415         file.
3416         (c_common_nodes_and_builtins): Initialize format_attribute_table.
3417         (enum built_in_attribute, built_in_attributes,
3418         c_attrs_initialized, c_init_attributes,
3419         c_common_insert_default_attributes): New.
3420         (c_common_lang_init): Don't initialize format_attribute_table.  Do
3421         call c_init_attributes.
3422         * Makefile.in (c-common.o): Depend on builtin-attrs.def.
3423         * c-common.h (init_function_format_info): Don't declare.
3424         (c_common_insert_default_attributes): Declare.
3425         * c-decl.c (implicitly_declare, builtin_function): Call
3426         decl_attributes.
3427         (init_decl_processing): Don't call init_function_format_info.
3428         (insert_default_attributes): New.
3429         * c-format.c (handle_format_attribute,
3430         handle_format_arg_attribute): Be quiet about inappropriate
3431         declaration when applying default attributes.
3432         (init_function_format_info): Remove.
3433         * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
3434         (insert_default_attributes): Declare.
3435
3436 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3437
3438         * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94.
3439
3440 2001-10-01  Jim Wilson  <wilson@redhat.com>
3441
3442         * sched-deps.c (add_dependence): When elide conditional dependence,
3443         check that insn doesn't modify cond2.
3444
3445 2001-10-01  Dale Johannesen  <dalej@apple.com>
3446
3447         * config/rs6000/rs6000.h (enum processor_type): Add support
3448         for 7400 (G4) and 7450.
3449         (RTX_COSTS): Ditto.
3450         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
3451         (rs6000_issue_rate): Ditto.
3452         (rs6000_adjust_cost): Fix cycle counts for compares.
3453         (debug_stack_info):  Fix an obvious typo.
3454         * config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
3455         * doc/invoke.texi: Document.
3456         * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
3457         for Darwin.
3458         (PROCESSOR_DEFAULT): Ditto.
3459
3460 2001-10-01  Loren J. Rittle  <ljrittle@acm.org>
3461
3462         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
3463         (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
3464         later recursive make invocation.
3465
3466 2001-10-01  Hans Boehm  <boehm@acm.org>
3467
3468         * optabs.c (emit_libcall_block): When using non-call exceptions,
3469         don't add REG_LIBCALL reg notes to trapping calls.
3470
3471 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
3472
3473         * flow.c (propagate_block_delete_libcall): Remove unused first arg
3474         (propagate_one_insn):  Update for above change
3475
3476 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
3477
3478         * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase,
3479         _Unwind_GetTextRelBase): Argument is unused.
3480
3481 Mon Oct  1 19:20:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3482
3483         * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
3484         Loop through NOPs, placeholders, and components.
3485         Don't go through NOPs if change mode.
3486         (record_alias_subset): Do nothing if SUBSET and SET are the same.
3487         * emit-rtl.c (set_mem_alias_set): Enable check.
3488         * expr.c (find_placeholder): New function.
3489         (expand_expr, case PLACEHOLDER_EXPR): Use it.
3490         (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
3491         to modify it and avoid unneeded copies.
3492         * expr.h (expand_expr): Always define.
3493         (find_placeholder): New declaration.
3494
3495 2001-10-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3496
3497         * config/m68hc11/m68hc11.md ("add-split"): Fix add split when
3498         operand 2 is the stack pointer.
3499         ("addr-peephole"): Fix address computation peephole when operand 2
3500         is the stack pointer.
3501
3502 Mon Oct  1 09:26:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3503
3504         * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.
3505         (ix86_setup_incoming_varargs): Likewise.
3506
3507 2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
3508
3509         * stor-layout.c (layout_type): Don't complain about too-large
3510         array here.
3511
3512 Mon Oct  1 06:43:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3513
3514         * function.c (keep_stack_depressed): Don't use delete_insn.
3515
3516         * expr.h (set_mem_alias_set): Move decl to here.
3517         * rtl.h (mem_attrs): New typedef and struct.
3518         (union rtunion_def): Add field for mem_attrs.
3519         (X0MEMATTR, MEM_ATTRS): New macros.
3520         (MEM_ALIAS_SET): Use MEM_ATTRS.
3521         (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
3522         (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
3523         (set_mem_alias_set): Delete decl from here.
3524
3525         * alias.c (set_mem_alias_set): Delete from here.
3526         * emit-rtl.c (mem_attrs_htab): New variable.
3527         (rtx_htab_mark, rtx_htab_mark_1): Deleted.
3528         (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
3529         (mem_attrs_mark, get_mem_attrs): Likewise.
3530         (gen_rtx_MEM): Clear MEM_ATTRS.
3531         (set_mem_attributes): Move to here.
3532         (set_mem_alias_set): Likewise, and call get_mem_attrs.
3533         (init_emit_once): const_int_htab now deletable htab.
3534         Initialize mem_attrs_htab.
3535         * explow.c (set_mem_attributes): Delete from here.
3536         * function.c (put_var_into_stack): Clear MEM_ATTRS.
3537         (gen_mem_addressof): Likewise; rework to use set_mem_attributes.
3538         * ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
3539         * reload1.c (reload): Rework changing REG to MEM.
3540
3541 2001-09-30  H.J. Lu <hjl@gnu.org>
3542
3543         * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
3544         * config.in: Rebuild.
3545
3546 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3547
3548         * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
3549         ("tsthi_1"): Avoid allocation in register y.
3550         ("*movqi_68hc12"): Reorganize and fix constraints.
3551         ("zero_extendqisi2"): Prefer d over x and y for operand 1.
3552         ("addqi3"): Likewise.
3553         ("addhi3"): Fix constraints.
3554         ("*logicalhi3_zexthi"): Disparage soft registers.
3555
3556 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3557
3558         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
3559         to tmp reg.
3560
3561 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3562
3563         * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
3564         that we use setjmp/longjmp exceptions.
3565
3566 2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
3567
3568         * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
3569         POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
3570         struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
3571         _cpp_pool_alloc, _cpp_next_chunk): Remove.
3572         (_cpp_extend_buff, BUFF_ROOM): Update.
3573         (_cpp_append_extend_buff): New.
3574         (struct cpp_reader): Remove macro_pool, add a_buff.
3575         * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
3576         macro_pool.
3577         (cpp_destroy): Free a_buff instead of macro_pool.
3578         * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
3579         new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
3580         _cpp_pool_alloc, ): Remove.
3581         (parse_number, parse_string): Update use of _cpp_extend_buff.
3582         (_cpp_extend_buff): Update.
3583         (_cpp_append_extend_buff, cpp_aligned_alloc): New.
3584         * cpplib.c (glue_header_name, parse_answer):
3585         Update use of _cpp_extend_buff.
3586         (cpp_register_pragma, cpp_register_pragma_space): Use
3587         _cpp_aligned_alloc.
3588         (do_assert, do_unassert): Check for EOL, update.
3589         * cppmacro.c (stringify_arg, collect_args): Update to use
3590         _cpp_extend_buff and _cpp_append_extend_buff.
3591         (save_parameter, parse_params, alloc_expansion_token,
3592         _cpp_create_definition): Rework memory management.
3593
3594 2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
3595
3596         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
3597         update md_exec_prefix.
3598         (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
3599         to string constant.
3600
3601 2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3602
3603         * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
3604         (SELECT_CC_MODE): Use s390_select_ccmode.
3605         * config/s390/s390-protos.h (s390_select_ccmode): Add.
3606         * config/s390/s390.c (s390_select_ccmode): New.
3607         (s390_match_ccmode): Add CCLmode.
3608         (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
3609         (output_branch_condition, output_inverse_branch_condition): Removed.
3610         (print_operand): Use s390_branch_condition_mnemonic.
3611         * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
3612         subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
3613         (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
3614
3615         * config/s390/s390.c (check_and_change_labels): Preserve CC mode
3616         when converting conditional branches to far branches.
3617         * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
3618         cmpint_di): Use CCSmode instead of CCUmode.
3619
3620         * config/s390/s390.c (legitimate_la_operand_p): New.
3621         * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
3622         * config/s390/s390.md (movsi): Convert load address patterns to
3623         arithmetic operations when necessary.
3624         (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
3625         (do_la): Renamed to *do_la and use legitimate_la_operand_p.
3626         (*do_la_reg_0): Don't use before reload.
3627
3628         * config/s390/s390.c (legitimize_address): Make more efficient
3629         use of two-register addressing mode.
3630
3631         * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
3632         with -mno-backchain in some corner cases.
3633
3634         * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
3635
3636 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
3637
3638         * reload.c (find_reloads): Mark new USE insns with QImode.
3639         (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
3640         find_reloads_subreg_address): Likewise.
3641         * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
3642         encountered.
3643         * reload1.c (reload_combine_note_use): Likewise, inside USEs and
3644         CLOBBERs.
3645         (reload): Make sure there are no USEs with mode other than
3646         VOIDmode.  At the end, remove those marked with QImode.
3647
3648 2001-09-29  Per Bothner  <per@bothner.com>
3649
3650         * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
3651         * Makefile.in (includedir):  Rename to local_includedir.
3652         (includedir):  Define as $(prefix)/include.
3653         * config.in (PREFIX_INCLUDE_DIR):  New variable.
3654         * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
3655
3656 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
3657
3658         * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
3659         storehps builtins.
3660         * doc/extend.texi (Vector Extensions): New node.
3661         * doc/invoke.texi (Machine Dependent Options): Add documentation for
3662         i386 -mmmx, -msse, -m3dnow.
3663
3664 Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
3665
3666         * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
3667
3668 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
3669
3670         * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
3671
3672         * doc/invoke.texi (Optimize Options): Delete spurious @table.
3673
3674 2001-09-28  Richard Henderson  <rth@redhat.com>
3675
3676         * varasm.c (assemble_integer): Bound alignment check by
3677         BIGGEST_ALIGNMENT.
3678
3679         * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
3680
3681 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3682
3683         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
3684
3685 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
3686
3687         Mostly from Graham Stott  <grahams@redhat.com>
3688         * c-common.c (type_for_mode): Add support for V2SFmode.
3689         * tree.c (build_common_tree_nodes_2): Likewise.
3690         * tree.h (enum tree_index, global_trees): Likewise.
3691         * config/i386/i386.c (x86_3dnow_a): New variable.
3692         (override_options): Support 3Dnow extensions.
3693         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
3694         Athlon's version of 3Dnow.
3695         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
3696         (ix86_expand_builtin): Handle them.
3697         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
3698         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
3699         TARGET_3DNOW_A): New macros.
3700         (TARGET_SWITCHES): Add 3Dnow switches.
3701         (VALID_MMX_REG_MODE_3DNOW): New macro.
3702         (VECTOR_MODE_SUPPORTED_P): Use it.
3703         (enum ix86_builtins): Add entries for 3Dnow builtins.
3704         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
3705         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
3706         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
3707         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
3708         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
3709         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
3710         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
3711         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
3712         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
3713         sfence_insn, prefetch): Make these available if TARGET_SSE or
3714         TARGET_3DNOW_A.
3715
3716 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
3717
3718         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
3719         ix86_va_start, ix86_build_va_list): Declare.
3720         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
3721         ix86_va_start, ix86_build_va_list): New global functions.
3722         * i386.md (sse_prologue_save_insn): New insn.
3723         (sse_prologue_save): New expander.
3724         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
3725         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
3726
3727 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3728
3729         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
3730         Use size_t everywhere, make definitions consistent with
3731         prototypes.
3732
3733 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
3734
3735         * gcse.c (replace_store_insn): Use delete_insn.
3736         * loop.c (move_movables): Likewise; avoid delete_insn
3737         from clobbering notes moved elsewhere.
3738         (check_dbra_loop): Use delete_insn.
3739         * ssa.c (convert_from_ssa): Likewise.
3740         * cse.c (cse_insn): Use delete_insn.
3741
3742 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3743
3744         * cpphash.h (struct cpp_buff): Make unsigned.
3745         (_cpp_get_buff): Take length of size_t.
3746         (_cpp_unaligned_alloc): New.
3747         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
3748         (struct cpp_reader): Remove ident_pool.  Add u_buff.
3749         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
3750         (cpp_destroy): Destroy u_buff, not ident_pool.
3751         * cpplex.c (parse_number, parse_string, save_comment,
3752         cpp_token_as_text): Update to use the unaligned buffer.
3753         (new_buff): Make unsigned.
3754         (_cpp_unaligned_alloc): New.
3755         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
3756         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
3757         Similarly.
3758         (collect_args): Make unsigned.
3759
3760 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
3761
3762         * cpplex.c (cpp_output_token): Use a putc loop for
3763         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
3764
3765         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
3766         * configure, config.in: Regenerate.
3767         * system.h: Replace fwrite and fprintf with their unlocked
3768         variants if available.
3769
3770 2001-09-27  Richard Henderson  <rth@redhat.com>
3771
3772         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
3773         in favour of .eh_frame.
3774
3775 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
3776
3777         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
3778         to macros.
3779         (LIBCALL_VALUE): Likewise.
3780
3781 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3782
3783         * cpphash.h: Update comment.
3784         * cpplex.c: Update comments.
3785         (_cpp_can_paste): Remove.
3786         * cpplib.h (_cpp_can_paste): Remove.
3787         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
3788         lexer rather than _cpp_can_paste.
3789
3790 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3791
3792         * doc/cppinternals.texi: Update.
3793
3794 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3795
3796         * cpphash.h (struct cpp_pool): Remove locks and locked.
3797         (struct cpp_context): Add member buff.
3798         (struct cpp_reader): Remove member argument_pool.
3799         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
3800         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
3801         * cpplex.c (chunk_suitable): Remove pool argument.
3802         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
3803         (new_buff, _cpp_extend_buff): Update.
3804         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
3805         which buffer is returned.
3806         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
3807         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
3808         * cppmacro.c (lock_pools, unlock_pools): Remove.
3809         (push_ptoken_context): Take a _cpp_buff.
3810         (enter_macro_context): Pool locking removed.
3811         (replace_args): Use a _cpp_buff for the replacement list with
3812         arguments replaced.
3813         (push_token_context): Clear buff.
3814         (expand_arg): Use _cpp_pop_context.
3815         (_cpp_pop_context): Free a context's buffer, if any.
3816
3817 2001-09-26  DJ Delorie  <dj@redhat.com>
3818
3819         * c-typeck.c (digest_init): Check for sizeless arrays.
3820
3821 2001-09-26  Richard Henderson  <rth@redhat.com>
3822
3823         * optabs.c (init_one_libfunc): Create a dummy function type
3824         instead of using error_mark_node.
3825
3826 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3827
3828         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
3829         _cpp_extend_buff, _cpp_free_buff): New.
3830         (struct cpp_reader): New member free_buffs.
3831         * cppinit.c (cpp_destroy): Free buffers.
3832         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
3833         _cpp_extend_buff, _cpp_free_buff): New.
3834         * cpplib.h (struct cpp_options): Remove unused member.
3835         * cppmacro.c (collect_args): New.  Combines the old parse_arg
3836         and parse_args.  Use _cpp_buff for memory allocation.
3837         (funlike_invocation_p, replace_args): Update.
3838
3839 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
3840
3841         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
3842
3843 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
3844
3845         * except.c (sjlj_mark_call_sites): Change address inside sequence.
3846
3847 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
3848
3849         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
3850         glibc.
3851
3852 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
3853             Jim Wilson  <wilson@redhat.com>
3854
3855         * doc/install.texi (Specific, ia64-*-linux): Document.
3856
3857 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
3858
3859         * Makefile.in (cfgrtl.o): Add.
3860         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
3861         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
3862         free_aux_for_edge): Declare.
3863         * cfg.c
3864         (HAVE_return): Undefine.
3865         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
3866         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
3867         free_aux_for_edge): New global functions.
3868         (first_delete_block): New static variable.
3869         (init_flow): Clear first_delete_block.
3870         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
3871          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
3872          try_redirect_by_replacing_jump, last_loop_beg_note,
3873          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
3874          delete_insn, delete_insn_chain, create_basic_block_structure,
3875          create_basic_block, flow_delete_block, compute_bb_for_insn,
3876          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
3877          set_block_for_new_insns, split_block, merge_blocks_nomove,
3878          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
3879          redirect_edge_and_branch, force_nonfallthru_and_redirect,
3880          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
3881          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
3882          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
3883          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
3884          purge_all_dead_edges): Move to ....
3885         * cfgrtl.c: New file; .... Here.
3886
3887         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
3888         (reroder_basic_block): Use alloc_aux_for_blocks.
3889         * predict.c (estimate_bb_frequencies): Likewise; use
3890         alloc_aux_for_edges.
3891         * profile.c (compute_branch_probabilities): Likewise.
3892         (branch_prob): Likewise.
3893         * reg-stack.c (reg_to_stack): Likewise.
3894
3895         * emit-rtl.c (emit_insns_after): Never return NULL.
3896
3897         * basic-block.h (set_block_for_new_insns): Delete.
3898         * cfgrtl.c (set_block_for_new_insns): Delete.
3899
3900         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
3901         calls when crossjumping.
3902
3903         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
3904         * unroll.c (copy_loop_body): Use delete_insn.
3905
3906         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
3907         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
3908         keep_stack_depressed): Likewise.
3909         * gcse.c (cprop_cc0_jump): Likewise.
3910         * local-alloc.c (update_equiv_regs): Likewise.
3911         * loop.c (scan_loop, loop_delete_insns): Likewise.
3912         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
3913         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
3914         delete_output_reload, delete_address_reloads_1,
3915         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
3916         Likewise.
3917         * sibcall.c (replace_call_placeholder): Likewise.
3918         * cse.c (cse_insn): Likewise.
3919
3920 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
3921
3922         From Graham Stott  <grahams@redhat.com>
3923         (def_builtin): Only define builtins appropriate for target_flags.  All
3924         callers changed.
3925         (builtin_decsription): Add new field mask which is used to determine
3926         when to define the builtin via the macro def_builtin.
3927
3928         (bdesc_comi): Initialise new mask fields.
3929         (bdesc_2srg): Likewise.
3930         (bdesc_1arg): Likewise.
3931
3932         * config/i386/i386.c (ix86_init_builtins): Correct return type
3933         building v4hi_ftype_v4hi_int_int tree node.
3934         (ix86_expand_sse_comi): Fix typo swapping operands.
3935         Don't swap comparision condition, it is already swapped.
3936         (ix86_expand_sse_compare): Before swapping operands
3937         move operand 1 into new rtx and not the target rtx.
3938         Don't swap comparison condition, it is already swapped.
3939         Always check whether we need to create a new TARGET.
3940
3941         * config/i386/i386.md: (sse_comi) Fix typos.
3942         (sse_ucomi): Likewise.
3943         (cvtss2si): Fix operand 0 contraint.
3944         (cvttss2si): Likewise.
3945         (sse_unpckhps): Fix mode for operand 2.
3946         (sse_unpcklps): Likewise.
3947
3948 2001-09-25  Graham Stott  <grahams@redhat.com>
3949
3950         * sibcall.c (skip_copy_to_return_value): Tighten return value
3951         copy check.
3952
3953 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
3954
3955         * rs6000.c (lwa_operand): Address must be word aligned.
3956
3957 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3958
3959         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
3960         number has been set.
3961         (type_hash_mark): Mark type itself.
3962
3963 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
3964
3965         * c-lex.c (cb_def_pragma): Update.
3966         (c_lex): Update, and skip padding.
3967         * cppexp.c (lex, parse_defined): Update, remove unused variable.
3968         * cpphash.h (struct toklist): Delete.
3969         (union utoken): New.
3970         (struct cpp_context): Update.
3971         (struct cpp_reader): New members eof, avoid_paste.
3972         (_cpp_temp_token): New.
3973         * cppinit.c (cpp_create_reader): Update.
3974         * cpplex.c (_cpp_temp_token): New.
3975         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
3976         (cpp_output_token): Don't print leading whitespace.
3977         (cpp_output_line): Update.
3978         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
3979         do_include_common, do_line, do_ident, do_pragma,
3980         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
3981         parse_assertion): Update.
3982         (get_token_no_padding): New.
3983         * cpplib.h (CPP_PADDING): New.
3984         (AVOID_LPASTE): Delete.
3985         (struct cpp_token): New union member source.
3986         (cpp_get_token): Update.
3987         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
3988         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
3989         replace_args, quote_string, stringify_arg, parse_arg, next_context,
3990         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
3991         _cpp_backup_tokens, _cpp_create_definition): Update.
3992         (push_arg_context): Delete.
3993         (padding_token, push_token_context, push_ptoken_context): New.
3994         (make_string_token, make_number_token): Update, rename.
3995         (cpp_get_token): Update to handle tokens as pointers to const,
3996         and insert padding appropriately.
3997         * cppmain.c (struct printer): New member prev.
3998         (check_multiline_token): Constify.
3999         (do_preprocessing, cb_line_change): Update.
4000         (scan_translation_unit): Update to handle spacing.
4001         * scan-decls.c (get_a_token): New.
4002         (skip_to_closing_brace, scan_decls): Update.
4003         * fix-header.c (read_scan_file): Update.
4004
4005         * doc/cpp.texi: Update.
4006
4007 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4008
4009         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
4010         leak by passing malloc'ed pointer to reconcat, not concat.
4011
4012 2001-09-24  DJ Delorie  <dj@redhat.com>
4013
4014         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
4015
4016 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
4017
4018         * flow.c (delete_dead_jumptables): Delete jumptable if the only
4019         reference is from the literal pool.
4020
4021 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
4022
4023         * doc/install.texi (Final install): Request additional information
4024         in mail about successful builds.
4025
4026 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4027
4028         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
4029         initial value of return pointer register instead of value in frame-20.
4030         Revise comments.
4031
4032 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4033
4034         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
4035         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
4036         the libcall if there isn't a referenced identifier for the symbol.
4037
4038 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4039
4040         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
4041         non 64-bit machines.  Use these as a plabel for the trampoline.
4042         (TRAMPOLINE_SIZE): Adjust size for new words.
4043         (INITIALIZE_TRAMPOLINE): Initialize new words.
4044         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
4045         pointer to the plabel in the trampoline.
4046
4047 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4048
4049         * pa.c (function_arg): Pass floating arguments in both general and
4050         floating registers in indirect (dynamic) calls when generating code
4051         for the 32 bit ABI and the HP assembler.
4052
4053 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4054
4055         * doc/install.texi: Markup fixes.
4056         Use Solaris 2, SunOS 4 as appropriate.
4057         (Specific, *-*-solaris2*): Explain this.
4058         Unconditionally warn against /usr/ucb tools.
4059         Remove Sun as warning, obsolete.
4060         Move X11 header bug workaround here, update patches.
4061         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
4062         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
4063
4064 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
4065
4066         * errors.h (warning, error, fatal, internal_error): Don't mark
4067         with ATTRIBUTE_PRINTF_n.
4068         * toplev.h (internal_error, fatal_io_error, warning, error,
4069         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
4070         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
4071         Likewise.
4072
4073 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4074
4075         * function.c (pop_function_context_from): var_refs_queue
4076         and temp slots now in GC memory.
4077         (mark_function_status, free_after_compilation): Likewise;
4078         also struct function now in GC memory.
4079         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
4080         (combine_temp_slots): Likewise.
4081         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
4082         (prepare_function_start): Use GC memory for struct function.
4083         (mark_temp_slot): Deleted.
4084         (gcc_mark_struct_function): struct function now in GC memory.
4085
4086         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
4087         code for division, not modulus.
4088
4089         * rtl.def (MEM): Remove obsolete part of comment.
4090
4091 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
4092
4093         * c-format.c (init_function_format_info): Check __builtin_printf
4094         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
4095         in gnu89 mode.
4096
4097 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4098
4099         * c-common.c (format_attribute_table): Remove decl.
4100         * tree.h (format_attribute_table, lang_attribute_table): New decls.
4101         (lang_attribute_common): Likewise.
4102
4103         * function.c (fix_lexical_address): Use set_mem_alias_set.
4104         (expand_function_start): Likewise.
4105         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
4106
4107         * varasm.c (output_constant): Fix unused variable warning.
4108
4109         * attribs.c: New file, from c-common.c.
4110         (attribute_tables): Now four elements.
4111         (format_attribute_table, lang_attribute_common): New variables.
4112         (init_attributes): Reflect above changes.
4113         (handle_mode_attribute): Delete check for wider than uintmax.
4114         * c-common.c: Delete parts moved to attribs.c.
4115         (enum attrs): Deleted; unused.
4116         (c_format_attribute_table): New variable.
4117         (c_common_lang_init): Initialize format_attribute_table with it.
4118         * c-common.h (decl_attributes): Remove decl.
4119         * tree.h (decl_attribute): Move it to here.
4120         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
4121         (attribs.o): New rule.
4122
4123 2001-09-22  Andreas Jaeger  <aj@suse.de>
4124
4125         * builtins.c (c_getstr): Remove unused variable.
4126
4127 2001-09-21  Richard Henderson  <rth@redhat.com>
4128
4129         * reload1.c (reload): Use delete_insn instead of splatting
4130         NOTE_INSN_DELETED.
4131
4132 2001-09-21  Richard Henderson  <rth@redhat.com>
4133
4134         * reload.c (push_secondary_reload): Don't check for "=" in output
4135         constraint after ""->ALL_REGS check.
4136
4137 2001-09-21  Richard Henderson  <rth@redhat.com>
4138
4139         * predict.c (expected_value_to_br_prob): Use pc_set.
4140
4141         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
4142         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
4143
4144 2001-09-21  Richard Henderson  <rth@redhat.com>
4145
4146         * rtl.h (LCT_RETURNS_TWICE): New.
4147         * calls.c (emit_call_1): Set current_function_calls_setjmp for
4148         ECF_RETURNS_TWICE.
4149         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
4150         to ECF_RETURNS_TWICE.
4151         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
4152         call to setjmp.
4153
4154         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
4155
4156         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
4157         (JMP_BUF_SIZE): New.
4158
4159 2001-09-21  Richard Henderson  <rth@redhat.com>
4160
4161         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
4162         to R8_REGS.
4163
4164 2001-09-21  Richard Henderson  <rth@redhat.com>
4165
4166         * tree.def (FDESC_EXPR): New.
4167         * expr.c (expand_expr): Handle it.
4168         * varasm.c (initializer_constant_valid_p): Likewise.
4169         (output_constant): Likewise.
4170         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
4171         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
4172         (ASM_OUTPUT_FDESC): New.
4173         * doc/tm.texi: Document the new macros.
4174
4175 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
4176
4177         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
4178         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
4179         once merging is complete.
4180
4181 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4182
4183         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
4184
4185 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
4186
4187         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
4188         that would be invalid after a merge.
4189
4190 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
4191
4192         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
4193         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
4194         remove some labels.
4195         (flow_delete_insn): This one.
4196         (delete_insn_chain): Rename from ...; do not care labels.
4197         (flow_delete_insn_chain): ... this one.
4198         (flow_delete_block): Remove the insns one BB has been expunged.
4199         (merge_blocks_nomove): Likewise.
4200         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
4201         updating BB boundaries.
4202         (tidy_fallthru_edge): Likewise.
4203         (commit_one_edge_insertion): Likewise.
4204         * cfgbuild.c (find_basic_block): Likewise.
4205         (find_basic_blocks_1): Likewise.
4206         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
4207         (try_crossjump_to_edge): Likewise.
4208         (try_optimize_cfg): Likewise.
4209         * cse.c (delete_trivially_dead_insns): Likewise.
4210         * df.c (df_insn_delete): Likewise.
4211         * doloop.c (doloop_modify): Use delete_related_insns.
4212         * emit-rtl.c (try_split): Likewise.
4213         (remove_insn): Update BB boundaries.
4214         * expect.c (connect_post_landing_pads): Use delete_related_insns.
4215         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
4216         updating BB boundaries.
4217         (propagate_block_delete_insn): Likewise.
4218         (propagate_block_delete_libcall): Likewise.
4219         * function.c (delete_handlers): Use delete_related_insns.
4220         (thread_prologue_and_epilogue_insns): Likewise.
4221         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
4222         * genpeep.c (gen_peephole): Use delete_related_insns.
4223         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
4224         BB boundaries.
4225         (find_cond_trap): Likewise.
4226         * integrate.c (save_for_inline): Use delete_related_insns.
4227         (copy_insn_list): Likewise.
4228         * jump.c (pruge_linie_number_notes): Likewise.
4229         (duplicate_loop_exit_test): Likewise.
4230         (delete_computation): Likewise.
4231         (delete_related_insn): Rename from ...; use delete_insn
4232         (delete_insn): ... this one.
4233         (redirect_jump): Use delete_related_insns.
4234         * loop.c (scan_loop): Likewise.
4235         (move_movables): Likewise.
4236         (find_and_verify_loops): Likewise.
4237         (check_dbra_loop): Likewise.
4238         * recog.c (peephole2_optimize): Likewise.
4239         * reg-stack.c (delete_insn_for_stacker): Remove.
4240         (move_for_stack_reg): Use delete_insn.
4241         * regmove.c (combine_stack_adjustments_for_block): Likewise.
4242         * reload1.c (delete_address_reloads): Use delete_related_insns.
4243         (fixup_abnormal_edges): Use delete_insn.
4244         * recog.c (emit_delay_sequence): Use delete_related_insns.
4245         (delete_from-delay_slot): Likewise.
4246         (delete_scheduled_jump): likewise.
4247         (optimize_skip): Likewise.
4248         (try_merge_delay_insns): Likewise.
4249         (full_simple_delay_slots): Likewise.
4250         (fill_slots_from_thread): Likewise.
4251         (relax_delay_slots): Likewise.
4252         (make_return_insns): Likewise.
4253         (dbr_schedule): Likewise.
4254         * rtl.h (delete_insn): Rename to delete_related_insns.
4255         (delete_insn, delete_insn_chain): New prototypes.
4256         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
4257         by df_insn_delete already.
4258         * ssa-dce.c (delete_insn_bb): Use delete_insn.
4259         * ssa.c (convert_from_ssa): Use delete_related_insns.
4260         * unroll.c (unroll_loop): Likewise.
4261         (calculate_giv_inc): Likewise.
4262         (copy_loop_body): Likewise.
4263
4264         * i386-protos.h (ix86_libcall_value, ix86_function_value,
4265         ix86_function_arg_regno_p, ix86_function_arg_boundary,
4266         ix86_return_in_memory, ix86_function_value): Declare.
4267         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
4268         new static valurables.
4269         (x86_64_reg_class): New enum
4270         (x86_64_reg_class_name): New array.
4271         (classify_argument, examine_argument, construct_container,
4272          merge_classes): New static functions.
4273         (optimization_options): Enable flag_omit_frame_pointer and disable
4274         flag_pcc_struct_return on 64bit.
4275         (ix86_libcall_value, ix86_function_value,
4276         ix86_function_arg_regno_p, ix86_function_arg_boundary,
4277         ix86_return_in_memory, ix86_function_value): New global functions.
4278         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
4279         (function_arg_advance): Handle x86_64 passing conventions.
4280         (function_arg): Likewise.
4281         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
4282         (RETURN_IN_MEMORY): Move offline.
4283         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
4284         (FUNCTION_VALUE_REGNO_P): New macro.
4285         (FUNCTION_ARG_REGNO_P): Move offline.
4286         (struct ix86_args): Add maybe_vaarg.
4287         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
4288         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
4289
4290 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
4291
4292         * s390.md: Changed attributes for scheduling.
4293         * s390.c: (s390_adjust_cost, s390_adjust_priority)
4294         Changed scheduling
4295
4296 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
4297
4298         Table-driven attributes.
4299         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
4300         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
4301         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
4302         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
4303         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
4304         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
4305         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
4306         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
4307         * tree.h (struct tree_decl): Change machine_attributes to
4308         attributes.
4309         * doc/c-tree.texi: Document that all attributes are now attached
4310         to decls and types.
4311         * c-common.c (add_attribute, attrtab, attrtab_idx,
4312         default_valid_lang_attribute, valid_lang_attribute): Remove.
4313         (attribute_tables, attributes_initialized,
4314         c_common_attribute_table, default_lang_attribute_table): New
4315         variables.
4316         (handle_packed_attribute, handle_nocommon_attribute,
4317         handle_common_attribute, handle_noreturn_attribute,
4318         handle_unused_attribute, handle_const_attribute,
4319         handle_transparent_union_attribute, handle_constructor_attribute,
4320         handle_destructor_attribute, handle_mode_attribute,
4321         handle_section_attribute, handle_aligned_attribute,
4322         handle_weak_attribute, handle_alias_attribute,
4323         handle_no_instrument_function_attribute,
4324         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
4325         handle_no_limit_stack_attribute, handle_pure_attribute): New
4326         functions.
4327         (init_attributes, decl_attributes): Rewrite to implement
4328         table-driven attributes.
4329         * c-common.h (enum attribute_flags): Move to tree.h.
4330         * c-format.c (decl_handle_format_attribute,
4331         decl_handle_format_arg_attribute): Rename to
4332         handle_format_attribute and handle_format_arg_attribute.  Update
4333         for table-driven attributes.
4334         * c-common.h (decl_handle_format_attribute,
4335         decl_handle_format_arg_attribute): Remove prototypes.
4336         (handle_format_attribute, handle_format_arg_attribute): Add
4337         prototypes.
4338         * c-decl.c (grokdeclarator): Handle attributes nested inside
4339         declarators.
4340         * c-parse.in (setattrs, maybe_setattrs): Remove.
4341         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
4342         Update to handle nested attributes properly.
4343         (maybe_resetattrs, after_type_declarator,
4344         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
4345         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
4346         properly.
4347         (make_pointer_declarator): Update to handle nested attributes
4348         properly.
4349         * doc/extend.texi: Update documentation of limits of attributes
4350         syntax.  Warn about problems with attribute semantics in C++.
4351         * target.h (struct target): Remove valid_decl_attribute and
4352         valid_type_attribute.  Add attribute_table and
4353         function_attribute_inlinable_p.
4354         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
4355         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
4356         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
4357         Add.
4358         (TARGET_INITIALIZER): Update.
4359         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
4360         definition.
4361         (function_attribute_inlinable_p): New function.  Check for the
4362         presence of any machine attributes before using
4363         targetm.function_attribute_inlinable_p.
4364         (function_cannot_inline_p): Update.
4365         * Makefile.in (integrate.o): Update dependencies.
4366         * doc/tm.texi: Update documentation of target attributes and
4367         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
4368         * tree.c (default_valid_attribute_p, valid_machine_attribute):
4369         Remove.
4370         (default_target_attribute_table,
4371         default_function_attribute_inlinable_p): New.
4372         (lookup_attribute): Update comment to clarify handling of multiple
4373         attributes with the same name.
4374         (merge_attributes, attribute_list_contained): Allow multiple
4375         attributes with the same name but different arguments to appear in
4376         the same attribute list.
4377         * tree.h (default_valid_attribute_p): Remove prototype.
4378         (struct attribute_spec): New.
4379         (default_target_attribute_table): Declare.
4380         (enum attribute_flags): Move from c-common.h.  Add
4381         ATTR_FLAG_TYPE_IN_PLACE.
4382         (default_function_attribute_inlinable_p): Declare.
4383         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
4384         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4385         (TARGET_ATTRIBUTE_TABLE): Define.
4386         (vms_attribute_table): New.
4387         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
4388         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4389         (TARGET_ATTRIBUTE_TABLE): Define.
4390         (arc_attribute_table, arc_handle_interrupt_attribute): New.
4391         * config/arm/arm.c (arm_valid_type_attribute_p,
4392         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
4393         Remove.
4394         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
4395         define.
4396         (TARGET_ATTRIBUTE_TABLE): Define.
4397         (arm_attribute_table, arm_handle_fndecl_attribute,
4398         arm_handle_isr_attribute): New.
4399         * config/avr/avr.c (avr_valid_type_attribute,
4400         avr_valid_decl_attribute): Remove.
4401         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
4402         define.
4403         (TARGET_ATTRIBUTE_TABLE): Define.
4404         (avr_attribute_table, avr_handle_progmem_attribute,
4405         avr_handle_fndecl_attribute): New.
4406         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
4407         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4408         (TARGET_ATTRIBUTE_TABLE): Define.
4409         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
4410         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
4411         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4412         (TARGET_ATTRIBUTE_TABLE): Define.
4413         (h8300_attribute_table, h8300_handle_fndecl_attribute,
4414         h8300_handle_eightbit_data_attribute,
4415         h8300_handle_tiny_data_attribute): New.
4416         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
4417         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
4418         Remove prototypes.
4419         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
4420         declarations.
4421         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
4422         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
4423         define.
4424         (TARGET_ATTRIBUTE_TABLE): Define.
4425         (ix86_attribute_table, ix86_handle_cdecl_attribute,
4426         ix86_handle_regparm_attribute): New.
4427         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
4428         i386_pe_valid_type_attribute_p): Remove.
4429         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
4430         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
4431         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4432         (TARGET_ATTRIBUTE_TABLE): Define.
4433         (ia64_attribute_table): New.
4434         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
4435         interrupt_ident2, model_ident1, model_ident2): Remove.
4436         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4437         (TARGET_ATTRIBUTE_TABLE): Define.
4438         (init_idents): Update.
4439         (m32r_attribute_table, m32r_handle_model_attribute): New.
4440         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
4441         Remove.
4442         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4443         (TARGET_ATTRIBUTE_TABLE): Define.
4444         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
4445         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
4446         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4447         (TARGET_ATTRIBUTE_TABLE): Define.
4448         (mcore_attribute_table, mcore_handle_naked_attribute): New.
4449         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
4450         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4451         (TARGET_ATTRIBUTE_TABLE): Define.
4452         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
4453         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
4454         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4455         (TARGET_ATTRIBUTE_TABLE): Define.
4456         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
4457         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
4458         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4459         (TARGET_ATTRIBUTE_TABLE): Define.
4460         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
4461         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
4462         New.
4463         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
4464         Remove.
4465         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
4466         (TARGET_ATTRIBUTE_TABLE): Define.
4467         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
4468         New.
4469         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
4470         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4471         (TARGET_ATTRIBUTE_TABLE): Define.
4472         (v850_attribute_table, v850_handle_interrupt_attribute,
4473         v850_handle_data_area_attribute): New.
4474         * config/v850/v850-c.c (mark_current_function_as_interrupt):
4475         Return void.  Call decl_attributes instead of
4476         valid_machine_attribute.
4477
4478 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
4479
4480         * sh-protos.h (sh_pr_n_sets): Declare.
4481         * sh.c (calc_live_regs): If the initial value for PR has been copied,
4482         look at the copy to determine if PR needs to be saved.
4483         sh_pr_n_sets: New function.
4484         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
4485         (ALLOCATE_INITIAL_VALUE): Define.
4486
4487         * sh.c (initial_elimination_offset):
4488         Fix RETURN_ADDRESS_POINTER_REGNUM case.
4489
4490 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
4491
4492         * integrate.c (allocate_initial_values): New function.
4493         * integrate.h (allocate_initial_values): Declare.
4494         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
4495         here...
4496         * reload1.c (reload): And initialization of reg_equiv_memory_loc
4497         from here...
4498         * toplev.c (rest_of_compilation): To here.
4499         Call allocate_initial_values.
4500         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
4501
4502 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4503
4504         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
4505
4506 2001-09-20  DJ Delorie  <dj@redhat.com>
4507
4508         * c-typeck.c (really_start_incremental_init): Discriminate
4509         between zero-length arrays and flexible arrays.
4510         (push_init_level): Detect zero-length arrays and handle them
4511         like fixed-sized arrays.
4512         * expr.c (store_constructor): Handle zero-length arrays and
4513         flexible arrays correctly.
4514         * doc/extend.texi: Update zero-length array notes.
4515
4516 2001-09-20  Jim Wilson  <wilson@redhat.com>
4517
4518         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
4519         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
4520         for issue port conflicts.
4521         (cycle_end_fill_slots): TYPE_L instructions take two slots.
4522
4523 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
4524
4525         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
4526         on ia64.
4527
4528 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4529
4530         * fold-const.c (hashtab.h): Include.
4531         (int_const_binop): Remove FORSIZE arg and compute from type; all
4532         callers changed.
4533         Call size_int_type_wide for all single-word constants.
4534         (size_htab_hash, size_htab_eq): New functions.
4535         (size_int_type_wide): Rework to use hash table.
4536         * ggc-common.c (hashtab.h): Include.
4537         (struct d_htab_root): New struct.
4538         (d_htab_roots): New variable.
4539         (ggc_add_deletable_htab, ggc_htab_delete): New functions
4540         (ggc_mark_roots): Handle deletable htabs.
4541         * ggc-page.c (ggc_marked_p): New function.
4542         * ggc-simple.c (ggc_marked_p): Likewise.
4543         * ggc.h: Reformatting throughout.
4544         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
4545         * tree.c (init_obstacks): Make type_hash_table a deletable root.
4546         (type_hash_add): Allocate struct type_hash from GC memory.
4547         (mark_hash_entry, mark_type_hash): Deleted.
4548         (type_hash_marked_p, type_hash_mark): New functions.
4549         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
4550
4551 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
4552
4553         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
4554         than SImode.
4555
4556 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4557
4558         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
4559         array-too-large test for signed sizetype.
4560
4561 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
4562
4563         * i386.md (indirect_jump): Allow Pmode operand.
4564         (tablejump): LIkewise; perform expansion to 64bit mode.
4565         * i386.c (symbolic_operand): Allow 64bit PIC references.
4566         (pic_symbolic_operand): Likewise.
4567         (ix86_find_base_term): Strip the 64bit PIC references.
4568         (legitimate_pic_address_disp_p): Handle 64bit PIC.
4569         (legitimize_pic_address): Likewise.
4570         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
4571         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
4572
4573 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
4574
4575         * stringpool.c (get_identifier_with_length): New function.
4576         * tree.h (get_identifier_with_length): New prototype.
4577
4578 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
4579             David Edelsohn  <edelsohn@gnu.org>
4580
4581         Revert:
4582         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
4583         already sign-extended.
4584
4585         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
4586         * config/rs6000/rs6000.c (logical_operand): Always compare op as
4587         HOST_WIDE_INT.
4588         (rs6000_emit_set_long_const): Avoid unnecessary shift.
4589         (output_profile_hook): Declare label_name const.
4590         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
4591         to match constraints.
4592
4593 2001-09-19  Stan Shebs  <shebs@apple.com>
4594
4595         * alias.c: Fix typos in comments.
4596         * sched-rgn.c (init_ready_list): Ditto.
4597         * unwind-dw2.c (uw_frame_state_for): Ditto.
4598         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
4599         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
4600         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
4601
4602 2001-09-19  Richard Henderson  <rth@redhat.com>
4603
4604         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
4605         to the exit block.
4606         * Makefile.in (cfg.o): Depend on TM_P_H.
4607
4608 2001-09-19  Richard Henderson  <rth@redhat.com>
4609
4610         * config/alpha/alpha.c (local_symbol_p): Split out from ...
4611         (local_symbolic_operand): ... here.
4612         (small_symbolic_operand): Check mode.
4613         (global_symbolic_operand): New.
4614         (input_operand): Reject symbolics if explicit relocs.
4615         (call_operand): Tidy.
4616         (alpha_legitimize_address): Use movdi_er_high_g.
4617         (alpha_expand_mov): Likewise.
4618         * config/alpha/alpha-protos.h: Update.
4619         * config/alpha/alpha.h (PREDICATE_CODES): Update.
4620         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
4621         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
4622         (UNSPECV_LDGP2): Remove.
4623         (all call patterns): Use 's' not 'i' for symbolic constraint.
4624         (call_osf call_value_osf): Use call_operand.
4625         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
4626         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
4627         (prologue_ldgp_1_er): Remove.
4628         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
4629         (builtin_setjmp_receiver_er patterns): Use them.
4630         (exception_receiver_er): Likewise.
4631
4632 2001-09-19  Richard Henderson  <rth@redhat.com>
4633
4634         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
4635
4636         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
4637         and NON_LOCAL_GOTO notes.
4638         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
4639         copy over CALL_INSN_FUNCTION_USAGE.
4640
4641 2001-09-18  Catherine Moore  <clm@redhat.com>
4642
4643         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
4644         Define as 0.
4645
4646 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
4647
4648         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
4649         new-style tm_file specification.  Specify correct tm_p_file,
4650         md_file, and out_file for s390x.
4651
4652         * config/s390/linux.h, linux64.h:  Don't include other target
4653         macro header files.  Now handled via tm_file.
4654
4655         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
4656         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
4657         are defined before use.
4658
4659 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
4660
4661         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
4662         code generation only for Gnu assembler.
4663
4664 2001-09-18  Catherine Moore  <clm@redhat.com>
4665
4666         * config/stormy16 (LIB_SPEC): Remove -lnosys.
4667
4668 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
4669
4670         * config/mips/mips.c (mips_frame_set): New.
4671         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
4672         a parallel frame-related expression with a set for each register.
4673
4674 2001-09-18  Philip Blundell  <philb@gnu.org>
4675
4676         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
4677         header files.
4678
4679 2001-09-17  Dale Johannesen  <dalej@apple.com>
4680
4681         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
4682         * config/rs6000/aix.h (FIXED_R2): Define.
4683         * config/rs6000/darwin.h (FIXED_R2): Define.
4684         * config/rs6000/sysv4.h (FIXED_R2): Define.
4685
4686 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
4687
4688         * except.c (dw2_build_landing_pads): New local
4689         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
4690         barrier after clobbers.  Fixes c++/4012.
4691
4692 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4693
4694         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
4695
4696 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
4697
4698         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
4699         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
4700
4701 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4702
4703         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
4704         alloca/strcpy.
4705
4706 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4707
4708         * cpphash.h (_cpp_lex_direct): New.
4709         * cpplex.c (_cpp_lex_token): Update.
4710         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
4711         and increment that pointer.
4712         * cppmacro.c (alloc_expansion_token): New.
4713         (lex_expansion_token): Lex macro expansion directly into
4714         macro storage.
4715
4716 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
4717
4718         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
4719
4720 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
4721
4722         * basic-block.h (free_bb_for_insn): Declare.
4723         * bb-reorder.c (label_for_bb): Use block_label.
4724         (emit_jump_to_block_after): Remove.
4725         (insert_intra_1): Do not update block_for_insn.
4726         (insert_inter_bb_scope_notes): Likewise; update bb->end
4727         * cfg.c (free_bb_for_insn): New.
4728         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
4729         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
4730         (commit_one_edge_insertion): Likewise.
4731         (commit_one_edge_insertion): Do not update BB boundary.
4732         (commit_edge_insertions): Do not call compute_bb_for_insn.
4733         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
4734         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
4735         (merge_blocks_move_successor_nojumps): Likewise.
4736         (try_crossjump_to_edge): Do not update block_for_insn.
4737         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
4738         * df.c (df_pattern_emit_later): Do not update BB boundary.
4739         (df_jump_pattern_emit_after): Likewise.
4740         (df_insn_move_before): Use emit_insn_before.
4741         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
4742          properly.
4743         (add_insn_after, add_insn_before, emit_insns_after): Update BB
4744         boundaries and basic_block_for_insn.
4745         (reorder_insns_nobb): Rename from reorder_insns.
4746         (reorder_insns): New.
4747         (emit_block_insn_before, emit_block_insn_after): Kill.
4748         * flow.c (check_function_return_warnings): Do not call
4749         compute_bb_for_insn; Do not free basic_block_for_insn.
4750         (attempt_auto_inc): Do not update basic_block_for_insn.
4751         * function.c (emit_return_into_block): Likewise;
4752         do not update BB boundaries.
4753         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
4754         (insert_insn_end_bb): Use emit_insn_before; Likewise.
4755         (pre_insert_copy_insn): Likewise.
4756         (update_ld_motion_notes): Likewise.
4757         (insert_insn_start_bb): Likewise.
4758         (replace_store_insn): Likewise.
4759         * ifcvt.c (noce_process_if_block): Likewise.
4760         (if_convert): Do not call compute_bb_for_insn.
4761         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
4762         Use emit_insn_before and emit_insn_after.
4763         * recog.c (split_all_insns): Do not update BB boundaries;
4764         Do not call compute_bb_for_insn.
4765         (peephole2_optimize): Do not update BB boundaries.
4766         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
4767         emit_insn_before.
4768         (emit_swap_insn): Likewise.
4769         (convert_regs_1): Likewise.
4770         * reload1.c (reload): Call compute_bb_for_insn.
4771         * rtl.h (reorder_insns_nobb): Declare.
4772         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
4773         * toplev.c (rest_of_compilation): Call free_bb_for_insn
4774         at places CFG is invalidated; do not call compute_bb_for_insn.
4775
4776         * cfg.c (expunge_block): Invalidate BB structure.
4777
4778         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
4779         array.
4780
4781         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
4782
4783 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4784
4785         * cpphash.h (_cpp_lex_token): Update prototype.
4786         * cpplex.c (_cpp_lex_token): New prototype.
4787         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
4788         lex_macro_node, read_flag, do_pragma_poison): Update.
4789         * cppmacro.c (cpp_get_token, parse_params,
4790         lex_expansion_token): Update.
4791
4792 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4793
4794         * cppmain.c (scan_translation_unit): Don't worry about
4795         putting a space after hashes.
4796         * cpplib.c (directive_diagnostics): New.
4797         (_cpp_handle_directive): Update to use directive_diagnostics.
4798         (run_directive): Don't toggle prevent_expansion.
4799         (do_line): Backup in case of the line extension.
4800         * cpplib.h (cpp_lexer_pos): Remove.
4801         * cppmacro.c (_cpp_create_definition): Precede a leading #
4802         with whitespace.
4803
4804 2001-09-15  Richard Henderson  <rth@redhat.com>
4805
4806         * c-typeck.c (comptypes): Handle zero-length arrays properly.
4807
4808 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4809
4810         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
4811
4812 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4813
4814         PR preprocessor/3571
4815         * tradcpp.c (handle_directive): Skip non-vertical space.
4816
4817 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4818
4819         * cppmain.c (setup_callbacks): Set line callback only
4820         if outputting preprocessed source.
4821
4822 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4823
4824         * collect2.c (main): Const-ification.
4825         * gcc.c (translate_options, process_command): Use xstrdup in
4826         lieu of xmalloc/strcpy.
4827         (main): Use concat in lieu of xmalloc/strcpy/strcat.
4828
4829 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4830
4831         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
4832         example.
4833
4834 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4835
4836         * scan-decls.c (scan_decls): Fix typo.
4837
4838 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4839
4840         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
4841         Split mlstring_pos into mls_line and mls_col.
4842         * cppinit.c (cpp_create_reader): Initialize line to 1.
4843         (cpp_destroy): Free tokenruns.
4844         (push_include): Don't update lexer_pos.
4845         * cpplex.c (unterminated, parse_string): Update.
4846         (lex_token): Don't update lexer_pos, update.
4847         * cpplib.c (if_stack): Save line instead of line + col.
4848         (start_directive, _cpp_do__Pragma, do_else, do_elif,
4849         push_conditional, _cpp_pop_buffer): Update.
4850         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
4851         (_cpp_create_definition): Update.
4852
4853 2001-09-15  Eric Christopher  <echristo@redhat.com>
4854
4855         * config/mips/abi64.h: Add support for MEABI.
4856
4857 2001-09-15  Eric Christopher  <echristo@redhat.com>
4858
4859         * config/mips/mips.md: Add unspec #2.
4860         (reload_indi): Use.
4861         (reload_outdi): Ditto.
4862         (reload_outsi): Ditto.
4863         (HILO_delay): New.
4864
4865 2001-09-15  Eric Christopher  <echristo@redhat.com>
4866             Jason Eckhardt  <jle@redhat.com>
4867
4868         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
4869         * config/mips/isa32-linux.h: New file.
4870         * config/mips/isa3264.h: Ditto.
4871         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
4872         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
4873         (output_block_mode): Support MEABI.
4874         (function_arg): Ditto. Fix floating point arg passing.
4875         (mips_va_start): Ditto.
4876         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
4877         processors.
4878         (mips_asm_file_start): Add new section to pass abi to gdb.
4879         (function_arg_pass_by_reference): Support MEABI.
4880         (mips_parse_cpu): Support mips32 and mips64 processors.
4881         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
4882         TARGET_MIPS5KC.  Support isa32 and isa64.
4883         (processor_type): Add r4kc, r5kc, r20kc.
4884         (GENERATE_MULT3_SI): New.
4885         (GENERATE_MULT3_DI): Ditto.
4886         (GENERATE_MULT3): Remove.
4887         (ISA_HAS_64BIT_REGS): Add isa == 64.
4888         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
4889         (ISA_HAS_MADD_MSUB): New.
4890         (ISA_HAS_CLZ_CLO): Ditto.
4891         (ISA_HAS_DCLZ_DCLO): Ditto.
4892         (ABI_GAS_ASM_SPEC): New.
4893         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
4894         (ASM_SPEC): Ditto.
4895         (LINK_SPEC): Ditto.
4896         (SUBTARGET_CC1_SPEC): Ditto.
4897         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
4898         (PAD_VARARGS_DOWN): Support MEABI.
4899         (HARD_REGNO_NREGS): Move to mips.c.
4900         (ASM_OUTPUT_IDENT): Add #undef.
4901         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
4902         (mulsi3): Use GENERATE_MULT3_SI.
4903         (mulsi3_mult3): Ditto.  Support mips32, mips64.
4904         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
4905         (mul_sub_si): New pattern.
4906         (unnamed splitters): New.
4907         (muldi3): Use GENERATE_MULT3_DI.
4908         (muldi3_internal2): Ditto.
4909         (movdicc): Support mips32.
4910         * config/mips/t-isa3264: New file.
4911
4912 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
4913
4914         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
4915         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
4916         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
4917
4918         * reorg.c (fill_slots_from_thread): After call to
4919         steal_delay_list_from_target, update own_thread as new_thread may
4920         have branched.
4921
4922 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4923
4924         * cpperror.c (print_location): Take line and column, for
4925         default positioning use the previously lexed token.
4926         (_cpp_begin_message): Take line and column.
4927         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
4928         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
4929         * cpphash.h (_cpp_begin_message): Update prototype.
4930         * cppinit.c (push_include): Don't set output line.
4931         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
4932         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
4933         (do_pragma): Kludge for front ends.  Don't expand macros at all.
4934         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
4935         (struct cpp_token): Remove output_line.
4936         (struct cpp_callbacks): New member line_change.
4937         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
4938         cpp_get_token): Preserve BOL flag.
4939         (cpp_get_line): Remove.
4940         (_cpp_backup_tokens): Remove useless abort().
4941         * cppmain.c (cb_line_change): New.
4942         (scan_translation_unit): Don't worry about starting new lines here.
4943         * scan-decls.c (scan_decls): Update.
4944         * c-lex.c (c_lex, init_c_lex): Update.
4945         (cb_line_change, src_lineno): New.
4946
4947 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
4948
4949         * tree.c (append_random_chars): Generate the random
4950         characters in a reproducable fashion.
4951
4952 2001-09-14  Richard Henderson  <rth@redhat.com>
4953
4954         * config/i386/i386.c (internal_label_prefix): New.
4955         (internal_label_prefix_len): New.
4956         (override_options): Set them.
4957         (local_symbolic_operand): New.
4958         (legitimate_pic_address_disp_p): Use it.
4959         (legitimize_pic_address): Likewise.
4960
4961 2001-09-14  Marc Espie <espie@openbsd.org>
4962
4963         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
4964         correctly.
4965
4966 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4967
4968         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
4969         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
4970
4971 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
4972
4973         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
4974         invocation of SUBREG_REGNO_OFFSET.
4975
4976         * haifa-sched.c: Fix typo in FSF copyright statement.
4977         * sched-deps.c: Fix typo in FSF copyright statement.
4978         * sched-ebb.c: Fix typo in FSF copyright statement.
4979         * sched-rgn.c: Fix typo in FSF copyright statement.
4980         * sched-vis.c: Fix typo in FSF copyright statement.
4981
4982         * config.gcc: Move inclusion of arm elf specific header files
4983         from the files themselves into the tm_file variable.  Make
4984         sure that elfos.h is included before target specific elf
4985         headers.
4986         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
4987         already defined.
4988         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
4989         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
4990         ASM_OUTPUT_CASE_LABEL): Protect definition.
4991         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
4992         not already defined.
4993         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
4994         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
4995         Remove duplicate definition.
4996         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
4997         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
4998         (RDATA_SECTION_FUNCTION): Remove redundant definition.
4999         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
5000         Remove inclusion of arm/elf.h.
5001         * config/arm/unknown-elf.h: as for conix-elf.h.
5002         (STARTFILE_SPEC): Include crti.o and crtn.o.
5003         * config/arm/linux-elf.h: as for conix-elf.h.
5004         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
5005         * config/arm/strongarm-elf.h: Remove inclusion of
5006         unknown-elf.h.
5007         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
5008         * config/arm/unknown-elf-oabi.h: Remove inclusion of
5009         unknown-elf.h and elf.h.
5010         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
5011         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
5012         ASM_WEAKEN_LABEL): Remove redundant definition.
5013         * config/arm/elf.h: Test for inclusion of elfos.h
5014         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
5015         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
5016         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
5017         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
5018         redundant definition.
5019         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
5020         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
5021         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
5022         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
5023         Add rules to build crti.o and crtn.o
5024         * crti.asm: New file.
5025         * crtn.asm: New file.
5026
5027 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5028
5029         * c-parse.in (_yylex): Use _cpp_backup_tokens.
5030         * cpphash.h (struct tokenrun): Add prev.
5031         (struct lexer_state): Remove bol.
5032         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
5033         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
5034         : Remove.
5035         * cppinit.c (cpp_create_reader): Don't set bol.
5036         (cpp_destroy): Don't free lookaheads.
5037         * cpplex.c (lex_directive): Remove.
5038         (next_tokenrun): Update.
5039         (_cpp_lex_token): Clean up logic.
5040         (lex_token): Update to return a pointer to lexed token, since it
5041         can move to the start of the buffer.  Simpify newline handling.
5042         * cpplib.c (SEEN_EOL): Update.
5043         (skip_rest_of_line): Remove lookahead stuff.
5044         (end_directive): Line numbers are already incremented.  Revert
5045         to start of lexed token buffer if we can.
5046         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
5047         parse_answer): Use _cpp_backup_tokens.
5048         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
5049         instead.  Don't check for EOL.
5050         (do_include_common, do_line, do_pragma_system_header): Use
5051         skip_rest_of_line.
5052         * cpplib.h (BOL, _cpp_backup_tokens): New.
5053         * cppmacro.c (save_lookahead_token, take_lookahead_token,
5054         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
5055         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
5056         (builtin_macro): Don't use cpp_get_line.
5057         (cpp_get_line): Short term kludge.
5058         (parse_arg): Handle directives in arguments here.  Back up when
5059         appropriate.  Store EOF at end of argument list.
5060         (funlike_invocation_p): Use _cpp_backup_tokens.
5061         (push_arg_context): Account for EOF at end of list.
5062         (cpp_get_token): Remove lookahead stuff.  Update.
5063
5064 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5065
5066         * c-parse.in (yyerror): Const-ification and/or static-ization.
5067         * c-typeck.c (push_member_name): Likewise.
5068         * collect2.c (main): Likewise.
5069         * dbxout.c (dbxout_parms): Likewise.
5070         * diagnostic.c (format_with_decl): Likewise.
5071         * dwarf2out.c (output_ranges): Likewise.
5072         * dwarfout.c (fundamental_type_code): Likewise.
5073         * except.c (dw2_output_call_site_table): Likewise.
5074         * gcc.c (do_spec_1): Likewise.
5075         * genopinit.c (optabs): Likewise.
5076         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
5077         gen_declaration_1, handle_impent): Likewise.
5078         * protoize.c (default_include, in_system_include_dir, abspath):
5079         Likewise.
5080         * sched-vis.c (visualize_stall_cycles): Likewise.
5081         * sdbout.c (plain_type_1, sdbout_end_function,
5082         sdbout_end_epilogue): Likewise.
5083         * varasm.c (decode_reg_name): Likewise.
5084
5085         * 1750a.c (mod_regno_adjust): Likewise.
5086         * alpha.c (alpha_write_one_linkage,
5087         unicosmk_output_default_externs): Likewise.
5088         * arm.c (arm_condition_codes): Likewise.
5089         * arm.h (arm_condition_codes): Likewise.
5090         * avr.c (output_movsisf, encode_section_info): Likewise.
5091         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
5092         Likewise.
5093         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
5094         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
5095         * m88k.c (output_function_profiler): Likewise.
5096         * mips.c (mips_output_conditional_branch): Likewise.
5097         * ns32k.c (ns32k_out_reg_names): Likewise.
5098         * ns32k.h (ns32k_out_reg_names): Likewise.
5099         * pj.c (pj_output_rval): Likewise.
5100         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
5101         * sparc.c (sparc_flat_function_prologue,
5102         sparc_flat_function_epilogue): Likewise.
5103
5104 2001-09-13  Markus Werle <numerical.simulation@web.de>
5105             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5106
5107         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
5108         Aachen University of Technology".
5109
5110 2001-09-13  Andreas Schwab  <schwab@suse.de>
5111
5112         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
5113         C99.
5114
5115 2001-09-13  Richard Henderson  <rth@redhat.com>
5116
5117         * config/alpha/alpha.c (small_symbolic_operand): New.
5118         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
5119         (some_operand, input_operand): Don't handle HIGH.
5120         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
5121         (alpha_expand_mov): Likewise.
5122         (print_operand) [H]: Just print HIGH symbol.
5123         (print_operand_address): Handle small data.
5124         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
5125         (TARGET_SWITCHES): Add -msmall-data/large-data.
5126         (PIC_OFFSET_TABLE_REGNUM): New.
5127         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
5128         (PREDICATE_COES): Update.
5129         * config/alpha/alpha.md (adddi_er_high): New.
5130         (adddi_er_low): Handle small data.
5131         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
5132         prefer .sdata to .rodata.
5133         (SELECT_RTX_SECTION): Likewise.
5134
5135 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
5136
5137         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
5138         defining __size_t and leaving size_t undefined.
5139
5140 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
5141
5142         * basic-block.h (expunge_block): Declare.
5143         * cfg.c (expunge_block): Remove static declaration.
5144
5145 2001-09-12  Richard Henderson  <rth@redhat.com>
5146
5147         * integrate.c (copy_insn_list): Copy label name from
5148         NOTE_INSN_DELETED_LABEL.
5149
5150 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5151
5152         * c-common.c (c_tree_code_name): Const-ification.
5153         * c-decl.c (c_decode_option): Likewise.
5154         * c-typeck.c (warn_for_assignment): Likewise.
5155         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
5156         Likewise.
5157         * cppinit.c (output_deps): Likewise.
5158         * dependence.c (dependence_string, direction_string): Likewise.
5159         * dwarf2out.c (output_ranges): Likewise.
5160         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
5161         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
5162         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
5163         standard_startfile_prefix, standard_startfile_prefix_1,
5164         standard_startfile_prefix_2, tooldir_base_prefix,
5165         standard_bindir_prefix, find_a_file): Likewise.
5166         * genattrtab.c (make_length_attrs): Likewise.
5167         * gencheck.c (tree_codes): Likewise.
5168         * genemit.c (gen_split): Likewise.
5169         * genrecog.c (special_mode_pred_table): Likewise.
5170         * graph.c (graph_ext): Likewise.
5171         * protoize (default_include): Likewise.
5172         * reload.c (reload_when_needed_name): Likewise.
5173         * sched-vis.c (visualize_stall_cycles): Likewise.
5174         * tlink.c (recompile_files): Likewise.
5175         * toplev.c (decode_g_option): Likewise.
5176         * tradcpp.c (output_deps): Likewise.
5177         * varasm.c (decode_reg_name): Likewise.
5178
5179         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
5180         Const-ification.
5181         * arm.md: Likewise.
5182         * avr.c (avr_regnames, encode_section_info): Likewise.
5183         * c4x.c (float_reg_names): Likewise.
5184         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
5185         * elfos.h (const_section): Likewise.
5186         * i386.c (ix86_comp_type_attributes): Likewise.
5187         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
5188         * ia64/aix.h (UNIQUE_SECTION): Likewise.
5189         * ia64.c (type_names): Likewise.
5190         * m68hc11.c (reg_class_names): Likewise.
5191         * m88k.c (m_options): Likewise.
5192         * mips.c (mips_output_conditional_branch, mips_unique_section):
5193         Likewise.
5194         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5195         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
5196         ultra_code_names): Likewise.
5197         * sparc.h (OVERRIDE_OPTIONS): Likewise.
5198
5199 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
5200
5201         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
5202         Use --fatal-warnings option for gas.
5203         * configure: Rebuilt.
5204
5205 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5206
5207         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
5208
5209 2001-09-11  Jim Wilson  <wilson@redhat.com>
5210
5211         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
5212
5213 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5214
5215         * builtins.c (c_strlen): Treat an offset too large for a
5216         HOST_WIDE_INT as out of range.
5217
5218 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
5219
5220         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
5221         (EDGE_CRITICAL_P): New predicate.
5222         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
5223         handling.
5224         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
5225         (dump_edge_info): Remove "crit".
5226         * cfganal.c (mark_critical_edges): Kill.
5227         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
5228         * cfgcleanup.c (cleanup_cfg): Likewise.
5229         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
5230         (find_spanning_tree): Likewise.
5231         * reg-stack.c (convert_regs_1): Likewise.
5232         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
5233
5234         * basic-block.h (create_basic_block_structure): New.
5235         (create_basic_block): Update prototype.
5236         (force_nonfallthru): New.
5237         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
5238         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
5239         handle updating of block_for_insn, creating of empty BBs and BBs at
5240         the end of INSN chain.
5241         (create_basic_block): New function.
5242         (split_block): Use create_basic_block.
5243         (force_nonfallthru_and_redirect): Break out from ...; cleanup
5244         (redirect_edge_and_branch_force): ... here.
5245         (force_nonfallthru): New.
5246         (split_edge): Rewrite to use force_nonfallthru and create_block.
5247         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
5248         (find_basic_blocks): Free basic_block_for_insn.
5249         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
5250
5251         * cfg.c: Fix formating.
5252         * cfgcleanup.c: Fix formating.
5253         (merge_blocks, tail_recursion_label_p): Return bool.
5254         (merge_blocks_move_predecessor_nojumps,
5255          merge_blocks_move_successor_nojumps): Return void.
5256
5257 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
5258
5259         * configure.in: Check whether assembler supports section merging.
5260         * config.in: Rebuilt.
5261         * configure: Rebuilt.
5262         * varasm.c (variable_section, output_constant_pool): Pass alignment
5263         to SELECT_SECTION and SELECT_RTX_SECTION.
5264         (mergeable_string_section): New.
5265         (mergeable_constant_section): New.
5266         (default_elf_asm_named_section): Output SECTION_MERGE and
5267         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
5268         * output.h (mergeable_string_section): New.
5269         (mergeable_constant_section): New.
5270         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
5271         * toplev.c (flag_merge_constants): New.
5272         (f_options): Add -fmerge-constants and -fmerge-all-constants
5273         options.
5274         (toplev_main): Default to -fno-merge-constants if not optimizing.
5275         * flags.h (flag_merge_constants): Add extern.
5276         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
5277         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
5278         argument.
5279         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
5280         Define if assembler has working .subsection -1 support.
5281         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
5282         Put constant into special SHF_MERGE sections if the linker should
5283         attempt to merge duplicates.
5284         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
5285         macro argument.
5286         Put constant into special SHF_MERGE sections if the linker should
5287         attempt to merge duplicates.
5288         * config/alpha/elf.h: Likewise.
5289         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
5290         has working .subsection -1 support.
5291         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
5292         SELECT_SECTION.
5293         * config/svr3.h: Likewise.
5294         * config/darwin.h: Likewise.
5295         * config/arm/aof.h: Likewise.
5296         * config/arm/linux-elf.h: Likewise.
5297         * config/avr/avr.h: Likewise.
5298         * config/c4x/c4x.h: Likewise.
5299         * config/d30v/d30v.h: Likewise.
5300         * config/i386/dgux.h: Likewise.
5301         * config/i386/osfrose.h: Likewise.
5302         * config/i386/sco5.h: Likewise.
5303         * config/i386/svr3gas.h: Likewise.
5304         * config/ia64/aix.h: Likewise.
5305         * config/m32r/m32r.h: Likewise.
5306         * config/m68k/m68k.h: Likewise.
5307         * config/m88k/dgux.h: Likewise.
5308         * config/m88k/m88k.h: Likewise.
5309         * config/mcore/mcore-pe.h: Likewise.
5310         * config/mips/mips.h: Likewise.
5311         * config/pa/pa.h: Likewise.
5312         * config/pa/pa-linux.h: Likewise.
5313         * config/romp/romp.h: Likewise.
5314         * config/rs6000/sysv4.h: Likewise.
5315         * config/rs6000/xcoff.h: Likewise.
5316         * config/s390/linux.h: Likewise.
5317         * config/sparc/sparc.h: Likewise.
5318         * config/sparc/sysv4.h: Likewise.
5319         * config/stormy16/stormy16.h: Likewise.
5320         * config/v850/v850.h: Likewise.
5321         * config/vax/vms.h: Likewise.
5322         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
5323         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
5324         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
5325         default_elf_asm_named_section for SHF_MERGE sections.
5326
5327 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
5328
5329         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
5330         is OK.
5331
5332 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
5333
5334         * c-common.c (split_specs_attrs): Allow for empty attributes with
5335         empty TREE_PURPOSE.  Fixes PR c/4294.
5336
5337 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
5338
5339         * basic-block.h (cached_make_edge, make_single_succ): New.
5340         (make_edge): Remove first parameter.
5341         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
5342         * cfg.c (cached_make_edge): Rename from make_edge; return newly
5343         created edge; use obstack allocation.
5344         (make_edge, make_single_succ_edge): New.
5345         (first_removed_edge): New static variable.
5346         (init_flow): Initialize first_removed_edge and n_edges.
5347         (clear_edges): Use remove_edge.
5348         (flow_delete_block): Likewise.
5349         (remove_edge): Add removed edges to the removed edges list.
5350         (split_block, redirect_edge_and_branch_force, split_edge):
5351         Use make_edge.
5352         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
5353         (add_noreturn_fake_exit_edges): Likewise.
5354         (connect_infinite_loops_to_exit): Liekwise.
5355         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
5356         Use cached_make_edge.
5357         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
5358         * profile.c (branch_prob): Update make_edge call.
5359         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
5360
5361 2001-09-11  Richard Henderson  <rth@redhat.com>
5362
5363         * config/alpha/alpha.c: Tidy formatting.
5364         (local_symbolic_operand): Verify mode.
5365         (alpha_sa_mask): Ignore unicos for eh_return.
5366         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
5367         * config/alpha/alpha.md (umk divsi patterns): Remove.
5368         (extendsfdf2): Remove unicos check.
5369         (tablejump): Merge vms and unicos code; always use direct set
5370         plus label_ref use.
5371
5372 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5373
5374         * config.gcc (alpha*-*-unicosmk*): New target.
5375
5376         * config/alpha/alpha-protos.h (symbolic_operand,
5377         unicosmk_add_call_info_word, unicosmk_add_extern,
5378         unicosmk_defer_case_vector, unicosmk_unique_section,
5379         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
5380         unicosmk_asm_file_start, unicosmk_asm_file_end,
5381         unicosmk_output_common): Declare.
5382
5383         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
5384         direct_return, function_arg, alpha_va_start, alpha_va_arg,
5385         alpha_does_function_need_gp, alpha_end_function): Support Cray
5386         Unicos/Mk.
5387         (alpha_init_machine_status, alpha_mark_machine_status,
5388         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
5389         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
5390         unicosmk_asm_named_section, unicosmk_insert_attributes,
5391         unicosmk_section_type_flags, symbolic_operand,
5392         unicosmk_output_module_name, unicosmk_output_default_externs,
5393         unicosmk_output_dex, unicosmk_output_externs,
5394         unicosmk_output_addr_vec, unicosmk_ssib_name,
5395         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
5396         unicosmk_asm_file_end, unicosmk_output_common,
5397         unicosmk_section_type_flags, unicosmk_unique_section,
5398         unicosmk_add_call_info_word, unicosmk_text_section,
5399         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
5400         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
5401         unicosmk_dex_count, unicosmk_special_name): New.
5402         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
5403         TARGET_ABI_UNICOSMK.
5404         (get_aligned_mem, alpha_expand_unaligned_load,
5405         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
5406         alpha_expand_unaligned_store_words): Support big-endian mode.
5407         (print_operand): Likewise. New format specifier 't'. Use
5408         TARGET_AS_SLASH_BEFORE_SUFFIX.
5409         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
5410         (alpha_pv_save_size): Update with above change.
5411         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
5412         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
5413         Unicos/Mk.
5414
5415         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
5416         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
5417         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
5418         (EXTRA_CONSTRAINT): New constraint 'U'.
5419         (PREDICATE_CODES): Add symbolic_operand.
5420
5421         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
5422         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
5423         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
5424         (integer division and modulus patterns): Split in default and
5425         Unicos/Mk versions.
5426         (*divmodsi_internal, *divmoddi_internal): Disable for
5427         TARGET_ABI_UNICOSMK.
5428         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
5429         little-endian and big-endian versions.
5430         (ext, ins, msk): Likewise.
5431         (extv, extzv, insv): Support big-endian mode.
5432         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
5433         (call_umk, call_value_umk, *call_umk, tablejump_umk,
5434         *tablejump_umk_internal, *call_value_umk): New.
5435         (*movdi_nofix): Add pattern for loading an address into a register on
5436         TARGET_ABI_UNICOSMK.
5437         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
5438         (umk_mismatch_args, arg_home_umk): New.
5439         (various insns): Don't use mov, fmov, nop, fnop and unop.
5440         (realign): Support TARGET_ABI_UNICOSMK.
5441
5442         * config/alpha/unicosmk.h: New file.
5443         * config/alpha/t-unicosmk: New file.
5444
5445         * fixinc/inclhack.def (unicosmk_restrict): New.
5446         * fixinc/fixincl.x: Regenerate.
5447
5448         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
5449         (wchar_t): Check for and define __WCHAR_T__.
5450
5451 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
5452
5453         * combine.c (simplify_shift_const): Treat shifts by the mode
5454         size as undefined.
5455
5456 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5457
5458         * cpphash.h (struct tokenrun): New.
5459         (struct cpp_context): New member bol.
5460         (struct cpp_reader): New members.
5461         (_cpp_init_tokenrun): New.
5462         * cppinit.c (cpp_create_reader): Set up the token runs.
5463         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
5464         (lex_token): New internalised version of _cpp_lex_token.  Don't
5465         handle directives or the multiple include opimisation here any
5466         more.  Simply lex a token.
5467         * cpplib.c (run_directive): Clear bol.
5468         (_cpp_pop_buffer): Set bol.
5469         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
5470         arguments.
5471
5472 2001-09-11  Michael Meissner  <meissner@redhat.com>
5473
5474         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
5475         give an error if the user uses -mfp32.
5476         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
5477         default options.
5478         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
5479         floating point register size.
5480         (EXTRA_SPECS): Add CPP_FPR_SPEC.
5481
5482         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
5483         HOST_WIDE_INT_PRINT_DEC to properly print the result of
5484         int_size_in_bytes.
5485         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
5486         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
5487
5488 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
5489
5490         * dbxout.c (dbxout_parms): Fix typo in comment.
5491         * unroll.c (loop_find_equiv_value): Ditto.
5492         * toplev.c (rest_of_compilation): Ditto.
5493         * loop.c (scan_loop): Ditto.
5494         * dwarf2out.c (struct dw_fde_struct): Ditto.
5495
5496 2001-09-10  Zack Weinberg  <zackw@panix.com>
5497
5498         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
5499         copying identifier when we're just going to throw it away.
5500         (parse_identifier_slow): New routine to handle abnormal cases.
5501         (_cpp_lex_token): Update call site.
5502
5503         * hashtable.c (ht_lookup): Don't assume that the string we've
5504         been given is NUL-terminated.
5505         * system.h: #define __builtin_expect(a, b) to (a) if not
5506         GCC >=3.0.
5507
5508 2001-09-10  Michael Meissner  <meissner@redhat.com>
5509
5510         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
5511         binutils, gdb.
5512
5513 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
5514
5515         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
5516
5517 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5518
5519         * builtins.c (c_getstr): Correct thinko in last change and further
5520         cleanup.
5521
5522 2001-09-10  Tim Freeman <tim@fungibole.com>
5523
5524         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
5525         into varray's and register them as roots with the garbage
5526         collector so they are not collected too soon.
5527
5528 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
5529
5530         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
5531         New.
5532         * basic-block.h (flow_obstack, label_value_list,
5533         tail_recursion_label_list): Declare
5534         (tidy_fallthru_edges): Declare.
5535         (expunge_block, last_loop_beg_note): Delete.
5536         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
5537         * cfg.c: New file
5538         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
5539         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
5540         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
5541         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
5542         expunge_block, flow_delete_block, compute_bb_for_insn,
5543         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
5544         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
5545         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
5546         try_redirect_by_replacing_jump, last_loop_beg_note,
5547         redirect_edge_and_branch, redirect_edge_and_branch_force,
5548         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
5549         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
5550         commit_edge_insertions, dump_flow_info, debug_flow_info,
5551         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
5552         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
5553         Move here from flow.c
5554         * cfganal.c: New file.
5555         (forwarder_block_p, can_fallthru, mark_critical_edges,
5556          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
5557          find_unreachable_blocks, create_edge_list, free_edge_list,
5558          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
5559          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
5560          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
5561          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
5562          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
5563          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
5564         Move here from flow.c
5565         * cfgbuild.c: New file
5566         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
5567          make_edges, find_basic_blocks_1, find_basic_blocks,
5568          find_sub_basic_blocks): Move here from flow.c
5569         * cfgcleanup.c: New file.
5570         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
5571          merge_blocks_move_predecessor_nojumps,
5572          merge_blocks_move_successor_nojumps, merge_blocks,
5573          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
5574          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
5575         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
5576         if succeeded.
5577         * cfgloop.c: New file
5578         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
5579          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
5580          flow_loop_exit_edges_find, flow_loop_nodes_find,
5581          flow_loop_pre_header_scan, flow_loop_pre_header_find,
5582          flow_loop_tree_node_add, flow_loops_tree_build,
5583          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
5584          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
5585         Move here from flow.c
5586         * flow.c: Remove everything moved elsewhere
5587         * output.h (cleanup_cfg): Return bool.
5588
5589         * bb-reorder.c (reorder_block_def): Remove 'index'.
5590         (insert_intra_1): Add argument BB, set block for new note.
5591         (make_reorder_chain): Do not depdent on BB indexes.
5592         (make_reorder_chain_1): Do not use BB indexes.
5593         (label_for_bb): Likewise; set BB for new insn.
5594         (emit_jump_to_block_after): Likewise.
5595         (fixup_reoder_chain): Sanity check that all basic blocks
5596         are chained; verify newly created insn chain; remove
5597         undocnitional jump simplifying; Do not use BB indexes;
5598         properly initialize count and frequency information;
5599         dump reordered sequence.
5600         (insert_intra_bb_scope_notes): update call of insert_intra_1.
5601         (insert_inter_bb_scope_notes): Set block for new insn.
5602         (reorder_basic_blocks): Dump flow info before reoredering.
5603
5604 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5605
5606         * alias.c (clear_reg_alias_info): Use K&R format definition.
5607         Avoid unsigned warning.
5608         * builtins.c: Use "unsigned int", not "unsigned".
5609         (target_char_cast): Use host_integerp and tree_low_cst.
5610         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
5611         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
5612         (c_getstr): Likewise.
5613         (std_expand_builtin_va_arg): Use int_size_in_bytes.
5614         (builtin_memcpy_read_str): Avoid unsigned warning.
5615         (expand_builtin_memcpy): Alignments are unsigned.
5616         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
5617         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
5618         * predict.c (expensive_function_p): LIMIT now unsigned.
5619         * resource.c (mark_target_live_regs): Make some vars unsigned.
5620         * sdbout.c: Use "unsigned int", not "unsigned".
5621         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
5622         (sdbout_source_line): Likewise.
5623         (sdbout_record_type_name): Remove "const" for NAME declaration.
5624         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
5625
5626 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
5627
5628         * calls.c (store_one_arg): Expand comment.
5629
5630 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5631
5632         * calls.c (store_one_arg): Make sure that the entire argument is
5633         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
5634
5635 2001-09-09  Richard Henderson  <rth@redhat.com>
5636
5637         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
5638
5639 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
5640
5641         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
5642
5643 2001-09-09  Richard Henderson  <rth@redhat.com>
5644
5645         * config/alpha/alpha.c (alpha_next_sequence_number): New.
5646         (alpha_this_literal_sequence_number): New.
5647         (alpha_this_gpdisp_sequence_number): New.
5648         (some_operand, input_operand): Add HIGH.
5649         (local_symbolic_operand): New.
5650         (alpha_encode_section_info): New.
5651         (alpha_legitimate_address_p): Allow LO_SUM.
5652         (alpha_legitimize_address): Generate HIGH+LO_SUM.
5653         (alpha_expand_mov): Likewise.
5654         (secondary_reload_class): Check memory_operand not general_operand
5655         for FP_REGS test.
5656         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
5657         (alpha_expand_unaligned_store): Likewise.
5658         (alpha_expand_unaligned_load_words): Likewise.
5659         (alpha_expand_unaligned_store_words): Likewise.
5660         (alpha_expand_block_clear): Likewise.
5661         (print_operand): Handle %#, %*, %H.
5662         (print_operand_address): Handle LO_SUM.
5663         (find_lo_sum): New.
5664         (alpha_does_function_need_gp): Use it.
5665         (alpha_expand_block_move): Fix signed compare warnings.
5666         (alpha_sa_mask, alpha_align_insns): Likewise.
5667         * config/alpha/alpha-protos.h: Update.
5668         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
5669         (MASK_EXPLICIT_RELOCS): New.
5670         (TARGET_SWITCHES): Add -mexplicit-relocs.
5671         (EXTRA_CONSTRAINT): Add 'T'.
5672         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
5673         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
5674         (ENCODE_SECTION_INFO): Out line.
5675         (REDO_SECTION_INFO_P): New.
5676         (STRIP_NAME_ENCODING): New.
5677         (ASM_OUTPUT_LABELREF): New.
5678         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
5679         (PREDICATE_CODES): Update.
5680         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
5681         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
5682         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
5683         builtin_setjmp_receiver_er, exception_receiver_1_er,
5684         call_value_osf_1_er): New patterns.
5685         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
5686         (movqi, movhi, movsi): Add explicit $31 base register to lda.
5687         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
5688         (FINAL_PRESCAN_INSN): New.
5689
5690 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
5691
5692         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
5693
5694 2001-09-08  Andreas Jaeger  <aj@suse.de>
5695
5696         * i386.h (TARGET_SWITCHES): Fix description.
5697
5698 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
5699
5700         * rs6000.c (num_insns_constant): Compute number of instructions
5701         more accurately.
5702
5703         * doc/install.texi: Explain AIX exception handling work-around.
5704         Update URL for AIX fixes.
5705
5706 2001-09-07  Jim Wilson  <wilson@redhat.com>
5707
5708         * alias.c (clear_reg_alias_info): New.
5709         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
5710         * rtl.h (clear_reg_alias_info): Declare.
5711
5712 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5713
5714         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
5715         available.
5716         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
5717         (m16m,edivm,emulm): Change declaration to match definition.
5718
5719 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
5720
5721         * reload.c (push_reload): Check for subreg_lowpart_p instead of
5722         SUBREG_BYTE being 0 when determining if the inner part of a subreg
5723         can be reloaded.
5724
5725 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5726
5727         * c-common.c (signed_or_unsigned_type): Handle machine mode types
5728         which have no corresponding C type.
5729         * fold_const.c (target_isinf,target_isnan,target_negative): Update
5730         the representation of 64-bit doubles to work with 64-bit ints.
5731
5732 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
5733
5734         * config/mips/mips.c (override_options): Do not override ISA when ABI
5735         specified if MIPS_CPU_STRING_DEFAULT was specified.
5736
5737 2001-09-07  Richard Henderson  <rth@redhat.com>
5738
5739         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
5740         (express_from_1): Wrap lines.
5741         * rtlanal.c (commutative_operand_precedence): Rename from
5742         operand_preference; export.
5743         * rtl.h: Declare it.
5744         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
5745         (simplify_binary_operation): Invoke simplify_plus_minus on
5746         (CONST (PLUS ...)) as well.
5747         (struct simplify_plus_minus_op_data): New.
5748         (simplify_plus_minus_op_data_cmp): New.
5749         (simplify_plus_minus): Use them.  Avoid infinite recursion with
5750         simplify_binary_operation wrt CONST.
5751
5752 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
5753
5754         * h8300-protos.h (general_operand_dst_push): Remove.
5755         * h8300.c (general_operand_dst_push): Likewise.
5756         * h8300.h (OK_FOR_T): Likewise.
5757         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
5758         * h8300.md (pushqi_h8300): New.
5759         (pushqi_h8300hs): Likewise.
5760         (pushqi): Likewise.
5761         (pushhi_h8300): Likewise.
5762         (pushhi_h8300hs): Likewise.
5763         (pushhi): Likewise.
5764
5765 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5766
5767         * genattrtab.c (attr_printf): First arg is unsigned.
5768         Clean up formatting of callers.
5769
5770 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
5771
5772         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
5773         registers.
5774
5775 2001-09-07  Andreas Jaeger  <aj@suse.de>
5776
5777         * i386.h (TARGET_SWITCHES): Fix descriptions.
5778
5779 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5780
5781         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
5782
5783 2001-09-06  Ira Ruben  <ira@apple.com>
5784
5785         Remove OP_IDENTIFIER.
5786         * tree.def (OP_IDENTIFIER): Remove.
5787         * tree.c (tree_node_kind enum): Remove op_id_kind.
5788         (tree_node_kind_names): Remove "op_identifiers".
5789         (make_node): Remove OP_IDENTIFIER test.
5790         (build_op_identifier): Removed because it isn't being used.
5791         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
5792         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
5793
5794 2001-09-06  Richard Henderson  <rth@redhat.com>
5795
5796         * simplify-rtx.c (simplify_binary_operation): Revert last change.
5797
5798 2001-09-06  Richard Henderson  <rth@redhat.com>
5799
5800         * simplify-rtx.c (simplify_binary_operation): Simplify contents
5801         of CONST.
5802
5803 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5804
5805         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
5806         number used for CR register.
5807
5808 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
5809                           Joern Rennecke (amylaar@cygnus.com)
5810
5811         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
5812         * h8300.c (initial_offset): Handle offset between RP and FP.
5813         (h8300_return_addr_rtx): New function.
5814         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
5815         return register.
5816         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
5817         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
5818         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
5819         (CAN_ELIMINATE, REGISTER_NAMES):
5820         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
5821
5822 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
5823
5824         Remove TYPE_NONCOPIED_PARTS.
5825         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
5826         (struct tree_type): Remove noncopied_parts.
5827         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
5828         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
5829         (fixed_type_p): Remove.
5830         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
5831         (expand_expr, MODIFY_EXPR): Likewise.
5832         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
5833         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
5834
5835 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
5836
5837         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
5838         compiler warnings.
5839         (mask64_operand): Likewise.
5840         (includes_rldic_lshift_p): Likewise.
5841         (includes_rldicr_lshift_p): Likewise.
5842
5843 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
5844
5845         * objc/objc-act.c (build_message_expr): If a class method cannot
5846         be found, do not issue a warning if a corresponding instance
5847         method exists in the root class.
5848
5849 2001-09-05  Richard Henderson  <rth@redhat.com>
5850
5851         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
5852
5853 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
5854
5855         * function.c (ggc_mark_struct_function): Mark f->outer.
5856         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
5857         * integrate.c (output_inline_function): ... not here.
5858
5859 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
5860
5861         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
5862
5863         * i386.c (size_cost): New static variable.
5864         (override_function): Use size_cost when -Os is specified.
5865
5866         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
5867         properly;  Use current_function_calls_eh_return.
5868         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
5869         use leave to avoid dependency chain.
5870
5871         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
5872         get BB loop_depth instead of computing it from LOOP notes.
5873
5874         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
5875
5876 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5877
5878         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5879         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5880         UNALIGNED_DOUBLE_INT_ASM_OP): Define
5881
5882 2001-09-05  Jeffrey A Law  (law@cygnus.com)
5883             Jason Merrill (jason@redhat.com)
5884
5885         * stor-layout.c (layout_type): Complain if an array's size can
5886         not be represented in a size_t.
5887
5888         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
5889
5890 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
5891
5892         * gcc.c: (process_command) Add parentheses around assignment
5893         used as truth value.
5894
5895 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
5896
5897         * config/mips/mips.c (save_restore_insns): Don't mark any register
5898         save slots as unchanging if current_function_calls_eh_return.
5899
5900 2001-09-05  Richard Henderson  <rth@redhat.com>
5901
5902         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
5903         * config/alpha/alpha-protos.h: Declare it.
5904         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
5905         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
5906         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
5907         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
5908         (REG_OK_FOR_BASE_P): Select one of the above.
5909
5910 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
5911
5912         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
5913         (crti.o): Prefix name of object file with $(T).
5914         (crtn.o): Likewise.
5915
5916 2001-09-05  David S. Miller  <davem@redhat.com>
5917
5918         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
5919         * config/sparc/linux64.h: Likewise.
5920
5921 2001-09-05  Andreas Jaeger  <aj@suse.de>
5922
5923         * doc/invoke.texi (i386 Options): -mwide-multiply is not
5924         available anymore, remove the documentation.
5925         (i386 Options): Fix typo, cleanup index entries.
5926
5927         * prefix.c (concat): Remove, we can use the version from liberty.
5928
5929 2001-09-05  Richard Henderson  <rth@redhat.com>
5930
5931         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
5932         New functions split out of md file expanders.
5933         * config/alpha/alpha-protos.h: Declare them.
5934         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
5935
5936 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
5937
5938         * cppmacro.c (funlike_invocation_p): No need to restore context.
5939
5940 2001-09-04  Richard Henderson  <rth@redhat.com>
5941
5942         * reload.c (push_reload): Export.
5943         * reload.h (push_reload): Declare it.
5944
5945         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
5946         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
5947         * config/alpha/alpha.c (alpha_legitimize_address): New.
5948         (alpha_legitimize_reload_address): Likewise.
5949         * config/alpha/alpha-protos.h: Declare them.
5950
5951 2001-09-04  Stan Shebs  <shebs@apple.com>
5952
5953         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
5954         * config/darwin.c (machopic_stub_name): Account for internally
5955         generated lib calls such as memcpy.
5956
5957 2001-09-04  Richard Henderson  <rth@redhat.com>
5958
5959         * unwind.h (_UA_END_OF_STACK): New flag.
5960         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
5961
5962 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
5963
5964         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
5965
5966 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
5967
5968         * config/mips/mips.c (save_restore_insns): Change base_offset to
5969         fp_offset in second call to mips_emit_frame_related_store.
5970
5971 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
5972
5973         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
5974         sometimes be represented as a NOTE of type
5975         NOTE_INSN_DELETED_LABEL.
5976         (Insns): Document NOTE_INSN_DELETED_LABEL.
5977
5978 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
5979
5980         * c-common.h (tree_dump_index): Add more comments.
5981         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
5982         (dump_option_value_info): New struct.
5983         (dump_options): New array.
5984         (dump_switch_p): Parse switch options symbolically.
5985         * doc/invoke.texi (-fdump-ast): Rename to ...
5986         (-fdump-tree): ... here. Document that options are symbolic, and
5987         not all are applicable.
5988
5989 2001-09-04  David S. Miller  <davem@redhat.com>
5990
5991         * config/sparc/sparc.md (define_splits): Kill constraints.
5992
5993         Cleanup redundant and unused insn attributes.
5994         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
5995         binary, and move.  Mark ialu as default.
5996         (commented out define_function_unit "alu"): Kill.
5997         (define_attr "use_clobbered"): Kill.
5998         (whole file): Kill address insn type references.  Replace
5999         all unary/binary/move references with ialu.
6000         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
6001         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
6002         TYPE_IALU.
6003
6004         Simplify length insn attribute and make more judicious use
6005         of insn attribute defaulting.
6006         * config/sparc/sparc.md (all insns with length > one): Mark as
6007         insn type multi if real instructions, else use default if
6008         it is a forced splitter.
6009         (all insns with length == one): Use default insn length.
6010         (all insns of type ialu): Use default insn type.
6011
6012         Fix erroneous insn attribute settings.
6013         (addx): Set insn type to misc.
6014         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
6015         const_umulsidi3_sp64): Set insn type to imul.
6016
6017         Track SFmode vs DFmode insns according to UltraSPARC
6018         scheduling rules.
6019         * config/sparc/sparc.md ("fptype"): New attribute, default
6020         to "single".
6021         (all DFmode single insns): Mark as fptype "double".
6022
6023 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
6024
6025         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
6026
6027 2001-09-03  Richard Henderson  <rth@redhat.com>
6028
6029         * function.h (struct function): Add arg_pointer_save_area_init.
6030         * function.c (expand_function_end): Init arg_pointer_save_area.
6031         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
6032         when called from a nested function.
6033
6034 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
6035
6036         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
6037         is enabled.
6038
6039 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
6040
6041         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
6042
6043 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
6044
6045         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
6046         (emit_push_insn): Use specified padding direction when
6047         STACK_PUSH_CODE is POST_INC.
6048
6049         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
6050
6051 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6052
6053         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
6054
6055 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6056
6057         * cppinit.c (cpp_start_read): Free the imacros list as we
6058         traverse it.  Don't free the chains before returning.
6059         (_cpp_push_next_buffer): Only try pushing buffers if we've
6060         completed -imacros handling.
6061
6062 2001-08-31  Eric Christopher  <echristo@redhat.com>
6063
6064         * gcc.c (handle_braces): Add explaination for abort.
6065
6066 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
6067
6068         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
6069         move adjustment of bitpos instead.
6070
6071 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
6072
6073         * function.c: Remove all_functions.  Make outer_function_chain
6074         static.
6075         (init_function_start): Don't add new function structure to
6076         all_functions.
6077         (find_function_data, push_function_context_to,
6078         pop_function_context_from, put_var_into_stack,
6079         trampoline_address): Update for changed structure element names.
6080         (push_function_context_to): Disentangle.
6081         (free_after_compilation): Also free F.
6082         (expand_dummy_function_end): Don't free cfun here.
6083         (put_var_into_stack): Comment why we can't use find_function_data here.
6084         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
6085         (mark_function_chain): Split into maybe_mark_struct_function and
6086         ggc_mark_struct_function.  Export the latter.
6087         (init_function_once): Mark from cfun and outer_function_chain;
6088         not all_functions.
6089
6090         * function.h (struct function): Kill next_global.  Rename next
6091         to outer.  All users updated to match.
6092         (all_functions, outer_function_chain): Don't declare.
6093
6094         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
6095         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
6096         don't touch f->inlinable, after calling rest_of_compilation.
6097
6098         * tree.h: Forward-declare struct function.  Prototype
6099         ggc_mark_struct_function.
6100
6101 2001-08-31  Kazu Hirata  <kazu@hxi.com>
6102
6103         * config/h8300/h8300.md (*andorhi3): Fix typos.
6104
6105 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6106
6107         * calls.c (emit_library_call_value): Don't use a fixed
6108         argument after VA_CLOSE, i.e. out of scope in traditional C.
6109
6110         * emit-rtl.c (gen_rtvec): Likewise.
6111
6112 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6113
6114         * Makefile.in (c-pragma.o): Depend on output.h.
6115         (reorg.o): Depend on except.h.
6116
6117         * c-pragma.c: Include output.h.
6118
6119         * reorg.c: Include except.h.
6120
6121         * unwind-dw2.c: Call __builtin_alloca, not alloca.
6122
6123 2001-08-31  Richard Henderson  <rth@redhat.com>
6124
6125         * sched-deps.c (add_dependence): Don't elide dependency if the
6126         conditional used by insn is modified in elem.
6127
6128 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
6129
6130         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
6131
6132 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
6133
6134         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
6135         dump_switch_p.
6136
6137 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
6138
6139         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
6140         function.
6141         (stormy16_asm_out_constructor): New function.
6142         (TARGET_ASM_CONSTRUCTOR): Define.
6143         (TARGET_ASM_DESTRUCTOR): Define.
6144
6145 2001-08-31  Andreas Jaeger  <aj@suse.de>
6146
6147         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
6148         * loop.c (add_label_notes): Likewise.
6149         * reload.c (find_reloads): Likewise.
6150         * config/sh/sh.c (machine_dependent_reorg): Likewise.
6151
6152 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
6153
6154         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
6155         code here.  Take _Unwind_{W,Sw}ord*.
6156         (read_encoded_value_with_base): Use them.
6157         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
6158         words.
6159         (extract_cie_info): Simplify read_?leb128 handling.
6160         (execute_stack_op, execute_cfa_program): Likewise.
6161         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
6162
6163 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
6164
6165         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
6166         the frame pointer to pop the stack if convenient.
6167
6168         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
6169         Don't use post-increment before combine.
6170         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
6171         a call-saved register.
6172
6173 2001-08-31  Andreas Jaeger  <aj@suse.de>
6174
6175         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
6176         code was correct.
6177
6178 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
6179
6180         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
6181         not DIV/MOD, of course.
6182
6183 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
6184
6185         * rtl.def: Undo my patch commited 2001-08-27.
6186
6187         * genattrtab.c: Ditto.
6188
6189         * rtl.h: Ditto.
6190
6191         * sched-int.h: Ditto.
6192
6193         * target-def.h: Ditto.
6194
6195         * target.h: Ditto.
6196
6197         * haifa-sched.c: Ditto.
6198
6199         * sched-rgn.c: Ditto.
6200
6201         * sched-vis.c: Ditto.
6202
6203         * Makefile.in: Ditto.
6204
6205         * doc/md.texi: Ditto.
6206
6207         * doc/tm.texi: Ditto.
6208
6209         * doc/contrib.texi: Ditto.
6210
6211         * doc/gcc.texi: Ditto.
6212
6213         * genattrtab.h: Remove it.
6214
6215         * genautomata.c: Remove it.
6216
6217         * genattr.c: Undo my patch and Richard Henderson's patch commited
6218         2001-08-27.
6219
6220 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
6221
6222         * config.gcc (h8300-*-elf*): New case.
6223         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
6224         (SUBTARGET_CPP_SPEC): Define.
6225         (EXTRA_SPECS): Define.
6226         (SUBTARGET_EXTRA_SPECS): Define.
6227         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
6228         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
6229
6230 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
6231
6232         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
6233         (LIB2FUNCS_EXTRA): Define.
6234         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
6235         config/h8300/fixunssfsi.c: New file.
6236
6237 2001-08-30  Kazu Hirata  <kazu@hxi.com>
6238
6239         * config/h8300/h8300.md (zero_extendqihi2): Changes to
6240         define_expand to accommodate target-specific attributes.
6241         (anonymous zero_extendqihi2 patterns): New.
6242
6243 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
6244
6245         * h8300.md (*andorhi3): New pattern.
6246
6247 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
6248
6249         * h8300.c (dosize): Fix test for "sub".
6250
6251 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
6252
6253         * c-typeck.c (pointer_diff): Try to eliminate common term before
6254         doing conversions.
6255
6256 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
6257
6258         * config/arm/arm.c (arm_compute_initial_elimination_offset):
6259         Account for the saves of the FP registers.
6260
6261         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
6262         (TEXT_SECTION_ASM_OP): Define.
6263         (INIT_SECTION_ASM_OP): Define.
6264         (FINI_SECTION_ASM_OP): Define.
6265         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
6266         (RDATA_SECTION_FUNCITON): Provide prototype.
6267
6268 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
6269
6270         * reload1.c (move2add_note_store): Correct typo checking for
6271         argument pushes.
6272
6273 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
6274
6275         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
6276         note should not be considered outside the libcall block.
6277
6278 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6279
6280         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
6281
6282 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6283
6284         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
6285
6286 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6287
6288         * config/h8300/h8300-protos.h: Add a prototype for
6289         emit_logical_op.
6290         * config/h8300/h8300.c (emit_logical_op): New.
6291         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
6292         (andsi3): Likewise.
6293         (iorhi3): Likewise.
6294         (iorsi3): Likewise.
6295         (xorhi3): Likewise.
6296         (xorsi3): Likewise.
6297
6298 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6299
6300         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
6301         comparison with rtx INTVAL.
6302         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
6303         expression.
6304         * pa.h (FUNCTION_ARG_SIZE): Likewise.
6305
6306 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6307
6308         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
6309         comment typos.
6310
6311 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6312
6313         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
6314         (reg n) to (mem (pre_dec (reg n))
6315         (anonymous movsi pattern): Likewise.
6316
6317 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6318
6319         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
6320
6321 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6322
6323         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
6324         several special constants.
6325
6326 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6327
6328         * config/h8300/lib1funcs.asm: Fix comment typos.
6329
6330 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6331
6332         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
6333         Fix format specifier warnings.
6334
6335         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
6336         inet_makeaddr, semctl): Prototype.
6337
6338         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
6339         (save_restore_insns): Use base_offset, not gp_offset.
6340
6341         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
6342         (ASM_OUTPUT_BYTE): Fix format specifier warning.
6343
6344 2001-08-29  Richard Henderson  <rth@redhat.com>
6345
6346         * bb-reorder.c (function_tail_eff_head): New.
6347         (record_effective_endpoints): Set it.
6348         (fixup_reorder_chain): Use it.
6349
6350 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6351
6352         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
6353
6354 2001-08-28  Dale Johannesen  <dalej@apple.com>
6355
6356         * config/darwin.c (machopic_function_base_name): Add const
6357         qualifier to a string.
6358         (darwin_encode_section_info): Ditto.
6359
6360 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6361
6362         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
6363         function definition.
6364
6365 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
6366
6367         * df.h (struct df): Add rts_order variable.
6368
6369         * df.c (df_visit_next_rts): New function.
6370         (df_visit_next): Renamed to df_visit_next_rc
6371         (df_analyse_1): Allocate/compute/free rts_order as well.
6372         (df_rd_global_compute): Use df_visit_next_rc instead of
6373         df_visit_next.
6374         (df_ru_global_compute): Use df_visit_next_rts instead of
6375         df_visit_next.
6376
6377         * flow.c (flow_reverse_top_sort_order_compute): New function.
6378
6379         * basic-block.h: Add prototype.
6380
6381 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
6382
6383         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
6384         blocks, the BB_REACHABLE is now set, rather than aux being
6385         non-NULL. Update the test to reflect this.
6386
6387 2001-08-28  Eric Christopher  <echristo@redhat.com>
6388
6389         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
6390         config/mips/crti.asm: Ditto.
6391
6392 2001-08-28  Eric Christopher <echristo@redhat.com>
6393             Richard Henderson <rth@redhat.com>
6394
6395         * c-pragma.h (add_weak): Move prototype from here...
6396         * output.h (add_weak): ... to here.
6397         * varasm.c (add_weak): Fix typo.
6398         * config/mips/crti.asm: New file.
6399         * config/mips/crtn.asm: Ditto.
6400         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
6401         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
6402         (INVOKE__main): Ditto.
6403         (INIT_SECTION_ASM_OP): New.
6404         (FINI_SECTION_ASM_OP): Ditto.
6405         (STARTFILE_SPEC): Add crti.
6406         (ENDFILE_SPEC): Add crtn.
6407         * config/mips/elf64.h: Same.
6408         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
6409         Remove.
6410         * config/mips/vxworks.h: Ditto.
6411         * config/mips/t-elf: Support crti and crtn.
6412
6413 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
6414
6415         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
6416         INSN_LIST.
6417
6418 2001-08-28  Richard Henderson  <rth@redhat.com>
6419
6420         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
6421         (one_cmplbi2 splitter): Remove redundant test.
6422
6423 2001-08-28  Dale Johannesen  <dalej@apple.com>
6424
6425         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
6426
6427 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
6428
6429         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
6430
6431 2001-08-28  Stan Shebs  <shebs@apple.com>
6432
6433         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
6434         (UNALIGNED_SHORT_ASM_OP): Define.
6435         (UNALIGNED_INT_ASM_OP): Define.
6436
6437 2001-08-28  Will Cohen  <wcohen@redhat.com>
6438
6439         * config/rs6000/rs6000.md (store_multiple): Correct RTL
6440         generation for first set.
6441
6442 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
6443
6444         * flow.c (redirect_edge_succ_nodup): Return new edge.
6445         (try_simplify_condjump): Use new edge.
6446         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
6447
6448         * cse.c (cse_basic_block): Skip note instructions.
6449
6450 2001-08-27  Richard Henderson  <rth@redhat.com>
6451
6452         * combine.c (combine_simplify_rtx): Don't reverse condition
6453         if there is no reverse for the condition.
6454         (simplify_comparison): Don't simplify subregs from INT to FP.
6455
6456         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
6457         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
6458         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
6459         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
6460         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
6461         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
6462
6463 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
6464
6465         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
6466         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
6467         (pushqi1): New.
6468         (adddi_dilshr32, adddi_dishl32): Only data register can be
6469         source for mem destination.
6470
6471         * expmed.c (store_bit_field): Ignore adjustment to bitpos
6472         and use bitnum to decide about register move.
6473
6474 2001-08-27  Richard Henderson  <rth@redhat.com>
6475
6476         * genattr.c (main): Emit state_t even when not doing scheduling.
6477
6478 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
6479             Richard Henderson  <rth@redhat.com>
6480
6481         * gcse.c (reg_first_set, reg_last_set): Replace with ...
6482         (reg_avail_info, current_bb): ... these.
6483         (oprs_unchanged_p, record_last_reg_set_info): Use them.
6484         (compute_hash_table): Likewise.
6485
6486 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
6487
6488         * flow.c (verify_flow_info): Use checksums to verify edges.
6489
6490 2001-08-27  Richard Henderson  <rth@redhat.com>
6491
6492         * genautomata.c (expand_automata): Always create a description.
6493
6494 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
6495
6496         * optabs.c (expand_binop): Correctly handle the carry in multiword
6497         add/subtract operations.
6498
6499 2001-08-27  Fred Fish  <fnf@be.com>
6500
6501         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
6502         __SIZE_TYPE__.
6503
6504 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
6505
6506         * reload.c (find_reloads_toplev): Back out this change:
6507
6508         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
6509
6510         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
6511         mem if the address is a mode_dependent_address_p.
6512
6513 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
6514
6515         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
6516         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
6517         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
6518         RTL constructions.
6519
6520         * genattr.c (main): New variable num_insn_reservations.  Increase
6521         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
6522         pipeline hazard recognizer interface.
6523
6524         * genattrtab.h: New file.
6525
6526         * genattrtab.c: Include genattrtab.h.
6527         (attr_printf, check_attr_test, make_internal_attr,
6528         make_numeric_value): Move protypes into genattrtab.h.  Define them
6529         as external.
6530         (num_dfa_decls): New global variable.
6531         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
6532         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
6533         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
6534         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
6535
6536         * genautomata.c: New file.
6537
6538         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
6539
6540         * sched-int.h: (curr_state): Add the external definition for
6541         automaton pipeline interface.
6542         (haifa_insn_data): Add comments for members blockage and units.
6543
6544         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6545         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6546         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6547         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6548         TARGET_SCHED_DFA_POST_CYCLE_INSN,
6549         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6550         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
6551         macros.
6552         (TARGET_SCHED): Use the new macros.
6553
6554         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
6555         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
6556         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
6557         dfa_bubble): New members in gcc_target.sched.
6558
6559         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
6560         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
6561         (insn_queue): Redefine it as pointer to array.
6562         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
6563         INSN_QUEUE_SIZE.
6564         (max_insn_queue_index_macro_value): New variable.
6565         (curr_state, dfa_state_size, ready_try): New varaibles for
6566         automaton interface.
6567         (ready_element, ready_remove, max_issue): New function prototypes
6568         for automaton interface.
6569         (choose_ready): New function prototype.
6570         (insn_unit, blockage_range): Add comments.
6571         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
6572         FUNCTION_UNITS_SIZE == 0.
6573         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
6574         actual_hazard, potential_hazard): Add comments.
6575         (insn_cost): Use cost -1 as undefined value.  Remove
6576         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
6577         pipeline interface.
6578         (ready_element, ready_remove): New functions for automaton
6579         interface.
6580         (schedule_insn): Add new code for automaton pipeline interface.
6581         (queue_to_ready): Add new code for automaton pipeline interface.
6582         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
6583         (debug_ready_list): Print newline when the queue is empty.
6584         (max_issue): New function for automaton pipeline interface.
6585         (choose_ready): New function.
6586         (schedule_block): Add new code for automaton pipeline interface.
6587         Print ready list before scheduling each insn.
6588         (sched_init): Add new code for automaton pipeline interface.
6589         Initiate insn cost by -1.
6590         (sched_finish): Free the current automaton state and finalize
6591         automaton pipeline interface.
6592
6593         * sched-rgn.c: Include target.h.
6594         (init_ready_list, new_ready, debug_dependencies): Add new code for
6595         automaton pipeline interface.
6596
6597         * sched-vis.c: Include target.h.
6598         (get_visual_tbl_length): Add code for automaton interface.
6599         (target_units, print_block_visualization):  Add comments.
6600
6601         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
6602         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
6603         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
6604         (getruntime.o, genautomata.o): New entries.
6605         (genattrtab.o): Add new dependency file genattrtab.h.
6606         (genattrtab): Add new dependencies.  Link it with `libm.a'.
6607         (getruntime.o, hashtab.o): New entries for canadian cross.
6608
6609         * doc/md.texi: Description of automaton based model.
6610
6611         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
6612         Add comments.
6613         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6614         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6615         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6616         TARGET_SCHED_DFA_POST_CYCLE_INSN,
6617         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6618         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6619         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
6620         hook descriptions.
6621         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
6622         MAX_DFA_ISSUE_RATE): New macro descriptions.
6623
6624         * doc/contrib.texi: Add dfa based scheduler contribution.
6625
6626         * doc/gcc.texi: Add more information about genattrtab.
6627
6628 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
6629
6630         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
6631         an RTL basic block.
6632
6633 2001-08-27  Richard Henderson  <rth@redhat.com>
6634
6635         * function.c (expand_function_end): Don't init arg_pointer_save_area.
6636         (get_arg_pointer_save_area): New.  Create an init it here.
6637         (fix_lexical_addr): Use it.
6638         * function.h: Declare it.
6639         * builtins.c (expand_builtin_setjmp_receiver): Use it.
6640         * stmt.c (expand_nl_goto_receiver): Use it.
6641
6642 2001-08-27  Richard Henderson  <rth@redhat.com>
6643
6644         * final.c (final_scan_insn): Don't enter APP_ON mode for
6645         empty asm strings.
6646
6647         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
6648         alignment for assemble_integer for DW_EH_PE_aligned.
6649         * except.c (output_function_exception_table): Likewise.
6650
6651 2001-08-26  Andreas Jaeger  <aj@suse.de>
6652
6653         * c-tree.h: Add prototyp for c_sizeof_nowarn.
6654
6655 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
6656
6657         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
6658
6659 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
6660
6661         * config/rs6000/rs6000.c (mask_operand): Rewrite without
6662         bit-shifting loop.
6663         (mask64_operand): Likewise.
6664         (rldic_operand): Delete.
6665         (includes_lshift64_p): Delete.
6666         (includes_rldic_lshift_p): New function.
6667         (includes_rldicr_lshift_p): New function.
6668         (print_operand): Don't call rldic_operand in case 'W'.
6669         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
6670         (includes_lshift64_p): Remove.
6671         (includes_rldic_lshift_p): Declare.
6672         (includes_rldicr_lshift_p): Declare.
6673         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
6674         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
6675         Replace match_operand rldic_operand predicate with
6676         const_int_operand.  Replace includes_lshift64_p condition with
6677         includes_rldic_lshift_p.
6678         <ashldi3_internal 64 bit rldicr patterns>: New.
6679
6680 2001-08-27  Andreas Jaeger  <aj@suse.de>
6681
6682         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
6683         * errors.c: Likewise.
6684         * final.c: Likewise.
6685         * dwarf2asm.c: Likewise.
6686         * doprint.c (checkit): Likewise.
6687         * diagnostic.c: Likewise.
6688         * collect2.c: Likewise.
6689         * calls.c: Likewise.
6690         * c-semantics.c (build_stmt): Likewise.
6691         * c-format.c (status_warning): Likewise.
6692         * c-errors.c (pedwarn_c99): Likewise.
6693         * builtins.c (validate_arglist): Likewise.
6694         * config/pj/pj.c (pj_printf): Likewise.
6695         * fix-header.c: Likewise.
6696         * gcc.c: Likewise.
6697         * gcov.c (fnotice): Likewise.
6698         * gensupport.c (message_with_line): Likewise.
6699         * mips-tfile.c: Likewise.
6700         * protoize.c (notice): Likewise.
6701         * read-rtl.c (fatal_with_file_and_line): Likewise.
6702         * rtl-error.c: Likewise.
6703         * tradcpp.c: Likewise.
6704         * tree.c: Likewise.
6705         * cp/tree.c (build_min_nt): Likewise.
6706         (build_min): Likewise.
6707         * cp/lex.c: Likewise.
6708         * cp/errfn.c: Likewise.
6709         * cp/rtti.c (create_pseudo_type_info): Likewise.
6710
6711 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
6712
6713         * df.c (df_uses_record): Return after recording all uses
6714         in ASM_OPERANDS.
6715
6716 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
6717
6718         * df.c (df_insn_modify): Realloc the INSN table here, if
6719         necessary, here, too.
6720
6721 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
6722
6723         * config/mips/mips.c (mips_function_value): Handle complex return
6724         values.
6725
6726 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
6727
6728         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
6729         unshared.
6730         * reload.c (make_memloc): Copy result if it is still
6731         reg_equiv_memory_loc[regno] on return.
6732         (subst_reloads) [ENABLE_CHECKING]: Check that none of
6733         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
6734         reg_equiv_mem are modified by the substitutions.
6735
6736 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
6737
6738         * predict.c (expensive_function_p): New.
6739         * rtl.h (expensive_function_p): Declare.
6740         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
6741         (use_fast_prologue_epilogue): New static variable.
6742         (expand_prologue): Set it; emit short prologues if unset.
6743         (expand_epilogue): Likewise.
6744
6745 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
6746
6747         * config.gcc: Add stormy16-*-elf case.
6748         * config/stormy16/stormy-abi: New file.
6749         * config/stormy16/stormy16-lib2.c: New file.
6750         * config/stormy16/stormy16-protos.h: New file.
6751         * config/stormy16/stormy16.c: New file.
6752         * config/stormy16/stormy16.h: New file.
6753         * config/stormy16/stormy16.md: New file.
6754         * config/stormy16/t-stormy16: New file.
6755
6756 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
6757
6758         * i386.h (no-accumulate-outgoing-args): Use proper mask.
6759
6760 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
6761
6762         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
6763         descriptor members are pointer size, not constant 4.
6764         * config/rs6000/rs6000.md (define_splits): Remove more unused
6765         constraints.
6766
6767 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6768
6769         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
6770
6771 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
6772
6773         * cp/rtti.c (VPARAMS): Fix parameter.
6774
6775 2001-08-24  Zack Weinberg  <zackw@panix.com>
6776
6777         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
6778         to zero.
6779         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
6780         to switch.
6781         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
6782         in if controlling use of insv.
6783         (extract_bit_field): Likewise, for extv and extzv.
6784
6785 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
6786
6787         * i386.md (movcc peep2): Fix load of 0.
6788
6789 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6790
6791         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
6792         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
6793
6794 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
6795
6796         * c-pragma.h: Move weak_syms and weak_decls...
6797         * varasm.c: ...here.  Now static.
6798         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
6799         depend on HANDLE_PRAGMA_WEAK.
6800
6801         * c-common.c (c_alignof, c_alignof_expr): Move here...
6802         * c-typeck.c: ...from here.
6803         * c-tree.h, c-common.h: Adjust.
6804
6805 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
6806
6807         * config/ia64/ia64.c (rws_update): If !pred, set write_count
6808         instead of incrementing it.
6809
6810         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
6811         asm ready, don't try to move them all into the same array element.
6812
6813 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
6814
6815         * function.c (thread_prologue_and_epilogue_insns): Avoid
6816         fallthru flag on edge to exit.
6817
6818         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
6819
6820         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
6821         dead edges.
6822
6823 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
6824
6825         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
6826         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
6827         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
6828         Remove prototype.
6829
6830 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
6831
6832         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
6833         replace "GNU CC" with "GCC".
6834
6835 2001-08-23  Richard Henderson  <rth@redhat.com>
6836
6837         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
6838         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
6839         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
6840         Need GR between FR and not GR_AND_FR.
6841         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
6842         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
6843         AR regs before GR regs.
6844         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
6845         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
6846         (REGISTER_MOVE_COST): Update.
6847         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
6848
6849 2001-08-23  Richard Henderson  <rth@redhat.com>
6850
6851         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
6852         a register class.
6853
6854 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
6855
6856         * reload1.c (emit_reload_insns): Don't look for notes
6857         on a NULL store_insn.
6858
6859 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6860
6861         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
6862         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
6863         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
6864         format specifier warnings.
6865         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
6866
6867 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
6868
6869         * config/i386/i386-protos.h: Correct declaration of
6870         i386_pe_asm_named_section.
6871
6872 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6873
6874         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
6875         variable i.
6876         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
6877
6878 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
6879
6880         * cpperror.c (print_location): Don't show _Pragma.
6881         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
6882         and file change callback generation here.
6883         (stack_include_file): Update use of cpp_push_buffer.
6884         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
6885         (struct cpp_buffer): Remove type, pfile members.
6886         * cppinit.c (cpp_handle_option): Use free_chain.
6887         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
6888         (skip_escaped_newlines, get_effective_char, lex_percent): Take
6889         a cpp_reader rather than a cpp_buffer.
6890         (skip_escaped_newlines, get_effective_char, skip_block_comment,
6891         skip_line_comment, parse_string, lex_percent, lex_dot,
6892         _cpp_lex_token): Update accordingly.
6893         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
6894         generation here.
6895         (cpp_push_buffer): Update prototype.
6896         (run_directive): Update use of cpp_push_buffer.
6897         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
6898         handle_assertion): Update use of run_directive.
6899         * cpplib.h (enum cpp_buffer_type): Remove.
6900         (cpp_push_buffer): Update prototype.
6901         * fix-header.c (read_scan_file): Update.
6902
6903 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6904
6905         * gcc.c (struct prefix_list): Change prefix to const char *.
6906
6907 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6908
6909         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
6910
6911 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
6912
6913         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
6914         from a new MEM.
6915
6916         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
6917         a squeezable note.
6918         * rtl.h: Adjust.
6919         * ifcvt.c (dead_or_predicable): Adjust.
6920         * loop.c (find_and_verify_loops): Adjust.
6921         * stmt.c (expand_end_case): Adjust.
6922         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
6923         head and end insn pointers in the basic block, not just local copies.
6924         (merge_blocks_move_predecessor_nojumps): Likewise.
6925
6926 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
6927
6928         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
6929         bitmap.h, builtin-types.def, builtins.c, builtins.def,
6930         c-aux-info.c, c-common.c, c-common.def, c-common.h,
6931         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
6932         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
6933         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
6934         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
6935         conditions.h, config.gcc, configure.frag, configure.in,
6936         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
6937         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
6938         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
6939         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
6940         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
6941         emit-rtl.c, errors.c, errors.h, except.c, except.h,
6942         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
6943         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
6944         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
6945         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
6946         gencheck.c, gencodes.c, genconfig.c, genemit.c,
6947         genextract.c, genflags.c, gengenrtl.c, genmultilib,
6948         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
6949         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
6950         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
6951         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
6952         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
6953         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
6954         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
6955         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
6956         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
6957         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
6958         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
6959         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
6960         params.h, predict.c, predict.def, predict.h, prefix.c,
6961         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
6962         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
6963         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
6964         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
6965         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
6966         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
6967         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
6968         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
6969         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
6970         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
6971         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
6972         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
6973         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
6974         xcoffout.h: replace "GNU CC" with "GCC".
6975
6976 2001-08-21  Richard Henderson  <rth@redhat.com>
6977
6978         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
6979         (final_scan_insn): Consider jump tables data even if we have no
6980         independent text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
6981         ADDR_VEC_ALIGN.
6982         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
6983         (ASM_OUTPUT_CASE_END): Remove.
6984         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
6985         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
6986         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
6987
6988 2001-08-21  Richard Henderson  <rth@redhat.com>
6989
6990         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
6991         at barrier insns.  Emit stop bits before barriers.
6992
6993         * flow.c (flow_find_cross_jump): Don't consider unconditional
6994         return insns for commoning.
6995
6996         * final.c (compute_alignments): Fix typo.
6997
6998         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
6999         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
7000         (store_bit_field): Use mode_for_extraction more places.
7001         (extract_bit_field): Likewise.
7002
7003 2001-08-21  Zack Weinberg  <zackw@panix.com>
7004
7005         * caller-save.c: Don't include insn-codes.h.
7006         (reg_save_code, reg_restore_code): Make arrays of int.
7007         All uses updated to match.
7008         (insert_save, insert_restore): No need to initialize "code"
7009         variable upon declaration.
7010         * Makefile.in: update dependencies; fix typo in clean rule.
7011
7012 2001-08-21  Richard Henderson  <rth@redhat.com>
7013
7014         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
7015         (merge_if_block): Handle fallout from same.
7016
7017 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7018
7019         * builtins.c (type_to_class): Fix typo in last change.
7020
7021 2001-08-21  Richard Henderson  <rth@redhat.com>
7022
7023         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
7024         ia64_asm_output_label.
7025
7026         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
7027         copy of gp while the real gp register contains garbage.
7028
7029 2001-08-21  Zack Weinberg  <zackw@panix.com>
7030
7031         * expmed.c (mode_for_extraction): New function.
7032         (store_bit_field, extract_bit_field): Use it.
7033         * expr.h: Prototype it and provide an enum for its first argument.
7034
7035         * combine.c, function.c, recog.c: Don't include insn-codes.h.
7036         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
7037         and digging through the insn_data tables.
7038         * Makefile.in: Update dependencies.
7039
7040 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7041
7042         * cppfiles.c (stack_include_file): line-map.c now handles include
7043         depth.
7044         (handle_missing_handler): Similarly.
7045         (_cpp_execute_include): Similarly.
7046         (_cpp_pop_file_buffer): Similarly.
7047         * cpphash.h (struct cpp_reader): Remove system_include_depth,
7048         buffer_stack_depth and include_depth.
7049         * cpplib.c (do_include_common): line-map.c now handles include depth.
7050         (cpp_push_buffer): Similarly.
7051         (_cpp_pop_buffer): Similarly.
7052         * cppmacro.c (builtin_macro): Update.
7053         * line-map.c (init_line_maps): Set depth.
7054         (add_line_map): Increment "used" earlier.  Update and use the
7055         include depth.
7056         (trace_include): Use the include depth.
7057         * line-map.h (struct line_maps): New member depth.
7058
7059 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7060
7061         * cppfiles.c (stack_include_file): Don't handle -H here.
7062         * cppinit.c (cpp_start_read): Set include tracing after
7063         cpp_post_options and after stacking the main file.
7064         * line-map.c (trace_include): New.
7065         (init_line_maps, add_line_map): Update.
7066         * line-map.h (struct line_maps): New member trace_includes.
7067
7068 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7069
7070         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
7071         * cppfiles.c (stack_include_file): Only stack a file if there
7072         is something to do.  Return a boolean indicating whether a
7073         buffer was stacked or not.
7074         (_cpp_execute_include): Similarly.
7075         (_cpp_read_file): Similarly.
7076         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
7077
7078 2001-08-21  Sam Steingold  <sds@gnu.org>
7079
7080         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
7081         (RECACHE): keep obufp_before_macroname up to date
7082
7083 2001-08-21  Zack Weinberg  <zackw@panix.com>
7084
7085         * stmt.c: Don't include insn-codes.h.
7086         (expand_end_case): Machine specific logic moved to expr.c.
7087         No need to worry about __builtin_classify_type.
7088         (check_for_full_enumeration_handling, emit_case_nodes):
7089         Kill #if 0 blocks.
7090
7091         * builtins.o (expand_builtin_classify_type): Split up so code
7092         can be shared with fold_builtin_classify_type.
7093         (type_to_class, fold_builtin_classify_type): New functions.
7094         (fold_builtins): Handle __builtin_classify_type.
7095
7096         * expr.c (do_tablejump): Now static.
7097         (case_values_threshold, try_casesi, try_tablejump): New;
7098         code mostly from stmt.c (expand_end_case).
7099         (expr.h): Update prototypes.
7100
7101         * Makefile.in (stmt.o): Update dependencies.
7102
7103 2001-08-21  Will Cohen  <wcohen@redhat.com>
7104
7105         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
7106         declaration of variable i.
7107         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
7108         declaration of variable i.
7109
7110 2001-08-21  Richard Henderson  <rth@redhat.com>
7111
7112         * crtstuff.c: Fix thinko last change.  Move list tails to start
7113         of CRT_END section.  Tidy ifdefs.
7114         (__EH_FRAME_BEGIN__): Always static for ELF.
7115         (__do_global_ctors_1): Rename from __frame_dummy.
7116         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
7117         name change; don't hide __EH_FRAME_BEGIN__.
7118
7119 2001-08-21  Richard Henderson  <rth@redhat.com>
7120
7121         * gdbinit.in: Move break on exit after break on fancy_abort.
7122
7123         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
7124         sized types.
7125
7126 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7127
7128         * cpphash.h (_cpp_push_next_buffer): New.
7129         * cppinit.c (do_includes): Remove.
7130         (push_include, free_chain, _cpp_push_next_buffer): New.
7131         (cpp_start_read): Use them to rework command line option handling.
7132         (cpp_handle_option): Combine handling of -include and -imacros.
7133         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
7134         appropriate.  Always insert missing \n at EOF.
7135         * cpplib.c (start_directive): Get the directive position right.
7136         * cppmain.c (cb_file_change): Always print the first line, unless
7137         preprocessed.
7138
7139 2001-08-20  Andreas Jaeger  <aj@suse.de>
7140
7141         * profile.c (compute_branch_probabilities): Remove extra new-line
7142         in error message.
7143         * flow.c (verify_flow_info): Likewise.
7144
7145 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
7146
7147         * basic-block.h (basic_block): Add new field 'flags'.
7148         (BB_REACHABLE): Define.
7149         (expunge_block): Declare.
7150         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
7151         (EXIT_BLOCK_PTR): Ditto.
7152         (expunge_block): Remove static declaration.
7153         (cleanup_cfg): Clear bb->aux on every basic block.
7154         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
7155         computing reachability.
7156         (delete_unreachable_blocks): Delete block b if b->flags has
7157         BB_REACHABLE unset.
7158
7159 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
7160
7161         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
7162
7163 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7164
7165         * sparc.c (sparc_variable_issue): Fix typo in last change.
7166
7167 2001-08-20  Richard Henderson  <rth@redhat.com>
7168
7169         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
7170
7171 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7172
7173         * pa.h (RETURN_IN_MEMORY): Improve comment.
7174
7175 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
7176
7177         * doc/invoke.texi (Profiling options): Clarify the interactions
7178         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
7179
7180 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
7181
7182         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
7183         command.
7184
7185 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7186
7187         * gcc.c (make_relative_prefix): Allocate a sufficiently large
7188         buffer.
7189
7190 2001-08-20  Richard Henderson  <rth@redhat.com>
7191
7192         * final.c (end_final): Fix typo last change.
7193
7194 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7195
7196         * cppinit.c (init_standard_includes): The returned buffer
7197         is already malloc-ed.
7198         * gcc.c (add_prefix): Similarly.
7199         * prefix.c (translate_name): Update to support clear buffer
7200         ownership rules.
7201         (update_path): Similarly.  Be sure to free any newly allocated
7202         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
7203         (tr): New function.
7204         * prefix.h (update_path): Update prototype and document.
7205         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
7206         up and update to new buffer ownership rules.
7207         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
7208
7209 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
7210
7211         * final.c (compute_alignments): New function.
7212         (init_insn_lengths): Do not care label_align.
7213         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
7214         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
7215         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
7216         (shorted_branches): Realloc label_align array; do
7217         not call init_insn_lengths; Do not care about loop alignments.
7218         * output.h (compute_alignments): Declare.
7219         * toplev.c (rest_of_compilation): Call compute_alignments.
7220         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
7221
7222         * predict.c (block_info_def): Add npredecesors, remove nvisited;
7223         change visited to tovisit.
7224         (propagate_freq): Use faster traversing algorithm.
7225         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
7226         to tovisit; reverse meaning.
7227
7228         * predict.c (struct block_info_def): Remove nvisited.
7229         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
7230         (estimate_bb_frequencies): Call mark_dfs_back_edges.
7231
7232 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
7233
7234         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
7235         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
7236         (TARGET_FUSED_MADD): New.
7237         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
7238         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
7239         the multiply-add instructions.
7240
7241 2001-08-19  Richard Henderson  <rth@redhat.com>
7242
7243         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
7244         is aligned to pointer size.
7245
7246 2001-08-19  Richard Henderson  <rth@redhat.com>
7247
7248         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
7249         display markers during final schedule.
7250
7251 2001-08-19  Richard Henderson  <rth@redhat.com>
7252
7253         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
7254
7255 2001-08-19  Richard Henderson  <rth@redhat.com>
7256
7257         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
7258         in the same string.
7259         (ASM_NAME_TO_STRING): Remove.
7260         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
7261         in the same string.  Remove support for expressions.
7262
7263 2001-08-19  Richard Henderson  <rth@redhat.com>
7264
7265         * config/i386/i386.md (tablejump): Make an expander; handle
7266         pic relative addressing here.
7267         (tablejump_1): Rename from tablejump_pic.
7268         (casesi): Remove.
7269
7270 2001-08-19  Richard Henderson  <rth@redhat.com>
7271
7272         * regclass.c (fix_register): Fix typo.
7273
7274 2001-08-18  Richard Henderson  <rth@redhat.com>
7275
7276         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
7277         (struct _Unwind_Context): Expand br_loc to hold it.
7278         (uw_frame_state_for): Handle leaf functions better.
7279         (uw_update_reg_address): Update for br_loc change.
7280
7281 2001-08-18  Richard Henderson  <rth@redhat.com>
7282
7283         * crtstuff.c: Move list heads before code that uses them.
7284         (__JCR_LIST__): Remove initial null.
7285         (frame_dummy, __frame_dummy): Do java registration here ...
7286         (__do_global_ctors_aux): ... not here.
7287
7288         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
7289         (__do_global_dtors_aux): Update to match.
7290         (__JCR_LIST__, __do_jv_register_classes): New.
7291         (.init): Call it.
7292         * config/ia64/crtend.asm (__JCR_END__): New.
7293         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
7294         instead of an indirect LTOFF22 reloc.
7295
7296 2001-08-18  Richard Henderson  <rth@redhat.com>
7297
7298         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
7299         * regclass.c (init_reg_sets_1): Fix typo.
7300         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
7301         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
7302         (ia64_compute_frame_size): Make ar.unat live when in use.
7303         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
7304         for ar.pfs; remove ar.unat handling.
7305         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
7306         call-saved.
7307         (PREDICATE_CODES): Add ar_pfs_reg_operand.
7308         * config/ia64/ia64-protos.h: Update decls.
7309         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
7310         (sibcall_pic): Likewise.
7311
7312 2001-08-18  Richard Henderson  <rth@redhat.com>
7313
7314         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
7315         pred_rel_mutex when searching for insn_group_barrier.
7316         * config/ia64/ia64.md (cycle_display): Combine the expander
7317         and insn patterns.
7318
7319         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
7320         bit before asm as needed.
7321
7322 2001-08-18  Richard Henderson  <rth@redhat.com>
7323
7324         * timevar.def (TV_MACH_DEP): New.
7325         * toplev.c (rest_of_compilation): Use it.
7326         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
7327
7328 2001-08-18  Zack Weinberg  <zackw@panix.com>
7329
7330         * unwind-dw2.c (execute_stack_op): Add default aborts to
7331         the inner switches to prevent warnings.
7332
7333 2001-08-18  Richard Henderson  <rth@redhat.com>
7334
7335         * timevar.h (struct timevar_time_def): Change element type to float.
7336         (ticks_to_msec, clocks_to_msec): Likewise.
7337         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
7338         (get_time): Likewise.
7339         (timevar_print): Adjust zero check and printing to match.
7340
7341 2001-08-18  Zack Weinberg  <zackw@panix.com>
7342
7343         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
7344         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
7345         Eliminate overfull or underfull hboxes.
7346
7347 2001-08-18  Zack Weinberg  <zackw@panix.com>
7348
7349         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
7350
7351 2001-08-18  Zack Weinberg  <zackw@panix.com>
7352
7353         * haifa-sched.c: Convert to target hooks.  Macros replaced
7354         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
7355         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
7356         MD_SCHED_FINISH, and HAVE_cycle_display.
7357         * target-def.h (TARGET_SCHED_ADJUST_COST,
7358         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
7359         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
7360         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
7361         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
7362         New hook #defines to be overridden.
7363         (TARGET_SCHED): Bring them all together.
7364         (TARGET_INITIALIZER): Update.
7365         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
7366         instead of 'struct rtx_def *' throughout.
7367         (struct sched): New set of hooks for the scheduler.
7368         * Makefile.in (haifa-sched.o): Depend on target.h.
7369         * doc/tm.texi: Document the new scheduler hooks, together in
7370         their own section, instead of scattered around.
7371         Fix a bunch of underfull/overfull hboxes.
7372
7373         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
7374         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
7375         sparc.h: Don't define any of the old scheduler macros.
7376
7377         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
7378         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
7379         sparc.c: Create hook functions from code extracted from
7380         corresponding target header, or make existing hooks static, as
7381         appropriate.  Set the appropriate entries in targetm.
7382
7383         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
7384         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
7385         rs6000-protos.h, s390-protos.h, sparc-protos.h:
7386         Remove prototypes for functions which are now static.
7387
7388         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
7389         related gunk; the Haifa scheduler is now the only choice.
7390
7391 2001-08-18  Zack Weinberg  <zackw@panix.com>
7392
7393         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
7394         * genopinit.c: Put floating point divide insns in sdiv_optab.
7395         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
7396         * config/gofast.h, config/c4x/c4x.h,
7397         config/ia64/hpux_longdouble.h, config/mips/mips.h,
7398         config/pa/long_double.h, config/rs6000/sysv4.h,
7399         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
7400         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
7401         (init_optabs): Use init_optabv for overflow-trapping optabs.
7402         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
7403         cmp_optab RTX codes so have_insn_for can find them.
7404
7405         * optabs.c (expand_simple_binop, expand_simple_unop,
7406         have_insn_for, gen_sub3_insn): New interfaces.
7407         * expr.h: Prototype new functions.
7408         (enum optab_methods): Move here from optabs.h.
7409
7410         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
7411         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
7412         Use new functions instead of working directly with optabs.
7413         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
7414         unroll.c: Don't include optabs.h.
7415         * caller-save.c, combine.c, function.c, stmt.c: Just include
7416         insn-codes.h, not optabs.h.
7417         * Makefile.in: Update dependencies.
7418
7419         * combine.c (make_compound_operation, simplify_comparison):
7420         Fix typos testing for this or that instruction.
7421
7422 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
7423
7424         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
7425         generating libgcc.a.
7426
7427 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7428
7429         * except.c (TYPE_HASH): Delete.
7430
7431         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
7432         HOST_WIDE_INT.
7433
7434         * tree.c (TYPE_HASH): Delete.
7435
7436         * tree.h (TYPE_HASH): Define.
7437
7438 2001-08-18  Graham Stott  <grahams@redhat.com>
7439
7440         * config/mips/mips.md (adddi3_internal_2+1): Remove constraints from
7441         define_split.
7442         (adddi3_internal_2+2): Likewise.
7443         (eh_set_lr_di+1): Likewise.
7444
7445 2001-08-17  Richard Henderson  <rth@redhat.com>
7446
7447         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7448         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
7449         * dwarf2asm.c: ... here.
7450         * dwarfout.c: Remove them.
7451
7452         * varasm.c (assemble_integer): Add align parameter.
7453         (assemble_real, output_constant, output_constructor): Likewise.
7454         * output.h: Update decls.
7455         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
7456         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
7457         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
7458         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
7459         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
7460         Update all callers.
7461
7462         * final.c (end_final): Abort profile block generation if we
7463         havn't layed it out properly.
7464         * output.h (assemble_eh_integer): Remove stale decl.
7465         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
7466         (min_align): New.
7467         (assemble_integer): Handle unaligned data.
7468         (assemble_real): Abort on unaligned data.
7469         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
7470         anything useful.
7471         (default_dtor_section_asm_out_destructor): Use assemble_align.
7472         (default_named_section_asm_out_constructor): Likewise.
7473         (default_ctor_section_asm_out_constructor): Likewise.
7474         * config/darwin.c (machopic_asm_out_constructor): Likewise.
7475         (machopic_asm_out_destructor): Likewise.
7476         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
7477         (nextstep_asm_out_destructor): Likewise.
7478         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
7479         (vms_asm_out_destructor): Likewise.
7480
7481 2001-08-17  Richard Henderson  <rth@redhat.com>
7482
7483         * config/mips/iris6.h (TARGET_IRIX6): New.
7484         (current_section_name, current_section_flags): New.
7485         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
7486         (MAX_OFILE_ALIGNMENT): New.
7487         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
7488         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
7489         (copy_file_data): Split out from
7490         (mips_asm_file_end): ... here.
7491         (mips_asm_file_start): Remove extra .section directive.  Use
7492         tmpfile instead of mips_make_temp_file.
7493         (mips_unique_section): Use const char * as needed for warnings.
7494         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
7495         re-add align parameter.
7496         (iris6_asm_named_section): New.
7497         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
7498         (iris6_asm_output_align, iris6_section_align_1): New.
7499         (iris6_asm_file_start, iris6_asm_file_end): New.
7500         * config/mips/mips-protos.h: Update decls.
7501
7502 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
7503
7504         * doc/install.texi (Install GCC): Add links to build status pages.
7505         (Specific): Ditto.
7506         (Final install): Ditto; request updates for specific info
7507
7508 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
7509
7510         * cpperror.c (print_location):  Don't take a file name; use the
7511         line map instead.
7512         (_cpp_begin_message): Similarly.
7513         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
7514         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
7515         (cpp_pedwarn_with_file_and_line): Remove.
7516         * cppfiles.c (stack_include_file): Update; set filename to stdin
7517         here when appropriate.
7518         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
7519         (_cpp_begin_message): Don't take a file name.
7520         * cppinit.c: Add comment.
7521         * cpplex.c: Fix end-of-directive indicator.
7522         * cpplib.c: Don't include intl.h.
7523         (run_directive, do_diagnostic): Update.
7524         (do_line): Update to not use nominal_fname.
7525         (cpp_push_buffer): Don't take a filename.
7526         * cpplib.h (struct ht): Remove.
7527         (cpp_push_buffer): Don't take a filename.
7528         (cpp_pedwarn_with_file_and_line): Remove.
7529         * cppmacro.c (struct cpp_macro): Remove file.
7530         (builtin_macro): Update.
7531         (_cpp_create_definition): Update.
7532         * cppmain.c: Correct comment.
7533         * fix-header.c (read_scan_file): Update.
7534
7535 2001-08-17  Kazu Hirata  <kazu@hxi.com>
7536
7537         * sbitmap.c: Fix comment formatting.
7538         * sched-deps.c: Likewise.
7539         * sibcall.c: Likewise.
7540         * simplify-rtx.c: Likewise.
7541         * ssa.c: Likewise.
7542         * ssa-ccp.c: Likewise.
7543         * stor-layout.c: Likewise.
7544         * timevar.c: Likewise.
7545         * toplev.c: Likewise.
7546         * unwind-dw2.c: Likewise.
7547         * unwind-dw2-fde.c: Likewise.
7548         * varasm.c: Likewise.
7549
7550 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7551
7552         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
7553         or larger than an integer in memory.
7554
7555 2001-08-17  Zack Weinberg  <zackw@panix.com>
7556
7557         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
7558         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
7559         * rtl.h: Don't forward-declare union tree_node here.  Don't
7560         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
7561         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
7562         and tree respectively.
7563         * tree.h: Don't forward-declare struct rtx_def here.  Don't
7564         typedef tree here.  Change all uses of struct rtx_def *,
7565         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
7566         and tree respectively.
7567
7568 2001-08-17  Richard Henderson  <rth@redhat.com>
7569
7570         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
7571         config/mips/openbsd.h: Fix typos last change.
7572
7573 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7574
7575         * doc/invoke.texi (Optimize Options): The default for
7576         -finline-limit is 600.
7577
7578 2001-08-17  Richard Henderson  <rth@redhat.com>
7579
7580         * varasm.c (text_section): Allow TEXT_SECTION to override the
7581         printing of TEXT_SECTION_ASM_OP.
7582         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
7583         (DATA_SECTION, BSS_SECTION): Remove.
7584         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
7585         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
7586         Rename from s/_NAME//.
7587         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
7588         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
7589         (TEXT_SECTION): ... here.  New.
7590         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
7591         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
7592         * config/mips/openbsd.h: Likewise.
7593         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
7594         (mips_asm_file_end): Likewise test.
7595         (mips_output_function_epilogue): Likewise.  Switch back to data
7596         section after emitting the function.
7597
7598         * doc/tm.texi (Sections): Document TEXT_SECTION.
7599
7600 2001-08-17  Richard Henderson  <rth@redhat.com>
7601
7602         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
7603         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
7604
7605 2001-08-17  Richard Henderson  <rth@redhat.com>
7606
7607         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
7608         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
7609         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
7610         Add aligned attribute.
7611
7612 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
7613
7614         * config/sh/sh.md: Add modes to unspecs in first insn to match
7615         those in the second.
7616
7617         * Makefile.in: Fix collect2 copy for Cygwin.
7618
7619 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
7620
7621         Install the proper patch.
7622         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
7623         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
7624         (expand_function_start): Likewise.
7625         * stmt.c (expand_decl): Likewise.
7626         * varasm.c (make_decl_rtx): Likewise.
7627
7628 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
7629
7630         * final.c: Undo my previous accidental checkin.
7631         * output.h: Likewise.
7632         * tm.texi: Likewise.
7633
7634 2001-08-16  Richard Henderson  <rth@redhat.com>
7635
7636         * varasm.c (named_section_flags): Remove align parameter.
7637         * varasm.c, dwarf2out.c: Update all callers.
7638         * output.h: Update prototypes.
7639
7640         * target.h (target.asm_out.named_section): Remove align parameter.
7641         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
7642         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
7643         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
7644         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
7645         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
7646
7647         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
7648         (get_named_section_flags, set_named_section_flags): New.
7649         (named_section_flags): Use them.
7650         (named_section): Do decl vs section flags check here...
7651         (default_section_type_flags): ... not here.
7652         (init_varasm_once): Create in_named_htab.
7653         (resolve_unique_section): Mark reloc unused.
7654
7655 2001-08-16  Richard Henderson  <rth@redhat.com>
7656
7657         * varasm.c (force_const_mem): Keep pool alignment in bits.
7658         (output_constant_pool): Use assemble_align.
7659
7660 2001-08-16  Zack Weinberg  <zackw@panix.com>
7661
7662         * doc/tm.texi: Remove extra @table command.
7663
7664 2001-08-16  Zack Weinberg  <zackw@panix.com>
7665
7666         * final.c (shorten_branches): Clear the end of the label_align
7667         array only if we made it larger.  Break up messy expressions
7668         for clarity.
7669
7670         * diagnostic.c (internal_error): Check for error recursion
7671         before doing ICE suppression.
7672
7673         * timevar.c: Timing variables now count in milliseconds.
7674         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
7675         (get_time): Not here.
7676         (timevar_print): Don't print any timer whose user, cpu, and
7677         wall times are all zero as displayed.
7678         * timevar.h: Update comment aboout units.  Make timevar
7679         counters unsigned.
7680
7681 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
7682
7683         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
7684         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
7685         (expand_function_start): Likewise.
7686         * stmt.c (expand_decl): Likewise.
7687         * varasm.c (make_decl_rtx): Likewise.
7688
7689 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
7690
7691         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
7692         (finalize_record_size): Don't set TYPE_USER_ALIGN.
7693
7694 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7695
7696         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
7697         variables.
7698
7699 2001-08-16  Andreas Jaeger  <aj@suse.de>
7700
7701         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
7702         prototype.
7703
7704 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
7705
7706         * rtl.h (only_sets_cc0_p): New prototype.
7707         * jump.c (sets_cc0_p): Handle INSN.
7708         (only_sets_cc0_p): New function.
7709         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
7710         (tidy_fallthru_edge): Likewise.
7711         * integrate.c (copy_insn_list): Likewise.
7712         * unroll.c (unroll_loop): Likewise.
7713         (copy_loop_body): Likewise.
7714
7715 2001-08-15  Jason Eckhardt  <jle@redhat.com>
7716
7717         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
7718
7719 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
7720
7721         * predict.c (struct block_info_def): Remove nvisited.
7722         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
7723         (estimate_bb_frequencies): Call mark_dfs_back_edges.
7724
7725         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
7726         (ix86_adjust_cost): Teach scheduler that latency to load operand can
7727         be masked.
7728
7729 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
7730
7731         * predict.def: Update hitrates.
7732
7733 2001-08-15  Richard Henderson  <rth@redhat.com>
7734
7735         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
7736
7737 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
7738
7739         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
7740         note from its associated jump.
7741
7742 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
7743
7744         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
7745         also on 64-bit s390x targets.
7746
7747 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
7748
7749         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
7750         function.
7751         (arm_expand_prologue): Handled nested functions which take a
7752         variable argument list.
7753         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
7754         macro with an invocation of
7755         arm_compute_initial_elimination_offset.
7756         * config/arm/arm-protos.h: Prototype
7757         arm_compute_initial_elimination_offset.
7758
7759 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7760
7761         * doc/install.texi (Specific, avr): Fix markup.
7762         (Specific, c4x): Ditto.
7763
7764 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7765
7766         * predict.c (dump_prediction): Change `bool' parameter to `int'.
7767
7768 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
7769
7770         * Makefile.in (OBJS): Add rtl-error.o
7771         (rtl-error.o): New rule.
7772         (diagnostic.o): Adjust dependency.
7773         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
7774         error_for_asm, _fatal_insn, _fatal_insn_not_found,
7775         warning_for_asm): Move to...
7776         rtl-error.c: ...here.  New file.
7777
7778 2001-08-14  Richard Henderson  <rth@redhat.com>
7779
7780         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
7781         if USING_SJLJ_EXCEPTIONS.
7782
7783 2001-08-14  Steve Ellcey <sje@cup.hp.com>
7784
7785         * tlink.c (scan_linker_output): Check string for unsatisfied in
7786         addition to undefined and unresolved.
7787
7788 2001-08-14  Graham Stott  <grahams@redhat.com>
7789
7790         * libgcc2.c (*): Replace EH_FRAME_SECTION with
7791         EH_FRAME_SECTION_NAME.
7792
7793 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
7794
7795         * genattrtab.c (simplify_test_exp_in_temp): New function.
7796         (simplify_test_exp): Avoid explicit use of temporary obstack.
7797         (simplify_cond, insert_right_side, evaluate_eq_attr,
7798         simplify_and_tree, simplify_or_tree, eliminate_known_true):
7799         Use simplify_test_exp_in_temp.
7800         (optimize_attrs): Iterate until expression stabilizes.
7801
7802 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
7803
7804         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
7805         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
7806
7807 2001-08-13  Richard Henderson  <rth@redhat.com>
7808
7809         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
7810         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
7811         * config/arm/conix-elf.h: Likewise.
7812
7813 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
7814
7815         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
7816         in gcc.c.
7817         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
7818
7819         * gcse.c (hash_scan_set): Expressions that are set as part of
7820         jump instructions are not available.
7821
7822 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
7823
7824         * config/s390/s390.c (print_operand, s390_function_prologue,
7825         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
7826
7827 2001-08-13  Richard Henderson  <rth@redhat.com>
7828
7829         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
7830         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
7831         * doc/tm.texi (Exception Region Output): Document it.
7832
7833 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
7834
7835         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
7836         DWARF2 instead of stabs by default.
7837
7838 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
7839
7840         * config/rs6000/rs6000.c: Include optabs.h.
7841
7842 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
7843
7844         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
7845         save/restore routines.
7846         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
7847
7848 2001-08-13  Andreas Jaeger  <aj@suse.de>
7849
7850         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
7851         the english is correct.
7852
7853 2001-08-13  Zack Weinberg  <zackw@panix.com>
7854
7855         * expr.h: Split out optab- and libfunc-related code to...
7856         * optabs.h, libfuncs.h: ... these new headers.
7857
7858         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
7859         (OPTABS_H): New.
7860         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
7861         dependencies.
7862         * mkconfig.sh: Don't include insn-codes.h from config.h.
7863
7864         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
7865         enum insn_code is available.  Move reload_in_optab and
7866         reload_out_optab array declarations to optabs.h.
7867         * regmove.c (gen_add3_insn): Move to optabs.c, export from
7868         there, prototype in expr.h.
7869         * gencodes.c: Cleanup: zap global variables, don't use
7870         printf where puts will do, don't bother defining MAX_INSN_CODE
7871         which nothing uses, let CODE_FOR_nothing get its value implicitly.
7872
7873         * genemit.c, genopinit.c: Include optabs.h in generated file.
7874         * genoutput.c: Include insn-codes.h in generated file.
7875         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
7876         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
7877         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
7878         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
7879         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
7880         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
7881         Include optabs.h.
7882         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
7883         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
7884         config/m88k/m88k.c, config/sparc/sparc.c:
7885         Include libfuncs.h.
7886         * reload.c: Include expr.h and optabs.h before reload.h.
7887         * config/alpha/alpha.c: Include tree.h before reload.h.
7888         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
7889         and reload.h in that order.
7890         * config/sparc/sparc.c: Include debug.h.
7891         * recog.c: Include insn-codes.h.
7892
7893 2001-08-13  Andreas Jaeger  <aj@suse.de>
7894
7895         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
7896         s390*linux.
7897
7898 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7899
7900         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
7901         * gcc.c (init_spec): Fix typo in comment.
7902         * varasm.c (data_section): Fix typo in comment.
7903
7904 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
7905
7906         * predict.c (dump_prediction): New argument "USED".
7907         (combine_predictions_for_insn): Determine the used heuristics,
7908         output the case no heuristic applied.
7909         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
7910
7911 2001-08-13  Andreas Jaeger  <aj@suse.de>
7912
7913         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
7914         register %rip.
7915
7916 2001-08-13  Kazu Hirata  <kazu@hxi.com>
7917
7918         * jump.c: Fix formatting.
7919
7920 2001-08-13  Kazu Hirata  <kazu@hxi.com>
7921
7922         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
7923         length.
7924
7925 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
7926
7927         * loop.c (check_dbra_loop): Use condjump_label to compute
7928         jump_label.
7929
7930         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
7931         to better document the files they're in.
7932
7933 2001-08-12  Zack Weinberg  <zackw@panix.com>
7934
7935         * recog.h (struct insn_operand_data): Shrink 'mode' field
7936         to 16 bits.
7937
7938 2001-08-12  Kazu Hirata  <kazu@hxi.com>
7939
7940         * gcc.c: Fix comment formatting.
7941         * gccspec.c: Likewise.
7942         * gcov.c: Likewise.
7943         * gcse.c: Likewise.
7944         * genemit.c: Likewise.
7945         * gengenrtl.c: Likewise.
7946         * genrecog.c: Likewise.
7947         * gensupport.c: Likewise.
7948         * ggc-page.c: Likewise.
7949         * global.c: Likewise.
7950         * graph.c: Likewise.
7951         * ifcvt.c: Likewise.
7952         * integrate.c: Likewise.
7953         * lcm.c: Likewise.
7954         * libgcc2.c: Likewise.
7955         * loop.c: Likewise.
7956         * mbchar.c: Likewise.
7957         * optabs.c: Likewise.
7958         * predict.c: Likewise.
7959         * prefix.c: Likewise.
7960         * profile.c: Likewise.
7961         * protoize.c: Likewise.
7962         * real.c: Likewise.
7963         * recog.c: Likewise.
7964         * regclass.c: Likewise.
7965         * regmove.c: Likewise.
7966         * reg-stack.c: Likewise.
7967         * reload1.c: Likewise.
7968         * resource.c: Likewise.
7969         * rtlanal.c: Likewise.
7970         * rtl.c: Likewise.
7971
7972 2001-08-12  Kazu Hirata  <kazu@hxi.com>
7973
7974         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
7975         a tree representing a constant is passed to the macro.
7976
7977 2001-08-12  Richard Henderson  <rth@redhat.com>
7978
7979         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
7980         (rs6000_elf_asm_out_destructor): New.
7981         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
7982         (DTORS_SECTION_ASM_OP): Remove.
7983         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7984         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
7985
7986 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
7987
7988         Revert:
7989         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7990         * gcc.c (set_collect_gcc_options): New function, split out from
7991         main.
7992         Ignore elided switches.
7993         (do_spec_1): Invoke before executing command.
7994         (set_input): Export.
7995         Move declaration ...
7996         * gcc.h (set_input): ... here.
7997         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
7998         file.
7999
8000 2001-08-12  Richard Henderson  <rth@redhat.com>
8001
8002         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
8003         thinko wrt TARGET_RELOCATABLE.
8004
8005 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
8006
8007         * fix-header.c (cb_file_change): Update prototype.
8008
8009 2001-08-11  Zack Weinberg  <zackw@panix.com>
8010
8011         * toplev.c (set_float_handler): Make static.
8012         * toplev.h: Don't prototype set_float_handler.
8013
8014         * simplify-rtx.c: Don't include setjmp.h.
8015         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
8016         New functions.
8017         (simplify_unary_operation, simplify_binary_operation): Use them,
8018         via do_float_handler.
8019
8020         * fold-const.c: Don't include setjmp.h.
8021         (exact_real_inverse_1): New function.
8022         (exact_real_inverse): Use it, via do_float_handler.
8023
8024         * varasm.c: Don't include setjmp.h.
8025         (assemble_real_1): New function.
8026         (assemble_real): Use it, via do_float_handler.
8027         Call internal_error if we get a trap here.
8028
8029         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
8030         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
8031
8032 2001-08-11  Zack Weinberg  <zackw@panix.com>
8033
8034         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
8035         STACK_BOUNDARY if not already defined.
8036
8037         * calls.c, function.c, reload1.c, explow.c: Don't default
8038         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
8039         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
8040
8041         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
8042         to run-time test.
8043
8044         * doc/tm.texi: Document that STACK_BOUNDARY is required;
8045         clarify difference between it and PREFERRED_STACK_BOUNDARY.
8046
8047 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8048
8049         * cppmacro.c (enter_macro_context): Push macro expansions even
8050         if empty.
8051
8052 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8053
8054         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
8055         (rs6000_elf_section_type_flags): Actually return a value.
8056
8057 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
8058
8059         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
8060         Clean up code: add missing comments and prototypes, fix warnings,
8061         remove obsolete code, fix spacing to conform to coding style.
8062
8063 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
8064
8065         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
8066         and TARGET_ASM_CLOSE_PAREN.
8067         (regclass_map): CC register belongs to class NO_REGS.
8068         (legitimize_pic_address): Don't generate unnecessary moves
8069         (to avoid confusing loop optimization).
8070         (check_and_change_labels): Replace jump_long by indirect_jump.
8071         (s390_final_chunkify): Don't start a new literal pool on section
8072         switch in 64-bit code.
8073         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
8074
8075         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
8076         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
8077         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
8078         modes correctly.
8079         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
8080         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
8081         (CONST_COSTS): Fixed incorrect costs.
8082
8083         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
8084         Use emit_jump instead of emit_jump_insn (gen_jump).
8085         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
8086         (to avoid confusing flow analysis).
8087         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
8088         (casesi, casesi_jump): New.
8089         (jump_long): Removed.  Functionality merged into indirect_jump.
8090         (indirect_jump): Accept address_operand, not just register_operand.
8091         (cjump_long, icjump_long): Use same logic as indirect_jump.
8092         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
8093         Fixed broken setjmp/longjmp handling.
8094         (do_builtin_setjmp_setup): Removed.
8095
8096         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
8097         broken GNU as versions that don't accept .quad with large
8098         negative values.  Use hexadecimal output instead.
8099         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
8100         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
8101         FUNCTION_EPILOGUE): Removed.  Now in targetm.
8102
8103         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
8104
8105         * config/s390/fixdfdi.h: Add missing copyright statement.
8106         Fix type conflicts on 64-bit.  Add missing SFmode routines.
8107
8108         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
8109         email address.
8110
8111 2001-08-11  Richard Henderson  <rth@redhat.com>
8112
8113         * rtl.h (REG_EH_RETHROW): Remove.
8114         * rtl.c (reg_note_name): Update.
8115         * combine.c (distribute_notes): Don't check for it.
8116
8117 2001-08-11  Richard Henderson  <rth@redhat.com>
8118
8119         * combine.c (distribute_notes): Place REG_SETJMP.
8120
8121 2001-08-11  Richard Henderson  <rth@redhat.com>
8122
8123         * doc/extend.texi (Arrays and pointers implementation): Discourage
8124         relying on sign-extension of pointers.
8125
8126 2001-08-11  H.J. Lu <hjl@gnu.org>
8127
8128         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
8129         in_dtors.
8130         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
8131         RDATA_SECTION_ASM_OP.
8132
8133 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8134
8135         * doc/install.texi (Specific, c4x): Fix cross-reference to the
8136         main manual to work both for info and HTML versions.
8137
8138 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8139             Matt Kraai <kraai@alumni.carnegiemellon.edu>
8140
8141         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
8142         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
8143         (struct cpp_pool): New member first.
8144         * cppinit.c (append_include_chain): Plug memory leaks.
8145         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
8146         Allocate pragma structures from the (aligned) macro pool to
8147         avoid leaking memory.
8148         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
8149         so we don't leak memory.
8150         * hashtable.c (ht_destroy): New.
8151         * hashtable.h (ht_destroy): New.
8152
8153 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8154             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8155
8156         * c-lex.c (map): Make const.
8157         (cb_file_change): Update for callback passing a line map.
8158         Don't assume we have a previous map.  Remove sanity check
8159         about popping too many files.
8160         * cpperror.c (print_location): Make map const.
8161         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
8162         (cpp_make_system_header): Similarly.
8163         (search_from): Similarly.
8164         (_cpp_execute_include): Don't remember where we came from.
8165         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
8166         (struct cpp_reader): Make map const.
8167         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
8168         * cpplib.c (do_line): Update; line maps now hold sysp.
8169         (cpp_push_buffer): Similarly.
8170         (_cpp_do_file_change): Similarly; callback with map instead.
8171         (cpp_get_line_maps): Constify return value.
8172         (_cpp_pop_buffer): Update.
8173         * cpplib.h (struct cpp_file_change): Remove.
8174         (struct cpp_callbacks): Update.
8175         (cpp_get_line_maps): Constify return value.
8176         * cppmacro.c (_cpp_create_definition): Update.
8177         * cppmain.c (struct printer): Constify map.
8178         (maybe_print_line): Similarly.
8179         (print_line): Similarly.  Deduce flags 1 and 2 here.
8180         (cb_file_change): Update.
8181         * line-map.c (free_line_maps): Warn regardless.
8182         (add_line_map): Return pointer to const.  When passed NULL to_file
8183         with LC_LEAVE, use the obvious values for the return point so the
8184         caller doesn't have to figure them out.
8185         (lookup_line): Return pointer to const.
8186         (print_containing_files): Take pointer to const.
8187         * line-map.h (struct line_map): New members reason, sysp.
8188         (add_line_map): Return pointer to const.
8189         (lookup_line): Similarly.
8190         (print_containing_files): Take pointer to const.
8191
8192 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
8193             Richard Henderson  <rth@redhat.com>
8194
8195         * regmove.c (regmove_optimize): Avoid setting a register twice in
8196         a parallel set.
8197
8198 2001-08-10  Richard Henderson  <rth@redhat.com>
8199
8200         * doc/extend.texi (Arrays and pointers implementation): Document
8201         behavior of pointer/integer conversion.
8202
8203 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
8204
8205         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
8206
8207 2001-08-10  Richard Henderson  <rth@redhat.com>
8208
8209         * doc/extend.texi (C Implementation): New chapter.
8210         * doc/gcc.texi (Top): Link it in.
8211
8212 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
8213
8214         * doc/install.texi (Specific): Fix CVS merge botch.
8215
8216 2001-08-10  Richard Henderson  <rth@redhat.com>
8217
8218         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
8219         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
8220
8221 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
8222
8223         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
8224         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
8225         this macro is now required.
8226
8227         * cselib.c (cselib_process_insn), flow.c (propagate_block),
8228         loop.c (find_and_verify_loops), reload.c (reload): Check
8229         for rtx code of CALL_INSN, not CALL, when deciding if we
8230         need to check for REG_SETJMP note.
8231
8232         * gcse.c (compute_hash_table, compute_store_table): Update
8233         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
8234         logic.
8235
8236         * config/avr/avr.c: Fix typo.
8237         * config/convex/convex.c (expand_movstr): Use adjust_address.
8238         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
8239         variable.
8240         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
8241         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
8242         Fix typo.
8243         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
8244         Do define STACK_BOUNDARY.
8245         * config/i370/i370.c: Include expr.h.
8246         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
8247         config/pa/som.h, config/v850/v850.h: Take in_ctors and
8248         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
8249         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
8250         * config/m88k/m88k.c: Include c-tree.h after expr.h.
8251         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
8252         * config/romp/romp.c: Include expr.h after tree.h.
8253         Include toplev.h.
8254         (output_fpop): Use xmalloc, not oballoc.
8255         * config/we32k/we32k.c: Include expr.h.
8256
8257 2001-08-10  Kazu Hirata  <kazu@hxi.com>
8258
8259         * config/h8300/h8300.h: Fix formatting.
8260
8261 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
8262
8263         * c-common.h (RETURN_NULLIFIED_P): Lose.
8264         * c-semantics.c (genrtl_return_stmt): Don't check it.
8265
8266 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
8267
8268         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
8269         (mips_annotate_frame_insn): New function.
8270         (mips_emit_frame_related_store): New function.
8271         (save_restore_insns): Don't mark instructions that set up the base
8272         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
8273         the store instructions instead.
8274         (mips_expand_prologue): If the stack size is moved into a temporary
8275         register, do not mark that move as frame-related.  Add a
8276         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
8277
8278 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
8279
8280         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
8281         stack slot as unchanging if current_function_calls_eh_return.
8282
8283 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
8284
8285         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
8286         access the second half of the TFmode scratch operand.
8287
8288 2001-08-10  Anthony Green  <green@redhat.com>
8289
8290         * java/class.c (emit_register_classes): Conditionalize code on
8291         JCR_SECTION_NAME.
8292
8293 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8294
8295         * doc/install.texi (Specific, avr): Fix cross-reference to the
8296         main manual to work both for info and HTML versions.
8297
8298 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8299
8300         * stmt.c (expand_null_return_1): Remove code to generate simple returns
8301         and "use_goto" argument.
8302         (expand_null_return, expand_value_return): Update all callers.
8303         * function.c (expand_function_end): Remove code to generate simple
8304         return.
8305         * config/vax/vax.md (epilogue): New expander for function return.
8306         * doc/md.texi (epilogue): Remove "if defined".
8307
8308 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
8309
8310         * Makefile.in: Partially revert my previous change:
8311         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
8312         of the hashtab.o and safe-ctype.o rules.
8313
8314 2001-08-09  Richard Henderson  <rth@redhat.com>
8315
8316         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
8317         (USE_COLLECT2): Remove duplicate definition.
8318         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
8319         (use_collect2): Remove dead code.
8320         * configure.in (use_collect2): Remove will_use_collect2 and
8321         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
8322         * configure: Rebuild.
8323
8324         * target.h (targetm.asm_out.constructor): New.
8325         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
8326         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
8327         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
8328         * varasm.c (in_ctors, in_dtors): New.
8329         (assemble_constructor, assemble_destructor): Remove.
8330         (default_stabs_asm_out_destructor): New.
8331         (default_named_section_asm_out_destructor): New.
8332         (dtors_section, default_dtor_section_asm_out_destructor): New.
8333         (default_stabs_asm_out_constructor): New.
8334         (default_named_section_asm_out_constructor): New.
8335         (ctors_section, default_ctor_section_asm_out_constructor): New.
8336         * output.h: Update declarations.
8337         * c-decl.c (c_expand_body): Use target hooks instead of
8338         assemble_constructor and assemble_destructor.
8339         * profile.c (output_func_start_profiler): Likewise.
8340         * objc/objc-act.c (finish_objc): Likewise.
8341         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
8342         for the constructor.
8343         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
8344
8345         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
8346         (DTORS_SECTION_ASM_OP): Likewise.
8347         (__CTOR_LIST__): Use attribute section when possible.
8348         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
8349
8350         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
8351         ASM_OUTPUT_CONSTRUCTOR.
8352
8353         * config/darwin.c (machopic_asm_out_constructor): New.
8354         (machopic_asm_out_destructor): New.
8355         * config/darwin-protos.h: Update declarations.
8356         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8357         (ASM_OUTPUT_DESTRUCTOR): Remove.
8358         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8359         * config/nextstep.c (nextstep_asm_out_constructor): New.
8360         (nextstep_asm_out_destructor): New.
8361         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8362         (ASM_OUTPUT_DESTRUCTOR): Remove.
8363         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8364         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
8365         ASM_OUTPUT_*STRUCTOR.
8366         * config/i386/aix386ng.h: Likewise.
8367
8368         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
8369         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
8370         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
8371         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8372         * config/lynx.h: Likewise.
8373         * config/netware.h: Likewise.
8374         * config/psos.h: Likewise.
8375         * config/alpha/alpha-interix.h: Likewise.
8376         * config/alpha/elf.h: Likewise.
8377         * config/arc/arc.h: Likewise.
8378         * config/arm/aof.h: Likewise.
8379         * config/arm/coff.h: Likewise.
8380         * config/arm/elf.h: Likewise.
8381         * config/c4x/c4x.h: Likewise.
8382         * config/h8300/h8300.h: Likewise.
8383         * config/i386/cygwin.h: Likewise.
8384         * config/i386/djgpp.h: Likewise.
8385         * config/i386/i386-coff.h: Likewise.
8386         * config/i386/i386-interix.h: Likewise.
8387         * config/i386/sco5.h: Likewise.
8388         * config/i386/vsta.h: Likewise.
8389         * config/i386/win32.h: Likewise.
8390         * config/i960/i960-coff.h: Likewise.
8391         * config/ia64/sysv4.h: Likewise.
8392         * config/m68hc11/m68hc11.h: Likewise.
8393         * config/m68k/coff.h: Likewise.
8394         * config/m68k/mot3300.h: Likewise.
8395         * config/m88k/m88k.h: Likewise.
8396         * config/mcore/mcore-pe.h: Likewise.
8397         * config/mcore/mcore.h: Likewise.
8398         * config/mips/elf.h: Likewise.
8399         * config/mips/elf64.h: Likewise.
8400         * config/mips/iris6.h: Likewise.
8401         * config/pa/pa64-hpux.h: Likewise.
8402         * config/rs6000/sysv4.h: Likewise.
8403         * config/sh/sh.h: Likewise.
8404         * config/sparc/litecoff.h: Likewise.
8405
8406         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
8407         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
8408         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8409         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8410         (ASM_OUTPUT_DESTRUCTOR): Remove.
8411         * config/a29k/a29k.c: Move include of tree.h.
8412         * config/a29k/udi.h: Delete file.
8413         * config/alpha/alpha.c (vms_asm_out_constructor): New.
8414         (vms_asm_out_destructor): New.
8415         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
8416         (EXTRA_SECTION_FUNCTIONS): Likewise.
8417         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8418         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8419         * config/c4x/c4x.c: Move include of tree.h.
8420         * config/clipper/clipper.c (clix_asm_out_constructor): New.
8421         (clix_asm_out_destructor): New.
8422         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8423         (ASM_OUTPUT_DESTRUCTOR): Remove.
8424         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8425         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8426         (TARGET_ASM_CONSTRUCTOR): New.
8427         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
8428         (sco_asm_out_constructor): New.
8429         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
8430         * config/i386/svr3gas.h: Remove stack grows up code.
8431         Remove code duplicated from i386/sysv3.h.
8432         (TARGET_ASM_CONSTRUCTOR): New.
8433         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8434         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
8435         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8436         (TARGET_ASM_CONSTRUCTOR): New.
8437         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
8438         (m68hc11_asm_out_destructor): New.
8439         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
8440         (TARGET_ASM_DESTRUCTOR): New.
8441         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
8442         * config/m68k/dpx2.h: Properly undef all the bits inherited from
8443         config/svr3.h pertaining to section manipulation.
8444         * config/m68k/dpx2g.h: Remove #if 0 code.
8445         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
8446         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
8447         (ASM_OUTPUT_CONSTRUCTOR): Remove.
8448         (TARGET_ASM_CONSTRUCTOR): New.
8449         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
8450         (m88k_svr3_asm_out_constructor): New.
8451         (m88k_svr3_asm_out_destructor): New.
8452         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8453         (ASM_OUTPUT_DESTRUCTOR): Remove.
8454         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8455         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
8456         * config/rs6000/aix.h: Likewise.
8457         * config/mips/rtems64.h: Don't undef removed constructor related bits.
8458         * config/mips/vxworks.h: Likewise.
8459         * config/rs6000/lynx.h: Likewise.
8460         * config/sh/elf.h: Likewise.
8461         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
8462         (DTORS_SECTION_ASM_OP): New.
8463         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8464         (ASM_OUTPUT_DESTRUCTOR): Remove.
8465         * config/sparc/sol2-sld-64.h: Likewise.
8466         * config/vax/vax.c (vms_asm_out_constructor): New.
8467         (vms_asm_out_destructor): New.
8468         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8469         (ASM_OUTPUT_DESTRUCTOR): Remove.
8470         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8471
8472         * doc/tm.texi (@node Initialization): Update.
8473
8474 2001-08-09  Richard Henderson  <rth@redhat.com>
8475
8476         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
8477         (__do_global_dtors_aux): Use gp-relative static data to avoid
8478         one dynamic relocation.
8479         (__do_frame_setup): Register Java classes.
8480         * config/alpha/crtend.asm (__JCR_END__): New.
8481
8482 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
8483
8484         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
8485         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
8486         (GEN, STAGESTUFF): Add new files.
8487         (insn-constants.h, s-constants, tm-preds.h, s-preds,
8488         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
8489         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
8490         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
8491         as well as insn-codes.h and insn-flags.h in config.h; and no
8492         extra headers in tconfig.h and hconfig.h.
8493
8494         * gencodes.c: Eliminate code to generate predicate declarations
8495         or #defines for md-file constants.
8496         * genconstants.c, genpreds.c: New files.
8497
8498         * i386.md: Re-order guard expressions such that TARGET_64BIT
8499         comes first, when this permits better optimization.  Add
8500         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
8501         why this is desirable.
8502
8503 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
8504
8505         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
8506         (find_fde_for_dso): Remove.
8507         (_Unwind_IteratePhdrCallback): New.
8508         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
8509         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
8510
8511 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8512
8513         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
8514         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
8515
8516 2001-08-09  Graham Stott  <grahams@redhat.com>
8517
8518         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
8519         (vis_no_unit): Use it.
8520         (visualize_no_unit): Add the insn only if room exists.
8521
8522 2001-08-09  Graham Stott  <grahams@redhat.com>
8523
8524         * predict.c (estimate_probability): Replace magic numbers with
8525         appropriate enumeration.
8526
8527 2001-08-09  Graham Stott  <grahams@redhat.com>
8528
8529         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
8530         parameter.
8531         (EXTRACT_FLAGS): Likewise.
8532
8533 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
8534
8535         * config/mips/mips.c    (mips_legitimate_address_p): Check for
8536         CONST_INT in last patch.
8537
8538 2001-08-08  Anthony Green  <green@redhat.com>
8539
8540         * java/class.c (emit_register_classes): Use assemble_jcr if
8541         possible.  Keep the original mechanism as a fallback.
8542         * defaults.h (JCR_SECTION_NAME): Define if we have named section
8543         and weak symbol support.
8544         * crtstuff.c (__JCR_LIST__): Define.
8545         (__JCR_END__): Define.
8546         (_Jv_RegiserClasses): Define weak symbol if possible.
8547         (__do_global_ctors_aux): Register classes for ELF targets with
8548         weak symbol support.
8549
8550 2001-08-08  Kazu Hirata  <kazu@hxi.com>
8551
8552         * dbxout.c: Fix comment formatting.
8553         * dependence.c: Likewise.
8554         * df.c: Likewise.
8555         * diagnostic.c: Likewise.
8556         * dominance.c: Likewise.
8557         * doprint.c: Likewise.
8558         * dwarf2out.c: Likewise.
8559         * dwarfout.c: Likewise.
8560         * emit-rtl.c: Likewise.
8561         * except.c: Likewise.
8562         * explow.c: Likewise.
8563         * expmed.c: Likewise.
8564         * expr.c: Likewise.
8565         * flow.c: Likewise.
8566         * fold-const.c: Likewise.
8567         * function.c: Likewise.
8568
8569 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8570
8571         * global.c (retry_global_alloc): Avoid shadowing allocno.
8572
8573 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
8574
8575         * except.c (remove_fixup_regions): Fix typo.
8576
8577 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
8578
8579         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
8580         unsigned HOST_WIDE_INT to avoid warning.
8581         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
8582         * flow.c (set_block_for_new_insns): Likewise.
8583
8584 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
8585
8586         * sibcall.c (return_value_pseudo): New static variable.
8587         (skip_copy_to_return_value): Handle return_value_pseudo.
8588         (call_ends_block_p): Ensure that return_value_pseudo is set.
8589         (optimize_sibling_and_tail_recursive_call): Discover the
8590         load of pseudo return value in alternate exit block.
8591
8592 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
8593
8594         * calls.c (ECF_ALWAYS_RETURN): New constant.
8595         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
8596         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
8597         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
8598         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
8599         * rtl.c (reg_note_name): New name.
8600         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
8601
8602 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
8603
8604         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
8605
8606 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
8607
8608         * alias.c (get_alias_set): Return a previously calculated
8609         alias set for a VAR_DECL.
8610         * function.c (gen_mem_addressof): Calculate the alias set before
8611         touching the RTL.
8612
8613 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
8614
8615         * predict.def: Set hitrates according our experimental run.
8616
8617 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
8618
8619         * i386.h (HARD_REGNO_RENAME_OK): New macro.
8620
8621 2001-08-08  H.J. Lu <hjl@gnu.org>
8622
8623         * config/mips/mips.c (mips_unique_section): New. Copied from
8624         config/mips/elf.h.
8625
8626         * config/mips/mips-protos.h (mips_unique_section): New
8627         prototype.
8628
8629         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
8630
8631         * config/mips/little.h: New. Generic little endian mips
8632         targets. Only mips*-*-linux* is converted to use it so far.
8633
8634         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
8635         (WCHAR_TYPE): Defined
8636         (WCHAR_TYPE_SIZE): Likewise.
8637         (INIT_SUBTARGET_OPTABS): Likewise.
8638         (BSS_SECTION_ASM_OP): Likewise.
8639         (SBSS_SECTION_ASM_OP): Likewise.
8640         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8641         (ASM_DECLARE_OBJECT_NAME): Likewise.
8642         (UNIQUE_SECTION): Likewise.
8643         (EXTRA_SECTIONS): Likewise.
8644         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
8645         (ASM_OUTPUT_DESTRUCTOR): Likewise.
8646         (ASM_OUTPUT_DEF): Likewise.
8647         (HANDLE_SYSV_PRAGMA): Removed.
8648         (NO_IMPLICIT_EXTERN_C): Likewise.
8649         (TARGET_MEM_FUNCTIONS): Likewise.
8650         (STARTFILE_SPEC): Likewise.
8651         (ENDFILE_SPEC): Likewise.
8652         (LIB_SPEC): Likewise.
8653         (INVOKE__main): Likewise.
8654         (CTOR_LIST_BEGIN): Likewise.
8655         (CTOR_LIST_END): Likewise.
8656         (DTOR_LIST_BEGIN): Likewise.
8657         (DTOR_LIST_END): Likewise.
8658         (SET_ASM_OP): Likewise.
8659         (ASM_OUTPUT_SOURCE_LINE): Likewise.
8660         (ASM_OUTPUT_DEF): Likewise.
8661         (ASM_OUTPUT_IDENT): Likewise.
8662
8663         * config/mips/mips.h (ASM_SPEC): Undefine before define.
8664         (CPLUSPLUS_CPP_SPEC): Likewise.
8665         (ASM_APP_ON) Redefine only if not defined.
8666         (ASM_APP_OFF): Likewise.
8667         (ASM_OUTPUT_SOURCE_LINE): Likewise.
8668         (ASM_OUTPUT_IDENT): Likewise.
8669
8670         * config.gcc: Update tm_file for Linux/mips.
8671
8672 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
8673
8674         * cselib.c (cselib_record_sets): If insn is predicated, turn
8675         sources into IF_THEN_ELSEs.
8676
8677         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
8678         Turn into define_insn_and_split.
8679
8680         * sched-deps.c: Include "cselib.h".
8681         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
8682         Use cselib to turn memory addresses into VALUEs.
8683         (sched_analyze): Call cselib_init/cselib_finish if necessary.
8684         * sched-int.h (struct sched_info): New member USE_CSELIB.
8685         * sched-ebb.c (ebb_sched_info): Initialize it.
8686         * sched-rgn.c (rgn_sched_info): Likewise.
8687         * Makefile.in (sched-deps.o): Update dependencies.
8688
8689         * cselib.h (cselib_subst_to_values): Declare.
8690         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
8691         that have no value and autoincs to be handled by generating a new
8692         dummy value.
8693
8694 2001-08-08  Graham Stott  <grahams@redhat.com>
8695
8696         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
8697         within fixed length SEQUENCE.
8698
8699 2001-08-08  Graham Stott  <grahams@redhat.com>
8700
8701         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
8702         (diagnostic_prefixing_rule): Likewise.
8703         (diagnostic_line_cutoff): Likewise.
8704         (diagnostic_kind_count): Likewise.
8705
8706 2001-08-08  Graham Stott  <grahams@redhat.com>
8707
8708         * alias.c (find_base_decl): Delete redundent assignment.
8709
8710 2001-08-08  Graham Stott  <grahams@redhat.com>
8711
8712         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
8713         (abs): Uppercase and paranthesize macro parameter.
8714         (MEM_DEPENDENCY): Add whitespace.
8715
8716 2001-08-08  Graham Stott  <grahams@redhat.com>
8717
8718         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
8719         failure check for CONST_INT
8720
8721 2001-08-08  Graham Stott  <grahams@redhat.com>
8722
8723         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
8724         (libcall_dead_p): Likewise.
8725
8726         (mark_used_regs): Constify fmt.
8727         (find_use_as_address): Likewise.
8728
8729 2001-08-08  Graham Stott  <grahams@redhat.com>
8730
8731         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
8732          parameter.
8733
8734 2001-08-08  Graham Stott  <grahams@redhat.com>
8735
8736         * combine.c (combine_simplify_rtx): Update comment and
8737         remove erroneous test.
8738
8739 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8740
8741         * cppinit.c (cpp_finish): Pop the final buffer without comment.
8742         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
8743         take care to avoid multiple no-newline at EOF warnings in that
8744         case.
8745
8746 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
8747
8748         * calls.c (expand_call): Do not emit INSN_SETJMP note.
8749         (emit_library_call_value_1): Likewise.
8750         (emit_call_1): Emit REG_SETJMP note.
8751         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
8752         of INSN_SETJMP
8753         * cselib.c (cselib_process_insn): Likewise.
8754         * flow.c (propagate_block): Likewise.
8755         * loop.c (find_and_verify_loops): Likewise.
8756         * reload.c (find_equiv_regs): Likewise.
8757         * reload1.c (reload): Likewise.
8758         * resource.c (mark_referenced_resources,
8759         mark_set_resources): Likewise.
8760         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
8761         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
8762         * haifa-sched.c (unlink_other_notes): Likewise.
8763         (reemit_notes): Likewise.
8764         * sched-ebb.c (sched_ebb): Likewise.
8765         * sched-rgc.c (sched_region): Likewise.
8766         * rtl.c (note_insn_name): Likewise.
8767         (reg_note_name): Add REG_SETJMP
8768         * rtl.h (reg_note): Add REG_SETJMP.
8769         (insn_note): Remove NOTE_INSN_SETJMP.
8770
8771         * profile.c (branch_prob): Add fake edges for setjmp.
8772
8773 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
8774
8775         * config.gcc: Quote target_cpu_default2 correctly for
8776         powerpc*-*-* targets.
8777
8778 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8779
8780         * cpplib.h, line-map.h: Update comments.
8781         * cppmain.c (printer_init): Move inline.
8782         (maybe_print_line, print_line): Take a map pointer.
8783         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
8784         (cb_file_change): Don't use prior value of print.map.
8785
8786 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
8787
8788         * doc/install.texi: Document fine-grained multilib configuration.
8789
8790 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
8791
8792         * rtlanal.c (find_first_parameter_load): Call note_stores
8793         only on the instructions.
8794
8795 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
8796
8797         * alias.c (nonlocal_mentioned_p):
8798         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
8799         * calls.c (emit_call_1): Likewise.
8800         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
8801         * cselib.c (cselib_process_insn): Likewise.
8802         * df.c (df_insns_modify): Likewise.
8803         * flow.c (need_fake_edge_p): Likewise.
8804         (propagate_one_insn): Likewise.
8805         * haifa-sched.c (reemit_notes): Likewise.
8806         * integrate.c (copy_insn_list): Likewise.
8807         * jump.c (delete_prior_computation): Likewise.
8808         * local-alloc.c (validate_equiv_mem): Likewise.
8809         * loop.c (scan_loop): Likewise.
8810         * predict.c (estimate_probability): Likewise.
8811         * reload.c (reload): Likewise.
8812         * sched-deps (sched_analyze): Likewise.
8813         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
8814         * gcse.c (compute_hash_table): Likewise.
8815         (mark_call): Likewise.
8816         (store_killed_in_insn): Likewise.
8817
8818 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
8819
8820         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
8821
8822 2001-08-06  Richard Henderson  <rth@redhat.com>
8823
8824         * varasm.c (assemble_gc_entry): Remove.
8825         * output.h: Likewise.
8826
8827 2001-08-06  Richard Henderson  <rth@redhat.com>
8828
8829         * varasm.c (assemble_constructor): Take a symbol_ref and a
8830         priority instead of a bare string.  Move priority handling
8831         here from cp/decl2.c.
8832         * output.h: Update decls.
8833
8834         * c-decl.c (c_expand_body): Update calls to assemble_constructor
8835         and assemble_destructor.
8836         * profile.c (output_func_start_profiler): Likewise.
8837         * objc/objc-act.c (finish_objc): Likewise.
8838         (build_module_descriptor): Return the symbol not the symbol name.
8839
8840 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
8841
8842         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
8843         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
8844         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
8845         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
8846         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
8847         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
8848
8849 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8850
8851         * cpperror.c (print_containing_files): Moved to line-map.c.
8852         (print_location): line-map.c handles re-listing or otherwise.
8853         * cpphash.h (struct lexer_state): Remove next_bol.
8854         (struct cpp_buffer): Remove include_stack_listed.
8855         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
8856         Remove faked buffer handling.
8857         (_cpp_do_file_change): Tweak.
8858         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
8859         * cppmain.c (struct printer): Remove filename.
8860         (print_line, cb_file_change): Update accordingly.
8861         * line-map.c: Include intl.h.
8862         (init_line_maps): Initialize last_listed.
8863         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
8864         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
8865         (print_containing_files): New.
8866         * line-map.h (struct line_maps): New member last_listed.
8867         (print_containing_files, INCLUDED_FROM): New.
8868         * Makefile.in: Update.
8869         * po/POTFILES.in: Add line-map.c.
8870
8871 2001-08-06  Richard Henderson  <rth@redhat.com>
8872
8873         * except.c (convert_from_eh_region_ranges_1): Never mark
8874         USE or CLOBBER insns as throwing.
8875
8876         * expr.c (store_constructor): Don't clobber memory targets.
8877
8878 2001-08-06  Andreas Jaeger  <aj@suse.de>
8879
8880         * profile.c (branch_prob): Remove unused variable insn.
8881
8882         * Makefile.in (local-alloc.o): Add dependency on except.h.
8883
8884         * local-alloc.c: Include except.h for can_throw_internal prototype.
8885
8886 2001-08-06  Richard Henderson  <rth@redhat.com>
8887
8888         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
8889         * function.c (expand_main_function): Implement it.
8890         * doc/tm.texi: Document it.
8891
8892 2001-08-06  Stan Shebs  <shebs@apple.com>
8893
8894         * doc/install.texi: Document powerpc-*-darwin* details.
8895
8896 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
8897
8898         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
8899         (ASM_CPU_SPEC): Move back to rs6000.h
8900         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
8901
8902         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
8903
8904         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
8905         readded.
8906
8907         * config/rs6000/linux64.h: Ditto.
8908
8909         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
8910         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
8911         nothing.
8912
8913         Remove accidently readded definitions of FUNCTION_PROLOGUE,
8914         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
8915
8916         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
8917         to rs6000.h
8918
8919 2001-08-05  Richard Henderson  <rth@redhat.com>
8920
8921         * local-alloc.c (update_equiv_regs): Do not move insns that
8922         can throw.
8923
8924 2001-08-05  Jan Hubicka  <jh@suse.cz>
8925
8926         * Makefile.in (reload1.o): Add dedendancy on except.h
8927         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
8928         prototypes.
8929         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
8930         indicating wehther edges has been cleaned up.
8931         * reload1.c: Inlucde except.h
8932         (fixup_abnormal_edges): Accept deleted insns.
8933         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
8934         after combine.
8935
8936 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8937
8938         * cpplib.c (do_line): Correct line number after pop_buffer.
8939
8940 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
8941
8942         PR preprocessor/3824
8943         * line-map.c: Update comments.
8944         * line-map.h: Update comments.
8945         * tradcif.y: Don't consider large numbers unsigned.
8946
8947 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
8948
8949         PR preprocessor/3081
8950         * c-lex.c (map): New.
8951         (cb_file_change): Update map and use it.
8952         (cb_def_pragma, cb_define, cb_undef): Use map and line.
8953         (c_lex): Update to use map.
8954         * cpperror.c (print_location): Move to using logical line numbers.
8955         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
8956         (cpp_make_system_header): Similarly.
8957         (_cpp_execute_include): Stop line numbering hacks.  Store the
8958         line we will return to.
8959         * cpphash.h (CPP_BUF_LINE): Remove.
8960         (struct cpp_buffer): Remove lineno and pseudo_newlines.
8961         Add map and return_to_line.
8962         (_cpp_do_file_change): Update.
8963         * cppinit.c (cpp_start_read): Update line kludge.
8964         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
8965         (trigraph_ok): Use logical line numbers for diagnostics.
8966         (skip_block_comment): Likewise.
8967         (skip_whitespace): Likewise.
8968         (skip_line_comment): Use pfile->line instead.
8969         (_cpp_lex_token): Update to use logical line numbering exclusively.
8970         Handle BOL locally.  Accept new lines in directives, but keep
8971         pfile->line decremented.  Diagnostics use logical lines.  Update
8972         directive handling.
8973         * cpplib.c (SEEN_EOL): New.
8974         (skip_rest_of_line, check_eol): Use it.
8975         (end_directive): Increase line number when accepting the newline
8976         at the end of a directive.
8977         (run_directive): Simplify.
8978         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
8979         (_cpp_do_file_change): Update to take buffer line number as an
8980         argument, and store the current map in the cpp_reader.  Remove
8981         line number kludges.
8982         (_cpp_do__Pragma): Restore output position after a _Pragma.
8983         (cpp_push_buffer): Don't set output line or lineno.
8984         (_cpp_pop_buffer): Transfer more info from a faked buffer.
8985         Remove line kludge.  Set output_line.
8986         * cppmacro.c (builtin_macro): Update handling of __LINE__.
8987         (parse_arg): Use logical lines.
8988         (save_lookahead_token): Save EOFs too now.
8989         * cppmain.c (struct printer): Fix comments.
8990         (printer_init): Simplify, let caller do errors.
8991         (scan_translation_unit, check_multiline_token, dump_macro): Update.
8992         (maybe_print_line): Simplify.
8993         (print_line): Don't print a linemarker if -P.
8994         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
8995         (cb_file_change): Simplify.
8996         * line-map.h (LAST_SOURCE_LINE): Fix.
8997         (CURRENT_LINE_MAP): New.
8998
8999 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
9000
9001         * doloop.c (doloop_modify_runtime): Properly compute number of
9002         iterations if loop was unrolled.
9003
9004         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
9005         if their CSELIB_VAL_PTRs are.
9006
9007         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
9008         (setup_spill_pointers): Initialize it.
9009         (spill_restore_mem): Set it.
9010         (do_spill, do_restore): Use it to add REG_INC note.
9011         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
9012
9013         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
9014         asms if other insns are available.
9015
9016         * config/ia64/ia64.c (condop_operator): New predicate.
9017         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
9018         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
9019         patterns.
9020
9021         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
9022         temporary register than directly using a MEM.
9023
9024 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
9025
9026         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
9027         parameter in last change.
9028
9029 2001-08-04  Zack Weinberg  <zackw@panix.com>
9030
9031         * sparc.md: Don't use #if inside C test expression.
9032
9033 2001-08-04  Richard Henderson  <rth@redhat.com>
9034
9035         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
9036
9037 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9038
9039         * cpphash.h (struct cpp_reader): New member directive_line.
9040         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
9041         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
9042         do_pragma): Pass line to callbacks.
9043         (start_directive): Record line of directive.
9044         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
9045         cb_include): Similarly.
9046         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
9047         Similarly.
9048
9049 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
9050
9051         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
9052         comment.
9053
9054 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
9055
9056         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
9057
9058         * reload1.c (fixup_abnormal_edges): New static function.
9059         (reload): Use it.
9060
9061         * flow.c (need_fake_edge_p): New function.
9062         (flow_call_edges_add): Fix handling of noreturn and sibling calls;
9063         avoid call insn to be very last insn in the insn stream.
9064
9065         * profile.c (branch_prob): Call flow_call_edges_add instead of
9066         doing that by hand; cleanup cfg to re-merge basic blocks once
9067         we are done.
9068
9069 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9070
9071         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
9072         are also on line-map.h.
9073         * cppfiles.c (stack_include_file): Update.
9074         * cpphash.h (struct cpp_buffer): New member return_at_eof.
9075         (_cpp_pop_buffer): New.
9076         * cppinit.c (cpp_destroy, cpp_finish): Update.
9077         (do_includes): Mark each buffer to return at EOF.
9078         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
9079         return as requested.
9080         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
9081         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
9082         * cpplib.h (cpp_pop_buffer): Remove.
9083         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
9084         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
9085         buffers.
9086         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
9087         to pop buffers.
9088         (do_preprocessing): Update.
9089         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
9090         * c-parse.in (_yylex): Similarly.
9091         * scan-decls.c (scan_decls): Similarly.
9092         * line-map.h: Update comments.
9093
9094         * objc/Make-lang.in (objc-act.o): Update dependencies.
9095
9096 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9097
9098         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
9099         and soft register for operand 0.
9100         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
9101
9102 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9103
9104         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
9105         register for operand 0.
9106         ("bitcmpqi_z_used"): Allow memory for operand 0.
9107         (split "bitcmpqi"): New split to handle address reg as operand 1.
9108
9109 2001-08-04  Andreas Jaeger  <aj@suse.de>
9110
9111         * gcse.c: Revert Daniel's last patch.
9112
9113 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
9114
9115         * sparc-protos.h: Add prototypes for fp_zero_operand and
9116         reg_or_0_operand.
9117         * sh-protos.h: Add prototype for fpul_operand.
9118
9119 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
9120
9121         * doc/extend.texi (Other Builtins): Fix typo in last change.
9122
9123 2001-08-03  Richard Henderson  <rth@redhat.com>
9124
9125         * target.h (gcc_target): Add asm_out.named_section,
9126         section_type_flags, have_named_sections.
9127         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
9128         (TARGET_HAVE_NAMED_SECTIONS): New.
9129         (TARGET_SECTION_TYPE_FLAGS): New.
9130
9131         * Makefile.in (toplev.o): Depend on TARGET_H.
9132         (varasm.o, dbxout.o): Likewise.
9133         * c-common.c (decl_attributes): Check targetm.have_named_sections
9134         instead of ifdef ASM_OUTPUT_SECTION_NAME.
9135         * dbxout.c (dbxout_function_decl): Likewise.
9136         (dbxout_function_end): Likewise.
9137         * toplev.c (compile_file): Likewise.
9138         * varasm.c (exception_section): Likewise.
9139         * cp/decl2.c (finish_objects): Likewise.
9140
9141         * defaults.h (EH_FRAME_SECTION): Remove.
9142         (EH_FRAME_SECTION_ASM_OP): Remove.
9143         (EH_FRAME_SECTION_NAME): New.
9144         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
9145         (UNIQUE_SECTION_P): Remove.
9146         * dwarf2out.c (SECTION_FORMAT): Remove.
9147         (ASM_OUTPUT_SECTION): Remove.
9148         (output_call_frame_info): Use named_section_flags.
9149         (output_comp_unit, dwarf2out_start_source_file): Likewise.
9150         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
9151         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
9152         * varasm.c (in_eh_frame, eh_frame_section): Remove.
9153         (named_section_flags): New.
9154         (named_section): Use it and targetm.section_type_flags.
9155         (resolve_unique_section): New.
9156         (assemble_start_function): Use it.
9157         (asm_emit_uninitialised, assemble_variable): Likewise.
9158         (default_section_type_flags): New.
9159         (default_no_named_section, default_elf_asm_named_section): New.
9160         (default_coff_asm_named_section, default_pe_asm_named_section): New.
9161         * output.h: Update varasm.c decls.
9162         (SECTION_*): New flags.
9163
9164         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
9165         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
9166
9167         * config/elfos.h (UNIQUE_SECTION_P): Remove.
9168         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
9169         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
9170         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
9171         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
9172         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
9173         * config/mips/elf.h, config/mips/elf64.h: Likewise.
9174         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
9175         * config/pa/pa64-hpux.h,
9176
9177         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
9178         (TARGET_ASM_NAMED_SECTION): New.
9179         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
9180         * config/alpha/vms.h, config/arm/coff.h: Likewise.
9181         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
9182         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
9183         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
9184         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
9185         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
9186         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
9187         * config/i386/sco5.h, config/i386/win32.h: Likewise.
9188         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
9189         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
9190         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
9191         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
9192         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
9193         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
9194         * config/sparc/sysv4.h: Likewise.
9195
9196         * config/nextstep.h: Error until named sections implemented.
9197
9198         * config/a29k/a29k.c (a29k_asm_named_section): New.
9199         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
9200         (vms_section_type_flags, vms_asm_named_section): New.
9201         * config/arm/arm.c (arm_elf_asm_named_section): New.
9202         * config/avr/avr.c (asm_output_section_name): Remove.
9203         * config/avr/avr-protos.h: Update.
9204         * config/c4x/c4x.c (c4x_asm_named_section): New.
9205         * config/h8300/h8300.c (h8300_asm_named_section): New.
9206         * config/i386/i386.c (sco_asm_named_section): New.
9207         * config/i386/winnt.c (SECTION_PE_SHARED): New.
9208         (i386_pe_section_type_flags): New.
9209         (i386_pe_asm_named_section): New.
9210         * config/i386/i386-protos.h: Update.
9211         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
9212         * config/mcore/mcore.c (mcore_asm_named_section): New.
9213         * config/mips/mips.c (iris6_asm_named_section): New.
9214         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
9215         instead of UNIQUE_SECTION_P.
9216         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
9217         (xcoff_asm_named_section): New.
9218         * config/sh/sh.c (sh_asm_named_section): New.
9219         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
9220
9221         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
9222         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
9223         (EH_FRAME_SECTION_NAME): New.
9224         (EXCEPTION_SECTION): New.
9225         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
9226         (DEBUG_*_SECTION): Remove.
9227         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
9228         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
9229         (EH_FRAME_SECTION_ASM_OP): Remove.
9230
9231         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
9232         (ASM_OUTPUT_SECTION_NAME): Remove.
9233         (TARGET_ASM_NAMED_SECTION): New.
9234         (TARGET_HAVE_NAMED_SECTIONS): New.
9235         (TARGET_SECTION_TYPE_FLAGS): New.
9236         (EH_FRAME_SECTION_ASM_OP): Remove.
9237         (EH_FRAME_SECTION_NAME): New.
9238
9239 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
9240
9241         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
9242         for complex expressions when cfun == 0.
9243         * doc/extend.texi: Document that __builtin_constant_p can be
9244         used in data initializers as well as functions.
9245
9246 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
9247
9248         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
9249         variable I locally, instead of expecting a declaration in the
9250         calling context.
9251
9252 2001-08-03  Richard Henderson  <rth@redhat.com>
9253
9254         * except.c (collect_one_action_chain): Add an explicit cleanup
9255         action if regions surrounding a catch were encoded entirely
9256         within the call-site entry.
9257
9258 2001-08-03  Richard Henderson  <rth@redhat.com>
9259
9260         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
9261         don't take REGNO of a non-register.
9262
9263 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9264
9265         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
9266         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
9267         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
9268         (__gthread_mutex_init_function): New function for mutex initialization.
9269
9270 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
9271
9272         * Makefile.in: Revert screwed up commit.
9273
9274 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9275
9276         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
9277         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
9278         merged by linker script to get a final _exit().
9279         (__do_global_dtors): New for destructor handling in specific exit
9280         section.
9281         (__do_global_ctors): New for constructors in specific install section.
9282         (__map_data_section): Map data sections before running constructors.
9283         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
9284         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
9285         (DTORS_SECTION_ASM_OP): Likewise.
9286         (CTORS_SECTION_FUNCTION): Define to force a reference to
9287         __do_global_ctors.
9288         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
9289
9290 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
9291
9292         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
9293
9294         * Makefile.in: Add df.h to gcse.c dependencies.
9295
9296 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9297
9298         * varasm.c (output_constant_def_contents): Use for the length of a
9299         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
9300         depending on which is larger.
9301
9302 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
9303
9304         * gcse.c: Include df.h for use as a dataflow analyzer.
9305         Remove regvec.
9306         Declaration of reg_set_info: gone.
9307         New df_analyzer variable used by store motion.
9308         (reg_set_info): Deleted.
9309         (mark_mem_regs): New function, analyze regs used by a mem.
9310         (store_ops_ok): Use dataflow analyzer results to determine if
9311         necessary regs are changed in the block.
9312         (find_moveable_store): Remove check for symbol ref, we can handle
9313         much more complex expressions now.
9314         (compute_store_table): Remove most of the code, it's unnecessary
9315         now that the dataflow analyzer records the info for us.
9316         (store_killed_after): Add parameter to say whether to do the
9317         store_ops_okay test, used to speed up testing when we already know
9318         the answer, and just want to know if the store itself was killed.
9319         (build_store_vector): Largely rewritten to calculate the various
9320         vectors properly, and somewhat optimized.
9321         (store_motion): Init the df_analyzer, get REG_DEF chains.
9322         Also handle trapping expressions (since mems almost always trap)
9323         (simple_mem): Redefine what a simple mem is.
9324
9325 2001-08-03  DJ Delorie  <dj@redhat.com>
9326
9327         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
9328         set from a constant part of the condition.
9329
9330 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
9331
9332         * mkdeps.c (deps_add_default_target): Make local variable
9333         ``start'' a const char pointer.
9334         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
9335
9336 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9337
9338         * doc/install.texi (Configuration): Fix markup.
9339         (Specific, i?86-*-udk): Likewise.
9340         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
9341         --with-gnu-ld.
9342         Document --enable-threads and --enable-libgcj status.
9343         (Specific, mips-sgi-irix*): Canonicalize triples.
9344         (Specific, mips-sgi-irix5): Warn about problems with this config.
9345         Mention required GNU as patch.
9346         Native assembler problems are fixed.
9347         (Specific, mips-sgi-irix6): Update O32 ABI support status.
9348         Document --enable-threads and --enable-libgcj status.
9349
9350 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
9351
9352         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
9353         of mkinstalldirs.
9354
9355 2001-08-03  Richard Henderson  <rth@redhat.com>
9356
9357         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
9358         constant data.
9359
9360 2001-08-03  Richard Henderson  <rth@redhat.com>
9361
9362         * rtlanal.c (find_first_parameter_load): Stop if we
9363         reach a CODE_LABEL at BOUNDARY.
9364
9365 2001-08-03  Richard Henderson  <rth@redhat.com>
9366
9367         * config/alpha/alpha.md (force_movdi): New insn.
9368         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
9369         Tweek FRP marking of VMS prologue insns.
9370         * config/alpha/vms.h (EPILOGUE_USES): New.
9371
9372 2001-08-02  Richard Henderson  <rth@redhat.com>
9373
9374         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
9375
9376 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
9377
9378         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
9379         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
9380         config/convex/convex.h, config/d30v/d30v.c,
9381         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
9382         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
9383         config/mips/mips.h, config/mn10200/mn10200.h,
9384         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
9385         config/v850/v850.h, config/vax/openbsd.h,
9386         config/vax/openbsd1.h, config/vax/ultrix.h,
9387         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
9388         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
9389         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
9390         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
9391         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
9392         in comments and documentation.
9393
9394 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9395
9396         * line-map.c: New.
9397         * line-map.h: New.
9398         * Makefile.in (line-map.o): New.
9399         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
9400         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
9401         * cpperror.c (print_containing_files): Similarly.
9402         (print_location): Update.  Don't output a space before _Pragma.
9403         * cppfiles.c (stack_include_file): Set to line 1 immediately.
9404         (stack_include_filee, cpp_make_system_header): Update.
9405         (_cpp_execute_include): Get logical line number right for calling
9406         as-yet-unterminated #include.
9407         * cpphash.h (struct cpp_reader): Add line_maps.
9408         (_cpp_do_file_change): Update.
9409         * cppinit.c (cpp_create_reader): Initialize line maps.
9410         (cpp_destroy): Destroy line maps.
9411         (cpp_start_read): Get logical line number right.
9412         * cpplex.c (parse_string): Only warn once for multi-line strings.
9413         Use boolean variable for null warning.
9414         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
9415         already.
9416         (do_include_common): End the directive early.
9417         (do_line): Don't warn about out-of-range lines in preprocessed
9418         source.  Update.  Remove unused variables.
9419         (_cpp_do_file_change): Update for new line mapping.
9420         (pragma_cb): New typedef.
9421         (cpp_register_pragma): Stop looking ahead before calling the
9422         handler.  Clean up.
9423         (do_pragma_system_header): End directive early.
9424         (cpp_get_line_maps): New.
9425         (cpp_pop_buffer): Fudge logical line.  Update.
9426         * cpplib.h: Include line-map.h
9427         (enum cpp_fc_reason): Remove.
9428         (struct cpp_file_change): Update.
9429         (cpp_get_line_maps): New.
9430         * cppmain.c (struct_printer): New member map.
9431         (cb_file_change): Update for new mappings.
9432         * fix-header.c (cb_file_change): Similarly.
9433
9434 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
9435
9436         * Makefile.in (libgcc.mk): Define mkinstalldirs.
9437         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
9438
9439 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
9440
9441         * config/vax/vax.c: include expr.h.
9442
9443 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
9444
9445         * Makefile.in ($(srcdir)/configure): Only rebuild in
9446         maintainer mode.
9447         ($(srcdir)/config.in): Only define in maintainer mode.
9448         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
9449
9450 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
9451
9452         * doc/install.texi (Install GCC: Binaries): Update Bull info.
9453
9454 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9455
9456         * gcc.c (set_collect_gcc_options): New function, split out from
9457         main.
9458         Ignore elided switches.
9459         (do_spec_1): Invoke before executing command.
9460         (set_input): Export.
9461         Move declaration ...
9462         * gcc.h (set_input): ... here.
9463         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
9464         file.
9465
9466 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
9467
9468         Kill -fhonor-std.
9469         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
9470         interaction.
9471         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
9472
9473 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
9474
9475         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
9476         for the unnamed instructions it expands to.
9477
9478 2001-08-02  Richard Henderson  <rth@redhat.com>
9479
9480         * regclass.c (call_really_used_regs): Conditionally define.
9481         (init_reg_sets_1): Don't use it if not defined.
9482         (fix_register): Similarly, don't set it.
9483
9484 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9485
9486         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
9487         Correct comment that had been missed in the previous change.
9488
9489 2001-08-01  Stan Shebs  <shebs@apple.com>
9490
9491         * config/darwin.c (machopic_stub_name): Try matching by name.
9492         (update_stubs): New function.
9493         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
9494         unconditionally.
9495
9496 2001-08-01  Richard Henderson  <rth@redhat.com>
9497
9498         * except.c (output_function_exception_table): Use assemble_align.
9499         * varasm.c (assemble_eh_label): Remove.
9500         (assemble_eh_align, assemble_eh_integer): Remove.
9501
9502 2001-08-01  Robert Lipe  <robertl@caldera.com>
9503
9504         * dwarfout.c: Remove reference to README.DWARF.
9505
9506 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
9507
9508         * regclass.c (call_really_used_regs): New array for registers which
9509         are actually used by a call.
9510         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
9511         new array.
9512         (fix_register): Set call_really_used too.
9513         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
9514         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
9515
9516 2001-08-01  Richard Henderson  <rth@redhat.com>
9517
9518         * read-rtl.c (read_name): Consider \r whitespace.
9519
9520 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
9521
9522         * config.gcc: Recognize powerpc-*-netbsd*.
9523
9524         * doc/install.texi (Host/target specific installation notes for
9525         GCC): Mention powerpc-*-netbsd*.
9526
9527         * config/rs6000/netbsd.h: New file.
9528         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
9529         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
9530         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
9531         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
9532         (TARGET_VERSION): Redefine.
9533
9534         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
9535         mcall-netbsd as a match for mcall-sysv.
9536         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
9537         (ncrti.S, ncrtn.S): New targets.
9538         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
9539
9540         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
9541         "netbsd' as a V4 ABI.
9542         (ASM_SPEC): Check for -mcall-netbsd.
9543         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
9544         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
9545         (LIB_SPEC, ENDFILE_SPEC): Ditto.
9546         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
9547         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
9548         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
9549         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
9550
9551         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
9552         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
9553
9554 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
9555
9556         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
9557         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
9558         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
9559         including "unwind-pe.h".
9560
9561 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
9562
9563         * rs6000.md (define_splits): Kill unused constraints.
9564
9565 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
9566                               Jan Hubicka  <jh@suse.cz>
9567
9568         * function.c (thread_prologue_and_epilogue_insns): Kill code
9569         dealing with non-existent CFG.
9570
9571 2001-08-01  Kazu Hirata  <kazu@hxi.com>
9572
9573         * alias.c: Fix comment formatting.
9574         * bitmap.c: Likewise.
9575         * builtins.c: Likewise.
9576         * calls.c: Likewise.
9577         * c-common.c: Likewise.
9578         * c-decl.c: Likewise.
9579         * c-dump.c: Likewise.
9580         * c-lex.c: Likewise.
9581         * collect2.c: Likewise.
9582         * combine.c: Likewise.
9583         * conflict.c: Likewise.
9584         * cppfiles.c: Likewise.
9585         * cppinit.c: Likewise.
9586         * cpplex.c: Likewise.
9587         * cpplib.c: Likewise.
9588         * cppmacro.c: Likewise.
9589         * cppspec.c: Likewise.
9590         * c-pragma.c: Likewise.
9591         * crtstuff.c: Likewise.
9592         * cse.c: Likewise.
9593         * cselib.c: Likewise.
9594         * c-semantics.c: Likewise.
9595         * c-typeck.c: Likewise.
9596
9597 2001-08-01  H.J. Lu <hjl@gnu.org>
9598
9599         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
9600
9601 2001-08-01  H.J. Lu <hjl@gnu.org>
9602
9603         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
9604
9605 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
9606
9607         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
9608         contextualizing Objective-C class name lookup by the lexer.
9609         (typespec_reserved_nonattr): Disable ObjC class name lookup after
9610         seeing a TYPESPEC.
9611         (protocoldef): Add support for forward @protocol declarations.
9612         (yylexname): Suppress ObjC class name lookup in certain contexts;
9613         re-enable after lookup is complete.
9614         (_yylex): Re-enable ObjC class name lookup when certain
9615         punctuation marks are seen.
9616
9617         * objc/objc-act.c (check_protocol_recursively): New function used
9618         for finding circular dependencies in protocols.
9619         (objc_declare_protocols): New function for handling forward
9620         @protocol declarations.
9621         (receiver_is_class_object): Detect the case when 'self' is used
9622         inside of a class method.
9623         (build_message_expr): Issue a warning if class method is desired
9624         but instance method is found instead.
9625         (conforms_to_protocol): Streamline.
9626         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
9627         protocol Foo, even if 'Bar foo' does not.
9628         (check_protocols): Streamline.
9629         (start_protocol): Add checks for circular and duplicate protocol
9630         definitions.
9631         (encode_aggregate_within): For typedefs of structs, encode the
9632         underlying struct.
9633         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
9634         (objc_declare_protocols): New prototype.
9635
9636 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9637
9638         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
9639         * cpplex.c (handle_newline): Update prototype.  Maintain logical
9640         line number.
9641         (skip_escaped_newlines, skip_block_comment, parse_string):
9642         Update accordingly.
9643         (_cpp_lex_token): Update, and store token position within the token.
9644         * cpplib.h (struct cpp_token): Add line and column entries.
9645         * cppmacro.c (replace_args): Position stringified tokens correctly.
9646
9647 2001-08-01  Andreas Jaeger  <aj@suse.de>
9648
9649         * basic-block.h: Add prototype for last_loop_beg_note.
9650
9651 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
9652
9653         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
9654         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
9655         comment.
9656         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
9657         while handling WITH_CLEANUP_EXPR node. Use second operand calling
9658         expand_decl_cleanup.
9659         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
9660         the first RTX.
9661         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
9662         operand while calling simple_cst_equal.
9663         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
9664         operand is the cleanup expression, the third is the RTL_EXPR.
9665         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
9666
9667 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
9668
9669         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
9670
9671 2001-07-31  matthew green  <mrg@eterna.com.au>
9672
9673         * config.gcc (i386-*-netbsdelf): New description.
9674         * config/i386/netbsd-elf.h: New file.
9675
9676 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
9677
9678         * loop.c (check_dbra_loop): Use single_set to compute
9679         jump_label.
9680
9681 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
9682
9683         PowerPC reorg and support for powerpc64-*-linux*.
9684
9685         Also fixes emitting of constants on 32 bit and 64 bit
9686         platforms.
9687
9688         * config.gcc: powerpc64-*-linux* is a new target.
9689         Things that needed aix.h now also include xcoff.h
9690
9691         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
9692         xcoff.h.
9693         Move AIX specific stuff into aix.h.
9694         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
9695         with more than just XCOFF now.
9696         (SET_ASM_OP): Remove, now defined where needed.
9697         (FUNCTION_PROLOGUE): New macro definition.
9698         (FUNCTION_EPILOGUE): New macro definition.
9699         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
9700
9701         * config/rs6000/xcoff.h: New file.
9702
9703         * config/rs6000/linux64.h: New file.
9704
9705         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
9706
9707 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
9708
9709         * rs6000.c (print_operand_address): Handle ELF syntax.
9710         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
9711         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
9712         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
9713
9714 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
9715
9716         * rs6000.c (rs6000_override_options): Only disable
9717         flag_function_sections for XCOFF.
9718         (exact_log2_cint_operand): New predicate.
9719         (reg_or_{add,sub}_cint64_operand): New predicates.
9720         (add_operand): Compare CONST_INT with fewer function calls.
9721         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
9722         (print_operand, case 'p'): Ensure positive operand.
9723         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
9724         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
9725         (PREDICATE_CODES): Add new predicates.
9726         * rs6000.md (addsi3): Split 32-bit constants more correctly.
9727         (divsi3, modsi3): Ensure positive power-of-2.
9728         (adddi3): Use new predicate.  Split 32-bit constants more
9729         correctly.  Re-arrange splitter to handle any constant.
9730         (subdi3): Use new predicate.
9731         (divdi3, moddi3): Ensure positive power-of-2.
9732         (movdi): Use rs6000_emit_set_const.
9733         (load_toc_v4_pic_di): Delete.
9734
9735 2001-07-31  Graham Stott <grahams@redhat.com>
9736
9737         * function.c (pad_below): Revert 2001-07-26 patch.
9738
9739 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
9740
9741         * reg-stack (convert_regs_1): Fix best edge condition.
9742
9743 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
9744
9745         * jump.c (duplicate_loop_exit_test): Better test for jumps
9746         entering the loop; create loop pre_header.
9747
9748 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
9749
9750         * doc/install.texi: Add s390 and s390x as new targets.
9751         * doc/invoke.texi: Add documentation of S/390 and zSeries
9752         target options.
9753         * doc/md.texi: Add documentation of S/390 and zSeries constraints.
9754
9755 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
9756
9757         * config/m68k/m68k.md: Replace all general_operand with
9758         nonimmediate_operand for all destinations.
9759         * config/m68k/m68k.c (not_sp_operand): Likewise.
9760
9761 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
9762
9763         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
9764
9765 2001-07-30  Richard Henderson  <rth@redhat.com>
9766
9767         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
9768         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
9769
9770 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
9771
9772         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
9773         Add missing doc strings
9774         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
9775         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
9776
9777 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
9778
9779         * i386.c (ix86_output_main_function_alignment_hack): New function.
9780         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
9781
9782         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
9783         edges by EDGE_DFS_BACK flag.
9784         (dump_edge_info): Add dfs_back flag.
9785         * basic-block.h (EDGE_DFS_BACK): New constant.
9786         (mark_dfs_back_edges): Declare.
9787         * alias.c (loop_p): Remove.
9788         (mark_constant_function): Use mark_dfs_back_edges.
9789
9790         * reg-stack.c (block_info_def): Add predecesors counter and stack_out.
9791         (reg_to_stack): Call mark_dfs_back_edges; count the predecesors.
9792         (compensate_edge): Break out from ...
9793         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
9794         (convert_regs_2): Set block_done once block is really done;
9795         Do updating of the predecesors counts.
9796
9797         * toplev.c (rest_of_compilation): Recompute block_for_insn
9798         before post-reload cfg_cleanup.
9799         * function.c (thread_prologue_epilogue_insns):
9800         Call set_block_for_new_insns when emitting prologue directly.
9801
9802 2001-07-30  Andreas Jaeger  <aj@suse.de>
9803
9804         * jump.c: Add prototype for mark_modified_reg.
9805
9806         * cse.c (set_live_p): Add unused attribute.
9807
9808         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
9809         overflow.
9810         (scan_for_source_files): Use long for count to avoid overflow.
9811         (output_data): Likewise.
9812         (output_data): Don't use string concatatenation to silence gcc
9813         -traditional.
9814
9815         * predict.c: Fix typos and grammar.
9816
9817         * gcse.c (insert_insn_end_bb): Remove unused variables.
9818
9819 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
9820
9821         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
9822         (attempt_auto_inc): LIkewise.
9823         (mark_used_reg): Likewise.
9824         (try_pre_increment_1): Likewise.
9825         * regclass.c (regclass): Likewise.
9826         * global.c (allocno_compare): Update comment; change scaling factor.
9827         * local-alloc.c (QTY_CMP_PRI): Likewise.
9828         * regs.h (REG_FREQ_FROM_BB): New.
9829         (REG_FREQ_MAX): Likewise.
9830
9831 2001-07-30  H.J. Lu <hjl@gnu.org>
9832
9833         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
9834         -D_GNU_SOURCE.
9835
9836 2001-07-30  H.J. Lu  (hjl@gnu.org)
9837
9838         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
9839         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
9840         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
9841
9842 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
9843
9844         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
9845         as -mthumb-interwork when -mcpu=arm7 is specified.
9846
9847 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
9848
9849         * predict.def (noreturn, loop branch, loop exit): Mark as first
9850         match heuristics.
9851
9852 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
9853
9854         * combine.c (try_combine): Avoid barrier after noop jumps.
9855
9856 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9857
9858         * cpphash.h (struct cpp_reader): Remove import_warning.
9859         * cpplib.c (skip_rest_of_line): Don't bother turning off
9860         macro expansion.
9861         (parse_include): Move include handling to...
9862         (do_include_common): ... here.  Move import warning from...
9863         (do_import): ... here.
9864         (do_pragma_poison): Don't do a callback for poison identifiers.
9865         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
9866         * cppmain.c (setup_callbacks): Similarly.
9867
9868 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
9869
9870         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
9871         handle multiple sets.
9872         * except.c (sjlj_mark_call_sites): .... here.
9873         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
9874
9875 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
9876
9877         Suggested by Richard Henderson and Richard Kenner:
9878         * combine.c (recog_for_combine): Use the fake recog
9879         only if instruction does not match.
9880         * rtl.h (NOOP_MOVE_INSN_CODE): New.
9881         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
9882
9883         * combine.c (try_combine): Discover noop jump as direct jump.
9884
9885 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
9886
9887         * df.c (df_rd_global_compute): Add successors to worklist, not
9888         current item.
9889         (df_ru_global_compute): Ditto.
9890
9891 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
9892
9893         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
9894         increment REG_N_SETS.
9895
9896 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
9897
9898         * sbitmap.h: New prototype for sbitmap_a_xor_b.
9899
9900         * sbitmap.c (sbitmap_a_xor_b): New function.
9901         ifdef the basic block stuff on IN_GCC.
9902
9903 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9904
9905         * cppexp.c (parse_defined): Always record the macro name.
9906         (lex): Don't worry about identifiers, or special-case
9907         CPP_NOT here.
9908         (_cpp_parse_expr): Figure out at the end of the routine
9909         whether we saw a valid !defined() expression.
9910         * cppfiles.c (stack_include_file): Update for mi_valid.
9911         (_cpp_pop_file_buffer): Similarly.
9912         * cpplex.c (_cpp_lex_token): Similarly.
9913         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
9914         mi_if_not_defined, mi_lexed): Remove.
9915         (mi_valid): New.
9916         * cpplib.c (do_if): Simplify.
9917         (do_endif, push_conditional, _cpp_handle_directive): Update
9918         for renaming of mi_state to mi_valid.
9919 doc:
9920         * cpp.texi: Add index entries for digraphs, and add comment
9921         that C++ refers to them as alternative tokens.
9922
9923 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
9924
9925         * basic-block.h (CLEANUP_PRE_LOOP): New.
9926         * except.c (finish_eh_generation): Update call of cleanup_cfg.
9927         * sibcall.c (optimize_sibling_calls): Likewise.
9928         * toplev.c (rest_of_compilation): Likewise.
9929         * flow.c (try_forward_edges): Take argument MODE;
9930         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
9931         (try_optimize_cfg): Update call of try_forward_edges.
9932
9933 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
9934                                 Jan Hubicka  <jh@suse.cz>
9935
9936         * (validate_replace_rtx_1): Fix simplification of MINUS.
9937
9938 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9939
9940         PR preprocessor/3669
9941         * cppinit.c (init_dependency_output): Turn off dump requests
9942         if sending dependencies to stdout.
9943
9944 2001-07-28  Richard Henderson  <rth@redhat.com>
9945
9946         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
9947         not optimizing.
9948
9949 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
9950
9951         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
9952
9953 2001-07-28  Kazu Hirata  <kazu@hxi.com>
9954
9955         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
9956         is VAR_DECL first to prevent an ICE.
9957
9958 2001-07-28  Richard Henderson  <rth@redhat.com>
9959
9960         * varasm.c (immed_real_const_1): Don't elide special cases for
9961         nested functions.
9962         (clear_const_double_mem): Clear const_tiny_rtx too.
9963
9964 2001-07-28  Richard Henderson  <rth@redhat.com>
9965
9966         * dwarf2out.c (dw_val_class_offset): New.
9967         (struct dw_ranges_struct, dw_ranges_ref): New.
9968         (ranges_table, ranges_table_allocated): New.
9969         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
9970         (add_AT_offset, add_ranges, output_ranges): New.
9971         (print_die, output_die): Handle dw_val_class_offset.
9972         (attr_checksum, size_of_die, value_format): Likewise.
9973         (gen_lexical_block_die): Handle non-contiguous blocks.
9974         (gen_block_die): Likewise.
9975         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
9976         if needed.  Dump the ranges table.
9977         * final.c (final_start_function): Remove unnecessary notes and
9978         rebuild the block tree before numbering the blocks.
9979         * function.c (reorder_blocks_0): Walk the existing block tree
9980         to unmark all blocks.
9981         (reorder_blocks_1): Create block fragments when duplicate block
9982         notes are seen.
9983         (reorder_fix_fragments): New.
9984         (reorder_blocks): Call it.
9985         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
9986
9987 2001-07-28  Richard Henderson  <rth@redhat.com>
9988
9989         * emit-rtl.c (adjust_address): Make a copy of the memory address.
9990
9991 2001-07-28  Richard Henderson  <rth@redhat.com>
9992
9993         * flow.c (add_to_mem_set_list): New function.
9994         (init_propagate_block_info): Use it.
9995         (mark_set_1): Likewise.
9996         (insn_dead_p): Canonicalize memory address for dead store
9997         comparison.  Allow wider mode stores to kill narrower mode stores.
9998         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
9999         (invalidate_mems_from_set): Don't handle MEMs.
10000
10001 2001-07-28  Kazu Hirata  <kazu@hxi.com>
10002
10003         * config/h8300/h8300.h: Fix formatting.
10004
10005 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
10006
10007         * basic-block.h (EDGE_FREQUENCY): New macro.
10008         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
10009         for new BB/edges.
10010         * flow.c (find_sub_basic_blocks): Likewise.
10011         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
10012         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
10013
10014         * predict.c (DEF_PREDICTOR): New argument FLAGS.
10015         (HITRATE): New macro.
10016         (PRED_FLAG_FIRST_MATCH): New constant.
10017         (predictor_info): New field flgags.
10018         (combine_predictions_for_insn): Use DS theory to combine
10019         probabilities; set the edge probabilities when finished.
10020         (estimate_probability): Avoid duplicated matches
10021         of LOOP_BRANCH heuristics for nested loops; update comment.
10022         * predict.def: Add flags for each prediction, set probabilities
10023         according to B&L paper.
10024         * predict.h (DEF_PREDICTOR): New argument FLAGS.
10025
10026         * profile.c (compute_branch_probabilities):  Cleanup way the edge
10027         probabilities are computed and REG_BR_PROB notes are dropped; if
10028         values does not match, emit error.
10029         (init_branch_prob): Do error instead of warning when profile driven
10030         feedback is missing or corrupt.
10031
10032 2001-07-27  DJ Delorie  <dj@redhat.com>
10033
10034         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
10035         against a constant, try to adjust the compare to have the desired
10036         constant in it so that min/max optimizations happen more often.
10037
10038 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
10039
10040         * flow.c (last_loop_beg_note): New function.
10041         (redirect_edge_and_branch): Use it.
10042         (split_edge): Likewise.
10043
10044         * alias.c (loop_p): Avoid uninitialized memory access.
10045
10046         * flow.c (try_forward_edges): Avoid accessing freed memory.
10047
10048         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
10049         variable access.
10050
10051 2001-07-26  Andrew Haley  <aph@redhat.com>
10052         Joern Rennecke <amylaar@redhat.com>
10053
10054         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
10055         (SUBTARGET_CPP_ENDIAN_SPEC): New.
10056         (SUBTARGET_CPP_SPEC): New.
10057         (CPP_SPEC): Remove.
10058         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
10059         (SUBTARGET_CPP_PTR_SPEC): New.
10060         (CPP_DEFAULT_CPU_SPEC): New.
10061         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
10062         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
10063         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
10064         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
10065         (SUBTARGET_CPP_SPEC): Define as an empty string.
10066
10067 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10068
10069         * doc/install.texi (Configuration): Properly link the host
10070         specific instructions also when generating HTML.
10071
10072 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
10073
10074         * flow.c (redirect_edge_and_branch_force): Test
10075         target->global_live_at_start.
10076
10077 2001-07-26  Richard Henderson  <rth@redhat.com>
10078
10079         * simplify-rtx.c (avoid_constant_pool_reference): Export.
10080         * rtl.h (avoid_constant_pool_reference): Declare it.
10081         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
10082         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
10083
10084 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
10085
10086         * rtl.h (cleanup_barriers): Declare.
10087         * jump.c (cleanup_barriers): New function.
10088         * toplev.c (rest_of_compilation): Call cleanup_barriers
10089         before loop optimizer and after bb_reorder.
10090
10091         * flow.c (back_edge_of_syntactic_loop_p): New.
10092         (split_edge): Use it.
10093
10094 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10095
10096         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
10097
10098 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
10099
10100         * cse.c (cse_process_notes): Replace any registers if the address
10101         remains valid.
10102
10103 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
10104
10105         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
10106         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
10107         (propagate_block): Update prototype.
10108         * flow.c (update_life_info): Simplify the CFG and
10109         recalculate the global regs which are alive when
10110         removing dead code during a global update.
10111         (propagate_block): Return non-zero if an INSN is
10112         deleted.
10113
10114 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10115
10116         * Makefile.in (LIBICONV): Define.
10117
10118 2001-07-26  Catherine Moore  <clm@redhat.com>
10119
10120         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
10121         of conditional to avoid tree checking errors.
10122
10123 2001-07-26  Kazu Hirata  <kazu@hxi.com>
10124
10125         * regmove.c (regmove_optimize): Don't replace a reg with
10126         another reg of a different mode.
10127
10128 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
10129
10130         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
10131         limit length of dependency flush list.
10132         * params.h (MAX_PENDING_LIST_LENGTH): Define.
10133         * sched-int.h  (struct deps): Add pending_flush_length field.
10134         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
10135         has 1 element in it.
10136         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
10137         (sched_analyze): After a jump, if the pending memory flush list is too
10138         large, flush the pending lists.
10139         (init_deps): Initialize pending_flush_length to 0.
10140         * doc/invoke.texi (max_pending_list_length): Document parameter.
10141
10142 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
10143
10144         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
10145         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
10146         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
10147
10148 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10149
10150         * cpphash.h (struct_lexer_state): Delete was_skipping.
10151         Move skipping here from struct cpp_reader.
10152         * cpplex.c (parse_identifier): Update.
10153         (_cpp_lex_token): Don't skip tokens in a directive.
10154         * cpplib.c (struct if_stack): Update.
10155         (start_directive, end_directive): Don't change skipping state.
10156         (_cpp_handle_directive): Update.
10157         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
10158         (do_else, do_endif): Update; only check for excess tokens if not
10159         in a skipped conditional block.
10160         (push_conditional): Update for new struct if_stack.
10161
10162 2001-07-26  Graham Stott  <grahams@redhat.com>
10163
10164         * function.c (locate_and_pad_parm): Also pad initial offset
10165         so that the total argument size also includes the padding.
10166
10167 2001-07-26  Graham Stott <grahams@redhat.com>
10168
10169         * gensupport.c (alter_output_for_insn): Correct enable checking failure
10170         change XSTR to XTMPL.
10171
10172         (process_one_cond_exec): Likewise
10173
10174 2001-07-25  Richard Henderson  <rth@redhat.com>
10175
10176         * varasm.c (assemble_variable): Create DECL_RTL before setting
10177         TREE_ASM_WRITTEN.
10178
10179 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
10180
10181         * predict.c (estimate_probability): Avoid duplicated predictions.
10182
10183         * loop.c (find_and_verify_loops): Grok multiple barriers.
10184
10185 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10186
10187         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
10188
10189         * dbxout.c: Consistently use putc instead of fputc.
10190         (print_wide_int): New function; call instead of direct fprintf.
10191         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
10192         (dbxout_type_fields, dbxout_type_method_1): Likewise.
10193         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
10194         (print_int_cst_octal): Likewise.
10195         (print_octal): Show we wrote characters.
10196         (dbxout_type): Set have_used_extensions in more places.
10197
10198 2001-07-25  Catherine Moore  <clm@redhat.com>
10199
10200         * config/v850/v850.c (v850_va_arg):  Use addr
10201         instead of valist to build incr.
10202
10203 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
10204
10205         * flow.c (delete_dead_jumptables): New function.
10206         (life_analyzis): Call it.
10207         * bb-reorder.c (skip_insns_after_block): Handle contradictory
10208         sequences.
10209
10210 2001-07-25  Richard Henderson  <rth@redhat.com>
10211
10212         * except.c (reachable_handlers): Handle a region being removed
10213         out from under a RESX.
10214
10215 2001-07-25  Richard Henderson  <rth@redhat.com>
10216
10217         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
10218         swap GE/GT if it is an fp comparison.
10219
10220 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
10221
10222         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
10223         operands.
10224
10225 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
10226
10227         * ssa.c (rename_insn_1): Do not wrap an assignment to a
10228         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
10229         glitch.
10230
10231         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
10232         throw an exception.
10233         (visit_expression): When attempting to simplify an expression,
10234         retrieve any modes for arguments before they are simplified
10235         to constants.
10236
10237 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
10238             Janis Johnson  <janis@us.ibm.com>
10239
10240         * stmt.c (expand_goto): A nonlocal goto can be a call too.
10241         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
10242         pointer parameters to match documented usage of nonlocal_goto.
10243         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
10244         parameters to their correct order.
10245         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
10246         parameters to their correct order.
10247
10248 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
10249
10250         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
10251
10252 2001-07-25  Jan Hubicka  <jh@suse.cz>
10253             Richard Henderson  <rth@redhat.com>
10254
10255         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
10256         the sequence.
10257         (make_edges): New argument update_p; populate the edge cache if set.
10258         (find_basic_blocks): Update make_edges invocation.
10259
10260 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10261
10262         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
10263
10264 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10265
10266         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
10267         -Acpu and -Amachine.h.
10268         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
10269         Corrected header to say ELF not a.out.
10270         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
10271         when given -msoft-float.
10272
10273 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10274
10275         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
10276         extra multilib parts like arm-elf.
10277         (i960-*-coff*, i960-*-rtems): Should not use collect2.
10278         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
10279         crtfini.o as extra multilib parts.
10280
10281 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10282
10283         * configure.in: Add rtems as a supported thread model.
10284         * gthr-rtems.h: Add missing entry point __gthread_active_p.
10285         * configure: Rebuilt.
10286
10287 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
10288
10289         * stor-layout.c (get_mode_alignment): make it work when
10290         BITS_PER_UNIT is not a power of two.
10291         * builtins.c (get_pointer_alignment): Likewise.
10292
10293 2001-07-24  Richard Henderson  <rth@redhat.com>
10294
10295         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
10296         the retrieved constant into the expected mode.
10297
10298 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
10299
10300         * flow.c (try_simplify_condjump): Avoid duplicated edges.
10301         (verify_flow_info): Check for duplicated edges; clarify
10302         error reporting.
10303
10304         * flow.c (block_label): Update basic_block_for_insn.
10305         (commit_edge_insertions): Call compute_bb_for_insn.
10306
10307         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
10308         returns too.
10309
10310         * flow.c (redirect_edge_and_branch,
10311         try_optimize_cfg): Use redirect_edge_succ_nodup
10312         (redirect_edge_succ_nodup): New.
10313         * basic_block.h (redirect_edge_succ_nodup): Declare.
10314
10315         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
10316         after gcse.
10317
10318 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
10319
10320         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
10321         (try_crossjump_to_edge): Update commetns.
10322         (try_crossjump_bb): Likewise.
10323
10324 2001-07-24  Richard Henderson  <rth@redhat.com>
10325
10326         * combine.c (distribute_notes): Move set of need_refresh
10327         for noop_move_p down to catch all cases.
10328
10329 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
10330
10331         * recog.c (split_all_insns_noflow): New.
10332         * rtl.h (split_all_insns_noflow): Declare.
10333         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
10334         * m68hc11.c (m68hc11_reorg): Likewise.
10335         * sh.c (machine_dependent_reorg): Likewise.
10336         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
10337         call.
10338
10339 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
10340
10341         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
10342         (ashlsi3_n splitter): Likewise.
10343         (lshrsi3_n splitter): Likewise.
10344
10345         (GOTaddr2picreg): Make const SImode.
10346         (sym_label2reg): Likewise.
10347         (symGOT2reg): Likewise.
10348         (symGOTOFF2reg) Likewise.
10349
10350         (casesi_worker_0): Make unspec SImode.
10351
10352 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
10353
10354         * config/sh/sh.c (barrier_align): Check that an operand really is
10355         an insn before extracting its INSN_CODE.
10356
10357 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
10358
10359         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
10360         dangling else.
10361
10362         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
10363         for SImode to prevent overflow.
10364
10365 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10366
10367         * config/mips/irix6-libc-compat.c: New file.
10368         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
10369         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
10370         passing workaround.
10371
10372 2001-07-24  lars brinkhoff  <lars@nocrew.org>
10373
10374         * rtl.texi (REG_POINTER): Document.
10375         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
10376         QFmode, HFmode, TQFmode, QCmode, and HCmode.
10377
10378 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
10379
10380         * flow.c (delete_noop_moves): Do not confuse libcall regions.
10381
10382 2001-07-23  Richard Henderson  <rth@redhat.com>
10383
10384         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
10385
10386 2001-07-23  Kazu Hirata  <kazu@hxi.com>
10387
10388         * config/h8300/h8300-protos.h: Add a prototype for
10389         general_operand_dst_push.
10390         * config/h8300/h8300.c (general_operand_dst_push): New.
10391         * config/h8300/h8300.h (OK_FOR_T): New.
10392         (EXTRA_CONSTRAINT): Use it.
10393         * config/h8300/h8300.md (movqi_push): Remove and integrate into
10394         the existing movqi pattern.
10395         (movhi_push): Likewise.
10396
10397         * reload.c: Fix comment typos.
10398
10399 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
10400
10401         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
10402
10403 2001-07-23  H.J. Lu  (hjl@gnu.org)
10404
10405         * doc/extend.texi: Update __builtin_return_address and
10406         __builtin_frame_address.
10407
10408 2001-07-23  Richard Henderson  <rth@redhat.com>
10409
10410         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
10411         before CSE.
10412         * config/i386/i386.md: New setcc+movzbl peephole2.
10413
10414 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10415
10416         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
10417         * objc/objc-act.c: Include debug.h.
10418         (synth_module_prologue): Save and restore debug hooks too.
10419
10420 2001-07-23  lars brinkhoff  <lars@nocrew.org>
10421
10422         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
10423         and C4X_FLOAT_FORMAT.
10424         (BOOL_TYPE_SIZE): Document.
10425
10426 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
10427
10428         * unroll.c (loop_iterations): Fix miscalculation of initial
10429         giv offset.
10430
10431 2001-07-13  Andrew Haley  <aph@redhat.com>
10432
10433         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
10434         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
10435         * config/sh/sh.c (sh_can_redirect_branch): New function.
10436         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
10437         * reorg.c (steal_delay_list_from_target): Use
10438         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
10439
10440 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
10441
10442         * flow.c (try_simplify_condjump): Unlink insn chain on
10443         fallthru edge; use can_fallthru.
10444
10445 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
10446
10447         * basic-block.h (find_sub_basic_block): Declare.
10448         * flow.c (make_edges): New arguments MIN and MAX;
10449         (find_sub_basic_blocks): Revamp to use make_edges
10450         and purge_dead_edges.
10451         (find_basic_blocks): Update call of find_sub_basic_block.
10452
10453         * recog.c (split_all_insns): Always expect CFG to be consistent;
10454         call find_sub_basic_blocks in case something has changed.
10455         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
10456         has been built.
10457
10458         * basic-block.h (delete_noop_moves): Declare.
10459         * combine.c (combine_instructions): Call it.
10460         (recog_for_combine): Tolerate noop moves
10461         (distribute_notes): Force refresh when register dies at noop move.
10462         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
10463         too.
10464         (life_analysis): Update delete_noop_moves call.
10465         (set_noop_p): Move too ...
10466         * rtlanal.c (noop_move_p): ... here.
10467         * rtl.h (noop_move_p): Declare.
10468
10469         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
10470         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
10471         after combine.
10472         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
10473         (cprop_jump): Likewise; call purge_dead_edges if substitution suceeded.
10474
10475 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
10476
10477         * reload.c (push_reload): Fix typo in comment.
10478         (find_reloads_address): Ditto.
10479         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
10480
10481 2001-07-22  Richard Henderson  <rth@redhat.com>
10482
10483         * flow.c: Grammar check and clarify a lot of comments.
10484         (try_simplify_condjump): Rename variables to be clearer.
10485         (try_forward_edges): Skip complex and fallthru edges.
10486         Rearrange tests to avoid duplicate checks.
10487         (flow_find_cross_jump): Likewise.
10488         (outgoing_edges_match): Allow match if neither branch has
10489         probability data.  Loosen probability match to 5%.
10490         (try_crossjump_to_edge): Hoist repeated indirection into
10491         local variables.
10492         (try_crossjump_bb): Don't check complex edges.  Eliminate
10493         redundant crossjump tests.
10494         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
10495         checks before more expensive checks.
10496
10497 2001-07-22  Richard Henderson  <rth@redhat.com>
10498
10499         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
10500         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
10501         arguments.
10502
10503 2001-07-22  Richard Henderson  <rth@redhat.com>
10504
10505         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
10506         (const_sint32_operand): Likewise.
10507         * m68k.md (anon mulsi pattern): Use const_int_operand not
10508         const_sint32_operand.
10509         (umulsi3_highpart): Zero extend a constant input.
10510         (smulsi3_highpart): Don't bother checking SImode constant.
10511         (const_umulsi3_highpart): Give op3 DImode.
10512         (const_smulsi3_highpart): Likewise.
10513
10514 2001-07-22  Richard Henderson  <rth@redhat.com>
10515
10516         * flow.c (split_block): Make sure bb_note is included in the
10517         new block when splitting before a label.
10518
10519 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
10520
10521         * basic-block.h (redirect_edge_and_branch_force,
10522         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
10523         * flow.c (redirect_edge_and_branch_force,
10524         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
10525         (redirect_edge_and_branch_force): Fix copying of lifeness information.
10526         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
10527         * ifcvt.c (dead_or_predictable): Take BB as an new destionation
10528         instead of label; update CFG after transformation.
10529         (find_if_case_1): Update call, use redirect_edge_and_branch_force
10530         for finishing the transformation; handle even case where ELSE
10531         does not follow THEN.
10532         (find_if_case_2): Update call of dead_or_predictable; simplify
10533         CFG update.
10534
10535         * emit-rtl.c (split_branch_probability): New global variable.
10536         (try_split): Take care to set split_branch_probability and
10537         create REG_BR_PROB note for new jump insns.
10538         * md.texi (define_split): Document new feature.
10539
10540         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
10541
10542 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
10543
10544         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
10545         (asm_out_file): Remove redundant declaration.
10546         (assemble_asm): Remove old #if 0 block.
10547         (assemble_variable): Remove end of function; debug output is
10548         now handled with global_decl.  Remove old #if 0 block.  Update.
10549         Remove saved_in_section and associated no-op code.
10550         * Makefile.in (varasm.o): Correct dependencies.
10551
10552 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
10553
10554         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
10555         the definition in defaults.h.
10556
10557 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
10558
10559         * jump.c: Update comments.
10560         (delete_barrier_successors, delete_unreferenced_labels,
10561         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
10562         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
10563         jump_optimize, jump_optimize_minimal): Kill.
10564         (rebuild_jump_labels): Move code from jump_optimize_1.
10565         (purge_line_number_notes): Likewise.
10566         (copy_loop_headers): Likewise.
10567         * reg-stack.c: Update comment.
10568         * stmt.c: Likewise.
10569         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
10570         JUMP_AFTER_REGSCAN): Kill.
10571         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
10572         purge_line_number_notes and copy_loop_headers.
10573
10574 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
10575            Richard Henderson  <rth@redhat.com>
10576
10577         * dbxout.c (dbxout_global_decl): New.
10578         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
10579         * sdbout.c (sdbout_finish): New.
10580         (sdbout_debug_hooks): Use it, add comments.
10581         (sdbout_global_decl): Defer initialised public vars to
10582         sdbout_finish.
10583         * varasm.c (assemble_variable): Don't output debug information
10584         for file-scope variables.
10585
10586 2001-07-22  Richard Henderson  <rth@redhat.com>
10587
10588         * config/alpha/alpha.c (get_trap_mode_suffix): New.
10589         (get_round_mode_suffix): New.
10590         (print_operand): Use them for [/].  Remove support for [&'`()+].
10591         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
10592         * config/alpha/alpha.md (attr round_suffix): New.
10593         (attr trap_suffix): New.
10594         (all insns): Set them appropriately.  Use %/ instead of the
10595         myriad punctuators.
10596
10597 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10598
10599         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
10600
10601 2001-07-22  Richard Henderson  <rth@redhat.com>
10602
10603         * regrename.c (regrename_optimize): Compute nregs for each
10604         potential target register.
10605
10606 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
10607            Richard Henderson  <rth@redhat.com>
10608
10609         * dbxout.c (dbxout_global_decl): New.
10610         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
10611         * sdbout.c (sdbout_finish): New.
10612         (sdbout_debug_hooks): Use it, add comments.
10613         (sdbout_global_decl): Defer initialised public vars to
10614         sdbout_finish.
10615         * varasm.c (assemble_variable): Don't output debug information
10616         for file-scope variables.
10617
10618 2001-07-21  H.J. Lu  (hjl@gnu.org)
10619
10620         * config/mips/mips.c (mips_cpu): Moved into ...
10621         (override_options): Here.
10622
10623         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
10624         mips_tune.
10625         (mips_cpu): Removed.
10626
10627 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10628
10629         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
10630         ("iorqi3"): Likewise.
10631         ("xorqi3"): Likewise.
10632         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
10633         ("*subhi3_sp): Likewise.
10634         ("*subhi3"): Likewise.
10635         ("extendhisi2"): Accept D, X and Y as source operand to avoid
10636         reload problems.
10637
10638 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
10639
10640         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
10641         * config/freebsd.h: Likewise.
10642         * config/linux.h: Likewise.
10643         * config/openbsd.h: Likewise.
10644         * config/alpha/linux-elf.h: Likewise.
10645         * config/arm/linux-elf.h: Likewise.
10646         * config/d30v/d30v.h: Likewise.
10647         * config/fr30/fr30.h: Likewise.
10648         * config/ia64/aix.h: Likewise.
10649         * config/ia64/ia64.h: Likewise.
10650         * config/mips/linux.h: Likewise.
10651         * config/pj/pj.h: Likewise.
10652         * config/rs6000/linux.h: Likewise.
10653         * config/sparc/linux.h: Likewise.
10654         * config/sparc/linux64.h: Likewise.
10655
10656 2001-07-20  Bruce Korb  <bkorb@gnu.org>
10657
10658         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
10659         because getc() and char* may disagree on signedness.
10660
10661 2001-07-20  Richard Henderson  <rth@redhat.com>
10662
10663         * doc/rtl.texi (REG_DEAD): Update for current semantics.
10664
10665         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
10666         insns to delete in the presence of cc0 in a jump insn.
10667
10668 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
10669                                 Jan Hubicka  <jh@suse.cz>
10670
10671         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
10672         of doing the change by hand.
10673
10674 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
10675
10676         * rtlanal.c (set_noop_p): Return true for noop jumps.
10677
10678         * expr.c (emit_single_push_insn): Add call to push expander.
10679         * expr.h (optab_index): Add OTI_push
10680         (push_optab): New constant.
10681         * genopinit.c (optabs): Add push_optab.
10682         * optabs.c (init_optab): Init push optab.
10683         * md.texi (push??1): Document
10684
10685 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10686
10687         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
10688         expand to emit the pattern; put a REG_INC note for push/pop
10689         instructions.
10690         ("movdf", "movdf_internal"): Likewise.
10691         ("movsi", "movsi_internal"): Likewise.
10692         ("movsf", "movsf_internal"): Likewise.
10693         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
10694
10695 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10696
10697         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
10698         gen_highpart.
10699
10700 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
10701
10702         * params.def: Change default max inline insns to 100.
10703
10704 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
10705
10706         * combine.c (combine_simplify_rtx): Generate a new shift operation
10707         when simplifying the first operand of a (neg (ashift)) expression.
10708
10709 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
10710
10711         * regclass.c (N_REG_INTS): Use only 32 bits per element.
10712
10713 2001-07-20  Kelley Cook  <kelley.cook@home.com>
10714
10715         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
10716         information.   Move rest into ...
10717         (*-*-solaris): ... here.  Eliminate redundant information and
10718         reword necessary packages section.  Delete 4.x assembler bug info.
10719         (sparc-sun-*): Merge into ...
10720         (sparc-sun-sunos*): here.
10721
10722 2001-07-20  Catherine Moore  <clm@redhat.com>
10723
10724         * config/v850/v850.md (casesi): Generate LABEL_REF
10725         with Pmode.
10726
10727 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
10728
10729         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
10730         * i386.c (ix86_zero_extend_to_Pmode): Make global.
10731         * i386.md (strclrsi expander): Use it.
10732
10733 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
10734
10735         * integrate.c (copy_insn_list): handle
10736         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
10737         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
10738         identically as to CODE_LABEL.
10739
10740         * fold-const (fold): Convert A/B/C to A/(B*C) and
10741         A/(B/C) to (A/B)*C
10742
10743         * except.c (connect_post_landing_pads): Delete the RESX insns.
10744
10745 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
10746
10747         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
10748
10749         * config/mips/mips.md (nmadd/nmsub): Use macro.
10750
10751 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
10752
10753         * cppinit.c (remove_dup_dir): Make static.
10754         (remove_dup_dirs): Make static. Only warn about preempting a
10755         system directory with a non-system directory.
10756
10757 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
10758
10759         * ifcvt.c (noce_try_store_flag_constants): Correct order
10760         of parameters to trunc_int_for_mode.
10761
10762 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
10763
10764         * reorg.c (fill_simple_delay_slots): If an instruction might throw
10765         an exception that will be caught within this function, do not fill
10766         its delay slot with any subsequent instruction.
10767
10768 2001-07-19  Steve Ellcey <sje@cup.hp.com>
10769
10770         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
10771         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
10772         pointer extension instruction.
10773         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
10774         * simplify-rtx.c (simplify_unary_operation) Likewise.
10775         * explow.c (convert_memory_address) Check value of
10776         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
10777         less than zero.
10778         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
10779         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
10780         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
10781         Add Multilib Support.
10782         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
10783         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
10784         Add Multilib Support.
10785         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
10786         support.
10787         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
10788         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
10789         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
10790
10791 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
10792
10793         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
10794         old and new operands in `<', `3' and `b'.
10795
10796 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10797
10798         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
10799         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
10800         (toplev.o): Don't depend on xcoffout.h.
10801         * c-decl.c: Include debug.h
10802         (duplicate_decls): Use debug hook.
10803         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
10804         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10805         (dbxout_types): Remove.
10806         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
10807         * debug.c (do_nothing_debug_hooks): Update.
10808         (debug_true_tree, debug_nothing_rtx): New.
10809         * debug.h (struct rtx_def): New.
10810         (struct gcc_debug_hooks): New hooks ignore_block,
10811         outlining_inline_function and label.
10812         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
10813         dwarf2out_frame_finish): New.
10814         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
10815         Make static, update prototype.
10816         (dwarf2_debug_hooks): Update.
10817         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
10818         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
10819         * dwarfout.c (dwarf_debug_hooks): Update.
10820         * emit-rtl.c: Include debug.h.
10821         (remove_unnecessary_notes): Use debug hook.
10822         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
10823         (final_scan_insn): Use debug hook.
10824         * integrate.c (output_inline_function): Use debug hook.
10825         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
10826         (sdb_debug_hooks): Update.
10827         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
10828         * toplev.c: Don't include xcoffout.h.
10829         (note_outlining_of_inline_function, debug_ignore_block): Remove.
10830         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
10831         Remove.
10832         * tree.h (dwarf2out_do_frame): Remove.
10833
10834 2001-07-19  Catherine Moore  <clm@cygnus.com>
10835
10836         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
10837
10838 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
10839
10840         * reload1.c (eliminate_regs_in_insn): When updating a set
10841         to the frame pointer to the hardware frame pointer, perform
10842         the update always not just when REPLACE is set.
10843
10844         * reload1.c (choose_reload_regs): Don't inherit a reload
10845         that crosses multiple registers if registers past the first
10846         don't fit in the desired class.
10847
10848         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
10849         when negating constants.
10850
10851 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
10852
10853         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
10854         * doc/tree.texi: Ditto.
10855
10856 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
10857             Jakub Jelinek  <jakub@redhat.com>
10858
10859         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
10860         (extract_cie_info): Handle "eh" augmentation properly,
10861         remember eh_ptr.
10862         (struct frame_state, __frame_state_for): New.
10863
10864 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10865
10866         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
10867         HANDLE_SYSV_PRAGMA): Define.
10868         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
10869         previous args.
10870         (copy_object): Caller changed.
10871
10872 2001-07-19  Andreas Schwab  <schwab@suse.de>
10873
10874         * configure.in (assembler dwarf2 debug_line support): Define nop
10875         insn for m68k.
10876         * configure: Regenerated.
10877
10878 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10879
10880         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
10881         dwarfout.h.
10882         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
10883         to conditionally compiled block.
10884         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10885         * dbxout.h (dbxout_function): Remove.
10886         * debug.c (do_nothing_debug_hooks): Update.
10887         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
10888         global_decl, deferred_inline_function.
10889         * dwarf2out.c (dwarf2_debug_hooks): Update.
10890         (dwarf2out_global_decl): New.
10891         * dwarfout.c: Don't include dwarfout.h.
10892         (dwarfout_global_decl, dwarfout_function_decl,
10893         dwarfout_deferred_inline_function): New.
10894         (dwarf_debug_hooks): Update.
10895         * dwarfout.h: Remove.
10896         * final.c: Don't include dwarfout.h.
10897         * sdbout.c (sdbout_global_decl): New.
10898         (sdbout_debug_hooks): Update.
10899         * toplev.c: Don't include dwarfout.h.
10900         (check_global_declarations, rest_of_compilation): Use new debug hooks.
10901         (note_deferral_of_defined_inline_function): Remove.
10902         * toplev.h (note_deferral_of_defined_inline_function): Remove.
10903         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
10904         * ch/lex.c: Don't include dwarfout.h.
10905         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
10906         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
10907         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
10908         * cp/optimize.c: Include debug.h.
10909         (maybe_clone_body): Use debug hook.
10910         * cp/semantics.c: Include debug.h.
10911         (expand_body): Use debug hook.
10912         * po/POTFILES.in: Remove dwarfout.h.
10913
10914 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10915
10916         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
10917         * c-parse.in (yyerror, _yylex): Similarly.
10918         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
10919         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
10920         Update comments.
10921         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
10922         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
10923
10924 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
10925
10926         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
10927         in-class declaration at -g1.  Fixes c++/2814.
10928
10929 2001-07-18  Richard Henderson  <rth@redhat.com>
10930
10931         * doc/md.texi (reload_in/out): Document restrictions in predicates
10932         and constraints for these patterns.  Document empty string matching
10933         ALL_REGS.
10934
10935 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10936
10937         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
10938
10939 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
10940
10941         * cse.c: Undo my previous patch.
10942
10943 2001-07-18  Tom Tromey  <tromey@redhat.com>
10944
10945         For PR java/2812:
10946         * configure: Rebuilt.
10947         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
10948         instead.
10949         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
10950
10951 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
10952                                 Jan Hubicka  <jh@suse.cz>
10953
10954         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
10955         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
10956         * jump.c (mark_jump_label): Do not forward branches.
10957
10958 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
10959
10960         * cse.c (delete_trivially_dead_insns): Delete the libcall block
10961         when return value is unused.
10962
10963 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
10964
10965         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
10966
10967 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
10968
10969         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
10970         on error.  We can't blindly return the result of
10971         pthread_mutex_trylock because it returns a positive number on
10972         error, while we must return -1 on error.
10973         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
10974         fixes.
10975         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
10976
10977 2001-07-18  Andreas Jaeger  <aj@suse.de>
10978
10979         * integrate.c (output_inline_function): Correct type of debug_hooks.
10980
10981 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
10982
10983         * combine.c (combine_simplify_rtx): DIV can be treated
10984         associatively for floats if unsafe math optimisations are enabled.
10985
10986 2001-07-17  Richard Henderson  <rth@redhat.com>
10987
10988         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
10989
10990 2001-07-17  Richard Henderson  <rth@redhat.com>
10991
10992         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
10993         don't force the function address into a register.
10994         (expand_call, emit_library_call_value_1): Update callers.
10995         * builtins.c (expand_builtin_apply): Likewise.
10996         * expr.h (prepare_call_address): Update decl.
10997
10998 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
10999
11000         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
11001         config directory.
11002         * config/i386/chorus.h: Move up.
11003         * config/sparc/chorus.h: Likewise.
11004         * config/rs6000/chorus.h: Likewise.
11005         * config/chorus.h: Moved here.
11006
11007 2001-07-17  Andreas Schwab  <schwab@suse.de>
11008
11009         * configure.in  (assembler eh_frame optimization): Handle big
11010         endian.
11011         * configure: Regenerated.
11012
11013 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
11014
11015         * expr.c (epxand_expr): Convert divisions into multiplications by
11016         reciprocals if -ffast-math.
11017
11018 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
11019
11020         * dbxout.c (dbxout_really_begin_function): Rename to
11021         dbxout_begin_function.
11022         (dbx_debug_hooks, xcoff_debug_hooks): Update.
11023         (dbxout_begin_function): Remove.
11024         (dbxout_function): Update.
11025         (dbxout_source_line): Update prototype.
11026         * dbxout.h (dbxout_begin_function): Remove.
11027         * debug.c (do_nothing_debug_hooks): Update.
11028         (debug_nothing_tree): Update.
11029         (debug_nothing_charstar_rtx): Remove.
11030         * debug.h (union tree_node): Declare.
11031         (struct rtx_def): Remove.
11032         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
11033         begin_function.  Change source_line prototype.
11034         (debug_nothing_tree): New.
11035         (debug_nothing_charstar_rtx): Delete.
11036         (dwarf2out_begin_prologue): Moved from ...
11037         * tree.h: ... here.
11038         * dwarf2out.c (dwarf2_debug_hooks): Update.
11039         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
11040         debug info, call dwarf2out_source_line.
11041         (dwarf2out_souce_line): Update prototype.
11042         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
11043         Change prototype, make static.
11044         (dwarfout_source_line): Update prototype.
11045         (dwarf_debug_hooks): Update.
11046         * dwarfout.h (dwarfout_begin_function): Remove.
11047         * final.c (final_start_function, final_scan_insn): Use appropriate
11048         debug hooks, update to use notice_source_line.
11049         (output_source_line): Rename notice_source_line.  Don't call the
11050         source_line debug hook.
11051         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
11052         make static, update prototype.
11053         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
11054         prototype.
11055         (sdbout_end_prologue): New.
11056         (sdbout_source_line): Update prototype.
11057         (sdbout_debug_hooks): Update.
11058         (sdbout_symbol): Remove unused var.
11059         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
11060         Delete.
11061         * varasm.c: Include debug.h.
11062         (assemble_start_function): Use begin_function debug_hook.
11063         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
11064         update with prototype.
11065         (xcoffout_source_line): Update prototype.
11066         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
11067         update prototype.
11068         (xcoffout_source_line): Update prototype.
11069
11070 2001-07-17  Richard Henderson  <rth@redhat.com>
11071
11072         * c-typeck.c (build_binary_op): Do not shorten unsigned
11073         right shift after sign extension.
11074
11075 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
11076
11077         * combine.c (combine_simplify_rtx): Attempt to simplify
11078         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
11079
11080         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
11081         (simplify_binary_operation, simplify_unary_operation,
11082          simplify_relational_operation): Use it.
11083
11084         * combine.c (combine_simplify_rtx): Don't do associative law
11085         on divisions; allow associative law on floats.
11086
11087 2001-07-17  H.J. Lu <hjl@gnu.org>
11088             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11089
11090         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
11091         ASM_OUTPUT_WEAK_ALIAS are defined.
11092         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
11093         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
11094         Moved ...
11095         * config/mips/iris5.h: ... here.
11096         (HANDLE_SYSV_PRAGMA): Defined as 1.
11097         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
11098         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
11099         symbol.
11100
11101 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
11102
11103         * c-parse.in (all_prefix_attributes): New variable.
11104         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
11105         (maybe_resetattrs): New production.
11106         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
11107         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
11108         notype_initdcl, nested_function, notype_nested_function,
11109         component_decl, components, components_notype,
11110         component_declarator, component_notype_declarator,
11111         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
11112         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
11113         after a comma being applied to more than one declarator.
11114         * doc/extend.texi (Attribute Syntax): Update.  Remove
11115         documentation of bugs that are no longer present.
11116
11117 2001-07-13  Eric Christopher  <echristo@redhat.com>
11118
11119         * config/mips/mips.h: Change TUNE_MIPS* options to use
11120         mips_tune.
11121         (EXTRA_SPECS): Add cc1_cpu_spec.
11122         * config/mips/mips.md (muldf3): Fix typo.
11123
11124 2001-07-16  Richard Henderson  <rth@redhat.com>
11125
11126         * config/m68k/m68k.c: Include expr.h and reload.h.
11127         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
11128         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
11129
11130 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
11131             Richard Henderson  <rth@redhat.com>
11132
11133         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
11134         (insn_live_p): Fix fall off end of function.
11135         (dead_libcall_p): Remove COUNTS argument; update callers.
11136         (delete_trivially_dead_insns): Remove unused variables.
11137
11138 2001-07-17  Andreas Jaeger  <aj@suse.de>
11139
11140         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
11141         x86-64 pic support.
11142
11143         * lcm.c (optimize_mode_switching): Avoid warning for unused
11144         variable if !NORMAL_MODE.
11145
11146         * flow.c (try_crossjump_to_edge): Remove unused variable.
11147
11148 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11149
11150         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
11151         atexit declaration in stdlib.h.
11152
11153 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
11154
11155         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
11156
11157 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
11158
11159         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
11160         * except.c (finish_eh_generation): Update call of cleanup_cfg;
11161         do rebuild_jump_labels instead of jump_optimize
11162         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
11163         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
11164         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
11165
11166         * flow.c: Include timevar.h
11167         (find_basic_block): Push/pop timevar;
11168         (cleanup_cfg): Likewise.
11169         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
11170         * Makefile: Add dependencies on timevar.h
11171
11172         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
11173         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
11174
11175         * rtl.h (delete_trivially_dead_insns): Add new parameter.
11176         * toplev.c (rest_of_compilation): Update calls.
11177         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
11178         (delete_trivially_dead_insns): ... here; accept new argument
11179         preserve_basic_blocks; preserve basic blocks if set.
11180
11181         * reg-stack.c (stack_regs_mentioned): Return 0 if
11182         stack_regs_mentioned_data is not initialized.
11183         (reg_to_stack): Make stack_regs_mentioned survive after the
11184         reg-stack is completted; do not call cleanup_cfg.
11185         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
11186         make cleanup_cfg after bb-reorder to output to debug file.
11187
11188 2001-07-16  Richard Henderson  <rth@redhat.com>
11189
11190         * regclass.c (init_reg_sets): Use only 32 bits per initializer
11191         from int_reg_class_contents.
11192
11193 2001-07-16  Richard Henderson  <rth@redhat.com>
11194
11195         * hard-reg-set.h (regs_invalidated_by_call): Declare.
11196         * regclass.c (regs_invalidated_by_call): Move from cse.c.
11197         (init_reg_sets_1): Move initialization from cse_main.
11198         * cse.c (regs_invalidated_by_call): Move to regclass.c.
11199         (cse_main): Move its initialization also.
11200         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
11201         * flow.c (propagate_one_insn): Likewise.
11202         * gcse.c (compute_hash_table): Likewise.
11203         (compute_kill_rd, compute_store_table): Likewise.
11204         * sched-deps.c (sched_analyze_1): Likewise.
11205
11206 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
11207
11208         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
11209         gen_rtx_SET.
11210
11211 2001-07-16  Steve Ellcey <sje@cup.hp.com>
11212
11213         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
11214         in if statement so we don't access undefined memory.
11215
11216 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
11217
11218         * gcse.c: Update comment at top.
11219         Update comment on mem handling.
11220         mem_last_set, mem_first_set, mem_set_in_block: gone.
11221         Declaration of reg_set_info: gone.
11222         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
11223         pointless with load_killed_in_block_p (they are *more*
11224         conservative then it, not less, and less accurate).
11225         (oprs_not_set_p): Ditto.
11226         (alloc_gcse_mem): Don't allocate mem_set_in_block
11227         (free_gcse_mem): Don't free it, either.
11228         (record_last_mem_set_info): Update comment in front, remove
11229         mem_*set_* stuff. Note the reason we don't handle stores directly
11230         here.
11231         (compute_hash_table): Update comments to reflect reality. Remove
11232         mem_*set_* references.
11233         (reset_opr_set_tables): Remove mem_*set_* references.
11234         (mark_call): Ditto.
11235         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
11236         (mark_clobber): Ditto (on both parts, we double set here too).
11237         (expr_killed_p): Remove mem_set_in_block test.
11238         (compute_transp): Remove mem_set_in_block test.
11239
11240         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
11241         of edge, and removal of phi alternative to dump file.
11242         (ssa_ccp_substitute_constants): Add note about register now being
11243         constant, and which uses were replaced in what insns to dump file.
11244
11245 2001-07-16  Andreas Jaeger  <aj@suse.de>
11246
11247         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
11248         variables of type HOST_WIDEST_INT.
11249
11250         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
11251         (__bb_exit_func): Correct type of count_max to avoid overflow.
11252         (num_digits): Handle long long argument.
11253
11254         * combine.c (gen_lowpart_for_combine): Remove unused variable.
11255
11256 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11257
11258         * output.h (sdb_begin_function_line): Restore as an extern
11259         variable.
11260         * sdbout.c (sdb_begin_function_line): Make extern.
11261
11262 2001-07-15  Richard Henderson  <rth@redhat.com>
11263
11264         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
11265         * genrecog.c (maybe_both_true_mode): New.
11266         (maybe_both_true_2): Use it.
11267         (write_switch): Don't put Pmode in a switch.
11268         * rtl.c (mode arrays): Don't explicitly size them.
11269
11270 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
11271
11272         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
11273         handling; move unconditional splitting before mode switching.
11274
11275         * i386.md (type): Add fistp type.
11276         (i387, length_attr, scheduling definitions): Handle this type.
11277         (fix_trunc?f?i2): Revamp to use mode switching.
11278         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
11279         * i386.h (fp_cw_mode): New enum
11280         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
11281         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
11282
11283 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11284
11285         * Makefile.in (integrate.o): Add debug.h.
11286         * integrate.c (debug.h): Add.
11287         (output_inline_function): Save, reset, and restore debug_hooks.
11288
11289 2001-07-15  Richard Henderson  <rth@redhat.com>
11290
11291         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
11292         instead of COMPARE for the EQUIV expression.
11293
11294 2001-07-15  Richard Henderson  <rth@redhat.com>
11295
11296         * flow.c (redirect_edge_and_branch_force): Initialize
11297         global_live_at_start and global_live_at_end.
11298         (allocate_bb_life_data): Export.
11299         * basic-block.h (allocate_bb_life_data): Declare.
11300         * toplev.c (rest_of_compilation): Call it.
11301
11302 2001-07-15  Richard Henderson  <rth@redhat.com>
11303
11304         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
11305         (alpha_tablejump_best_label): New.
11306         * config/alpha/alpha-protos.h: Declare them.
11307         * config/alpha/alpha.md: Use braced strings for code blocks.
11308         (tablejump_osf): Break out add with r29.
11309         (tablejump_osf_internal): Remove.
11310         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
11311         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
11312
11313 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
11314
11315         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
11316         of the movable.
11317
11318         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
11319
11320         * i386-protos.h (ix86_split_fp_branch): Update prototype.
11321         (ix86_fp_jump_nontrivial_p): New.
11322         * i386.md (fp_jcc_?): Update call of split_fp_branch;
11323         use ix86_fp_jump_nontrivial_p.
11324         * i386.c (ix86_fp_jump_nontrivial_p): New.
11325         (ix86_split_fp_branch): Accept code instead of rtx.
11326         (ix86_expand_compare): Expand comparison early in case
11327         doing so is resonably cheap.
11328
11329 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
11330
11331         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
11332         not 'machine'.
11333         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
11334         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
11335
11336 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
11337
11338         * dbxout.c (dbxout_source_line): Make static, update prototype.
11339         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
11340         (dbxout_init, dbxout_finish, dbxout_source_line,
11341         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
11342         * dbxout.h (dbxout_source_line): Delete.
11343         * debug.c (debug_nothing_file, debug_nothing_file_int,
11344         debug_nothing_file_charstar_rtx): New.
11345         (do_nothing_debug_hooks): Update.
11346         (debug_nothing_void, debug_nothing_charstar_rtx,
11347         dwarf2out_end_epilogue): New.
11348         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
11349         * debug.h (struct rtx_def): Declare.
11350         (gcc_debug_hooks): New hooks source_line, end_epilogue
11351         and end_function.
11352         (debug_nothing_void, debug_nothing_charstar_rtx,
11353         dwarf2out_end_epilogue): New.
11354         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
11355         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
11356         (dwarf2_debug_hooks): Update.
11357         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
11358         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
11359         * dwarf2out.h (dwarf2out_source_line): Remove.
11360         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
11361         Make static, update prototype.
11362         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
11363         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
11364         (dwarf_debug_hooks): Update.
11365         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
11366         dwarfout_end_function): Remove.
11367         * final.c (profile_function): Use debug hooks for ending functions
11368         and epilogues.
11369         (output_source_line, final_end_function): Update prototype,
11370         use debug hooks.
11371         (final_start_function, final_scan_insn): Update.
11372         * output.h (sdb_begin_function_line): Remove.
11373         (final_end_function): Update prototype.
11374         * sdbout.c (sdb_begin_function_line): Make static.
11375         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
11376         (sdbout_source_line): New.
11377         (sdbout_end_epilogue, sdbout_end_function): Make static, update
11378         prototypes.
11379         (sdb_debug_hooks): Update.
11380         (sdbout_init, sdbout_source_line,
11381         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
11382         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
11383         * toplev.c (compile_file, rest_of_compilation): Update.
11384         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
11385         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
11386         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
11387         Update for prototype changes.
11388         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
11389         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
11390
11391 2001-07-15  Richard Henderson  <rth@redhat.com>
11392
11393         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
11394         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
11395         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
11396         * config/alpha/alpha.c: Likewise.
11397         * config/alpha/alpha.md: Likewise.
11398         * config/alpha/alpha32.h: Likewise.
11399         * config/alpha/vms.h: Likewise.
11400         (OPEN_VMS): Remove.
11401
11402 2001-07-14  Richard Henderson  <rth@redhat.com>
11403
11404         * config/alpha/alpha.md: Use define_constants for unspec values.
11405         Substitute throughout.
11406
11407 2001-07-14  Tim Josling  <tej@melbpc.org.au>
11408
11409         * tree.def (EXPON_EXPR) remove. Never supported anyway.
11410
11411 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11412
11413         * pa.md: Remove unused constraints from define_split's.
11414
11415 2001-04-14  Richard Henderson  <rth@redhat.com>
11416
11417         * ifcvt.c (find_cond_trap): Test for exit block.
11418
11419 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
11420
11421         Re-install recently reverted patch.
11422         * emit-rtl.c (try_split): Update mark_jump_label call.
11423         * flow.c (find_sub_basic_blocks): Likewise.
11424         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
11425         jump_back_p): Kill.
11426         (mark_all_labels): Kill second parameter.
11427         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
11428         (rebuild_jump_labels, jump_optimize_minimal): Update call
11429         of jump_optimize_1.
11430         (jump_optimize_1): Kill crossjumping code.
11431         (mark_jump_label): Kill cross_jump parameter.
11432         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
11433         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
11434         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
11435          splitting.
11436         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
11437         DFI_bpro.
11438         (dump_file_info): Likewise.
11439         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
11440         reorganize passes to do reg-stack first, bb-reorder second.
11441         * invoke.texi (-d letters doc): Remove the jump2 pass.
11442
11443 2001-07-14  Richard Henderson  <rth@redhat.com>
11444
11445         * ifcvt.c (find_cond_trap): New.
11446         (find_if_header): Call it.
11447         (merge_if_block): Relax existing jump sanity check.
11448         * jump.c (jump_optimize_1): Remove conditional trap handling.
11449
11450 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
11451
11452         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
11453         millicode.
11454         (insn_refs_are_delayed): Correct comment.
11455         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
11456         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
11457         instead of r31.  Make associated insn !TARGET_64BIT, and
11458         provide an additional 64-bit insn that clobbers r2.
11459         (divsi3): Likewise.
11460         (udivsi3): Likewise.
11461         (modsi3): Likewise.
11462         (umodsi3): Likewise.
11463
11464 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
11465
11466         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
11467
11468         * flow.c (redirect_edge_and_branch_force, split_edge,
11469         try_crossjump_to_edge): Use set_block_for_new_insns.
11470         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
11471
11472 2001-07-13  H.J. Lu  (hjl@gnu.org)
11473
11474         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
11475         the correct patch.
11476
11477 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
11478
11479         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
11480
11481 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
11482
11483         * c-common.c (decl_attributes): Take a pointer to the node to
11484         which attributes are to be attached, and a flags argument.
11485         * c-common.h (enum attribute_flags): New.
11486         (decl_attributes): Update prototype.
11487         * c-decl.c (start_decl, push_parm_decl, finish_struct,
11488         finish_enum, start_function): Update calls to decl_attributes.
11489         * c-parse.in (component_declarator, component_notype_declarator,
11490         label): Update calls to decl_attributes.
11491
11492 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
11493
11494         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
11495         * config/avr/avr.c (legitimate_address_p): Return value changed
11496         from letter to register classes. For better debugging.
11497
11498 2001-07-13  Kazu Hirata  <kazu@hxi.com>
11499
11500         * jump.c (reversed_comparison_code_parts): Fix comment typos.
11501
11502 2001-07-13  H.J. Lu  (hjl@gnu.org)
11503
11504         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
11505
11506 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
11507
11508         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
11509         correctly for shared configurations.
11510         * config/t-libgcc-pic:  New.
11511         * config/{i386,m68k,sparc}/t-openbsd:  New.
11512         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
11513         Support -shared.  Support debugging libraries with -g.
11514         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
11515         frame information does not emit pointer diffs.
11516         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
11517         emit pointer diffs.
11518
11519 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
11520
11521         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
11522
11523 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
11524
11525         * combine.c (try_combine): Ensure const_int pow2 is positive.
11526
11527 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
11528
11529         * config.gcc: Add configuration for s/390.
11530         * config/s390/s390.c: New. Subroutines for code generation.
11531         * config/s390/s390.h: New. Definitions for s/390.
11532         * config/s390/s390-protos.h: New. Prototypes.
11533         * config/s390/linux.h: New. Definitions for linux for s/390.
11534         * config/s390/linux64.h: New. Definitions for linux for zSeries.
11535         * config/s390/t-linux: New. Makefile fragment.
11536         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
11537         * config/s390/fixdfdi.h: New. Fix L_fix*di.
11538
11539 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
11540
11541         * emit-rtl.c (try_split): Update mark_jump_label call.
11542         * flow.c (find_sub_basic_blocks): Likewise.
11543         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
11544         jump_back_p): Kill.
11545         (mark_all_labels): Kill second parameter.
11546         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
11547         (rebuild_jump_labels, jump_optimize_minimal): Update call
11548         of jump_optimize_1.
11549         (jump_optimize_1): Kill crossjumping code.
11550         (mark_jump_label): Kill cross_jump parameter.
11551         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
11552         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
11553         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
11554          splitting.
11555         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
11556         DFI_bpro.
11557         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
11558         reorganize passes to do reg-stack first, bb-reorder second.
11559         * invoke.texi (-d letters doc): Remove the jump2 pass.
11560
11561 2001-07-12  Steve Ellcey <sje@cup.hp.com>
11562
11563         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
11564
11565 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
11566
11567         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
11568         basic blocks.
11569         (verify_flow_info): Make diagnostics prettier.
11570
11571 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
11572
11573         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
11574
11575         * flow.c (outgoing_edges_match): Return early if condition reversal
11576         failed.
11577
11578 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
11579
11580         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
11581         (mips_move_2words): When splitting a move into two instructions,
11582         prefix the second address operand with '%D'.
11583
11584 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
11585
11586         * Makefile.in (final.o): Depend on debug.h.
11587         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
11588         (dbx_debug_hooks): Add new hooks.
11589         (xcoff_debug_hooks): New.
11590         * debug.c (debug_nothing_file_int_int): New.
11591         (do_nothing_debug_hooks): Update.
11592         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
11593         (debug_nothing_file_int_int): New.
11594         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
11595         static, update prototype.
11596         (dwarf2_debug_hooks): Update.
11597         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
11598         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
11599         static, update prototype.
11600         (dwarf_debug_hooks): Update.
11601         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
11602         * final.c: Include debug.h.
11603         (final_scan_insn): Use debug hooks when beginning and ending blocks.
11604         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
11605         static, update prototype.
11606         (sdb_debug_hooks): Update.
11607         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
11608         * toplev.c: Distinguish between xcoff and dbx.
11609
11610         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
11611         Call all debug hooks, not just dwarf ones.
11612
11613 2001-07-11  Timothy Wall  <twall@redhat.com>
11614
11615         * config.gcc: Add configuration for AIX5/IA64.
11616         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
11617         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
11618         support prefix/suffix code.
11619         * config/ia64/t-aix: New.  Makefile fragment.
11620         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
11621
11622 2001-07-11  Kazu Hirata  <kazu@hxi.com>
11623
11624         * recog.c (validate_change): Fix a comment typo.
11625
11626 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
11627
11628         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
11629         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
11630         hooks directly.
11631         * dbxout.c (dbx_debug_hooks): Add new hooks.
11632         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
11633         make static.
11634         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
11635         make static.
11636         * dbxout.h (dbxout_start_new_source_file,
11637         dbxout_resume_previous_source_file): Delete.
11638         * debug.c (do_nothing_debug_hooks): Add new hooks.
11639         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
11640         (debug_nothing_int_charstar, debug_nothing_int): New.
11641         * debug.h (gcc_debug_hooks): New hooks define, undef,
11642         start_source_file and end_source_file.
11643         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
11644         (debug_nothing_int_charstar, debug_nothing_int): New.
11645         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
11646         the conditionally compiled section.
11647         (dwarf2out_start_source_file, dwarf2out_end_source_file,
11648         dwarf2out_define, dwarf2out_undef): Make static.
11649         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
11650         dwarf2out_define, dwarf2out_undef): Remove.
11651         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
11652         (dwarfout_start_source_file, dwarfout_end_source_file,
11653         dwarfout_define, dwarfout_undef): Make static.
11654         (dwarfout_start_source_file_check,
11655         dwarfout_end_source_file_check): New.
11656         (dwarfout_define, dwarfout_finish): Update.
11657         * dwarfout.h (dwarfout_start_new_source_file,
11658         dwarfout_resume_previous_source_file, dwarfout_define,
11659         dwarfout_undef): Remove.
11660         * sdbout.c (sdb_debug_hooks): Add new hooks.
11661         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
11662         make static.
11663         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
11664         make static, take an arg.
11665         * sdbout.h (sdbout_start_new_source_file,
11666         sdbout_resume_previous_source_file): Delete.
11667         * toplev.c (debug_start_source_file, debug_end_source_file,
11668         debug_define, debug_undef): Delete.
11669         * toplev.h (debug_start_source_file, debug_end_source_file,
11670         debug_define, debug_undef): Delete.
11671
11672         * java/jcf-parse.c: Include debug.h.
11673         (parse_class_file): Update to use debug hooks directly.
11674         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
11675
11676 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11677
11678         * alias.c (set_mem_alias_set): New function.
11679         * rtl.h (set_mem_alias_set): Declare it.
11680         * builtins.c (expand_builtin_return_addr): Call it instead of
11681         using MEM_ALIAS_SET accessor.
11682         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
11683         (get_memory_rtx, expand_builtin_va_arg): Likewise.
11684         (expand_builtin_va_copy):Likewise.
11685         * caller-save.c (setup_save_areas): Likewise.
11686         * calls.c (compute_argument_addresses): Likewise.
11687         * explow.c (set_mem_attributes): Likewise.
11688         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
11689         (expand_assignment, store_constructor_field, store_field): Likewise.
11690         (expand_expr_unaligned): Likewise.
11691         * function.c (assign_stack_temp_for_type): Likewise.
11692         (put_reg_into_stack, gen_mem_addressof): Likewise.
11693         * ifcvt.c (noce_try_cmove_arith): Likewise.
11694         * reload1.c (reload, alter_reg): Likewise.
11695         * config/alpha/alpha.c (get_aligned_mem): Likewise.
11696         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
11697         (alpha_expand_unaligned_store): Likewise
11698         (alpha_expand_unaligned_load_words): Likewise.
11699         (alpha_expand_unaligned_store_words): Likewise.
11700         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
11701         (alpha_expand_epilogue): Likewise.
11702         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
11703         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
11704         * config/i386/i386.c (legitimize_pic_address): Likewise.
11705         * config/i960/i960.c (setup_incoming_varargs): Likewise.
11706         * config/ia64/ia64.c (spill_restore_mem): Likewise.
11707         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
11708         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
11709         * config/mips/mips.c (mips_va_arg): Likewise.
11710         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
11711         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
11712         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
11713         (setup_incoming_varargs, rs6000_va_arg): Likewise.
11714         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
11715         (rs6000_emit_epilogue): Likewise.
11716         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
11717         * config/sparc/sparc.c (sparc_va_arg): Likewise.
11718         * config/v850/v850.c (v850_va_arg): Likewise.
11719
11720 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
11721
11722         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
11723         when fallthru edge is present.
11724         (mege_blocks): Handle case where creation of jump insn
11725         is required.
11726
11727         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
11728         CLEANUP_POST_REGSTACK): New constants.
11729         * except.c (finish_eh_generation): Update call of cleanup_cfg,
11730         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
11731         * output.h (cleanup_cfg): Update prototype.
11732         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
11733         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
11734         cleanup_cfg call; kill missleading comment.
11735         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
11736         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
11737         parameter; control optimizations performed using it.
11738         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
11739         try_crossjump_bb): New functions.
11740
11741 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11742
11743         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
11744         extern.
11745         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
11746         pa_output_function_prologue.
11747         * pa-protos.h (pa_output_function_prologue): New prototype.
11748
11749 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11750
11751         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
11752         and low to get correct sign extension in low+high test.
11753
11754 2001-07-11  Janis Johnson <janis@us.ibm.com>
11755
11756         * gcov.c (arcdata): Use gcov_type to fix branch percentage
11757         for large hit count.
11758
11759         * profile.c (branch_prob): Fix .bbg info for computed gotos
11760         and C++ EH code.
11761
11762 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
11763
11764         * stmt.c (parse_output_constraint): New function, split out
11765         from ...
11766         (expand_asm_operands): ... here.  Use parse_output_constraint.
11767         * tree.h (parse_output_constraint): Declare it.
11768
11769 2001-07-11  Richard Henderson  <rth@redhat.com>
11770
11771         * bitmap.c: Comment some functions; fiddle whitespace.
11772         (bitmap_free): Don't export.
11773         (bitmap_element_allocate): Use memset.
11774         * bitmap.h (bitmap_free): Don't declare.
11775
11776 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
11777
11778         * gcse.c, lcm.c, sched-deps.c:
11779         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
11780
11781         * flow.c (flow_loops_find): Free dom if we found no loops, since
11782         we aren't going to save it.
11783
11784         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
11785         done.
11786
11787 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
11788
11789         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
11790
11791 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11792
11793         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
11794         #ifndef DWARF2_DEBUGGING_INFO.
11795
11796 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
11797
11798         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
11799
11800 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
11801
11802         * config/mips/mips.c (gen_int_relational): Tell the caller not to
11803         reverse a branch if a NE comparison is implemented with GTU.
11804
11805 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
11806             H.J. Lu  <hjl@gnu.org>
11807
11808         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
11809         constant addresses.
11810         (call_internal2): Likewise.
11811         (call_value_internal1): Likewise.
11812         (call_value_internal2): Likewise.
11813         (call_value_multiple_internal1): Likewise.
11814         (call_value_multiple_internal2): Likewise.
11815
11816 2001-07-10  Kazu Hirata  <kazu@hxi.com>
11817
11818         * calls.c (emit_library_call_value_1): Fix a comment typo.
11819         * dwarf2out.c (mem_loc_descriptor): Likewise.
11820         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
11821
11822 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
11823
11824         * simplify-rtx.c (simplify_subreg): Fix typo in comment
11825
11826 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11827
11828         * recog.c (offsettable_address_p): Handle LO_SUM case.
11829         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
11830         instead of plus_constant.
11831
11832 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11833
11834         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
11835         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
11836
11837 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11838
11839         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
11840         adjust_address_nv instead of plus_constant.
11841
11842 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
11843
11844         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
11845         dwarf2out.o): Depend on debug.h, wrap long lines.
11846         * dbxout.c: Include debug.h.
11847         (dbx_debug_hooks): New.
11848         (dbxout_init): Make static, take just 2 args.
11849         (dbxout_finish): Make static.
11850         * dbxout.h (dbxout_init, dbxout_finish): Delete.
11851         * debug.c: New file.
11852         * debug.h: New file.
11853         * dwarf2out.c: Include debug.h.
11854         (dwarf2_debug_hooks): New.
11855         (dwarf2out_init): Make static.
11856         (dwarf2out_finish): Make static, take 2 args.
11857         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
11858         * dwarfout.c: Include debug.h.
11859         (dwarf_debug_hooks): New.
11860         (dwarfout_init): Make static.
11861         (dwarfout_finish): Make static, take 2 args.
11862         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
11863         * sdbout.c: Include debug.h.
11864         (sdb_debug_hooks): New.
11865         (sdbout_init): Make static, take 2 args.
11866         * sdbout.h (sdbout_init): Delete.
11867         * toplev.c: Include debug.h.
11868         (debug_hooks): New.
11869         (compile_file): Set deubg_hooks based on command line options.
11870         Use the hooks unconditionally rather than conditional compilation.
11871
11872 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
11873
11874         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
11875         first_insn_after_basic_block_note instead.
11876
11877         * df.c (df_bb_refs_unlink): #if 0 out for now.
11878
11879 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
11880
11881         * ssa.h: Add prototype for ssa_const_prop
11882         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
11883         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
11884         (ssa_fast_dce): Remove unused variable
11885
11886 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
11887
11888         * diagnostic.c (finish_diagnostic): Rename to
11889         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
11890         calls thourghout.
11891
11892 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
11893
11894         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
11895         .loc support.
11896
11897         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
11898         (dump_file): Only pad the demangled name with spaces if the
11899         mangled name was padded with spaces.
11900
11901 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
11902
11903         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
11904         edge detection.
11905
11906 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11907
11908         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
11909         extraction if no direct load if either EXPAND_CONST_ADDRESS or
11910         EXPAND_INITIALIZER.
11911
11912         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
11913         whether can put offset inside LO_SUM to check mode alignment, not size.
11914
11915 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
11916
11917         * doc/tm.texi (Misc): Fix thinko.
11918
11919 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
11920
11921         * regmove.c (replace_in_call_usage): Fix warnings.
11922         * sched-deps.c (add_dependence): Fix warnings.
11923         * simplify-rtx.c (simplify_subreg): Likewise.
11924         Return NULL_RTX instead of NULL.
11925
11926         * reg-stack.c (emit_swap_insn): Eliminate warnings.
11927         (subst_asm_stack_regs): Likewise.
11928
11929         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
11930         warnings.
11931
11932         * dwarf2out.c (output_call_frame_info): Declare i as int.
11933         (build_abbrev_table): Declare n_alloc as int.
11934         (dwarf2out_finish): Initialize die.
11935         * except.c: Declare sjlj_funcdef_number as unsigned.
11936         (connect_post_landing_pads): Declare j as unsigned.
11937         (convert_to_eh_region_ranges): Initialize call_site.
11938         (output_function_exception_table): Initialize tt_format_size.
11939         * expr.c (move_by_pieces_1): Initialize to1.
11940         (store_constructor): Initialize minelt and maxelt.
11941         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
11942         * function.c (instantiate_decls): Avoid signed/unsigned warning.
11943
11944         * c-decl.c (combine_parm_decls): Unused, remove.
11945         * c-tree.h: Remove prototype for combine_parm_decls.
11946
11947         * reload.c (push_reload): Fix warning.
11948         (regno_clobbered_p): Likewise.
11949         * reload1.c (replace_pseudos_in_call_usage): Likewise.
11950         (reload_combine): Likewise.
11951
11952         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
11953         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
11954         warnings.
11955         * bitmap.c (bitmap_operation): Change user.
11956         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
11957
11958 2001-07-10  Eric Christopher  <echristo@redhat.com>
11959
11960         * config/mips/mips.c (override_options): Fix typo.
11961
11962 2001-07-09  Stan Shebs  <shebs@apple.com>
11963
11964         * target.h (struct gcc_target): New fields init_builtins and
11965         expand_builtin.
11966         * target-def.h (TARGET_INIT_BUILTINS): New macro.
11967         (TARGET_EXPAND_BUILTIN): New macro.
11968         (TARGET_INITIALIZER): Add them.
11969         * builtins.c: Include target.h.
11970         (expand_builtin): Use targetm.expand_builtin.
11971         (default_init_builtins): New function.
11972         (default_expand_builtin): New function.
11973         * expr.h (default_init_builtins): Declare.
11974         (default_expand_builtin): Declare.
11975         * c-common.c (c_common_nodes_and_builtins): Use
11976         targetm.init_builtins.
11977         * defaults.h (MD_INIT_BUILTINS): Remove.
11978         * Makefile.in (builtins.o): Depend on target.h.
11979
11980         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
11981         (TARGET_EXPAND_BUILTIN): Define.
11982         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
11983         (MD_EXPAND_BUILTIN): Remove.
11984
11985         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
11986         (TARGET_EXPAND_BUILTIN): Define.
11987         (c4x_init_builtins): Make endlink arg a local.
11988         (c4x_print_operand): Fix typos in adjust_address usages.
11989         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
11990         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
11991         (MD_EXPAND_BUILTIN): Remove.
11992
11993         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
11994         (TARGET_EXPAND_BUILTIN): Define.
11995         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
11996         (ix86_init_builtins): Call new function only if TARGET_MMX.
11997         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
11998         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
11999         (MD_EXPAND_BUILTIN): Remove.
12000
12001         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
12002         (TARGET_EXPAND_BUILTIN): Define.
12003         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
12004         (MD_EXPAND_BUILTIN): Remove.
12005
12006         * doc/tm.texi: Document these changes.
12007
12008 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
12009
12010         * basic-block.h (tree_node): Forward declare if needed.
12011         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
12012         (BLOCK_HEAD_TREE): Define.
12013         (BLOCK_END_TREE): Define.
12014         (struct loops): Rename field 'tree' to 'tree_root'.
12015         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
12016         'end_tree'.
12017         (flow_loops_tree_build): Rename reference to field 'tree' to
12018         'tree_root'.
12019         (flow_loops_level_compute): Ditto.
12020         * predict.c (estimate_bb_frequencies): Ditto.
12021         * tree.h (struct tree_common): Add field 'aux'.
12022
12023 2001-07-09  Stan Shebs  <shebs@apple.com>
12024
12025         * config/darwin.c (darwin_encode_section_info): Don't mark any
12026         DECL_EXTERNAL node as defined.
12027
12028 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12029
12030         * pa.c (pa_init_machine_status, pa_mark_machine_status,
12031         pa_free_machine_status, hppa_init_pic_save): Delete.
12032         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
12033         (hppa_profile_hook): Use hppa_pic_save_rtx.
12034         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
12035         hppa_init_pic_save): Delete.
12036         (hppa_pic_save_rtx): Declare.
12037         * pa.md (call, call_value, sibcall, sibcall_value,
12038         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
12039
12040 2001-07-09  Kazu Hirata  <kazu@hxi.com>
12041
12042         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
12043         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
12044
12045 2001-07-09  Andreas Jaeger  <aj@suse.de>
12046
12047         * output.h: Add declaration of final_forward_branch_p.
12048
12049         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
12050
12051         * varray.c: Include errors.h for internal_error and trim_filename
12052         declarations.
12053
12054         * Makefile.in (varray.o): Add errors.h.
12055
12056 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
12057
12058         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
12059         * optabs.c (have_add2_insn): Check whether the add insn chosen
12060         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
12061         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
12062
12063 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
12064
12065         * Makefile.in (OBJS): Add ssa-ccp.o
12066         (ssa-ccp.o): Add dependencies.
12067         * toplev.c (DFI_ssa_ccp): New dump file enum.
12068         (dump_file): Add entry for dumping after SSA CCP.
12069         (flag_ssa_ccp): New flag variable.
12070         (f_options): Add -fssa-ccp.
12071         (rest_of_compilation): Run SSA CCP if requested.
12072         * timevar.def (TV_SSA_CCP): New timevar.
12073         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
12074         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
12075         Fix minor typo in SSA DCE documentation.
12076         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
12077         Add documentation for new dump option.  Renumber dump files
12078         appropriately.
12079
12080 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
12081
12082         * emit-rtl.c (gen_highpart_mode): New.
12083         * rtl.h (gen_highpart_mode): Declare.
12084         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
12085         operand can be VOIDmode constant.
12086
12087 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
12088
12089         * flow.c (redirect_edge_and_branch_force): New.
12090         (can_fallthru): Ensure that basic blocks are succeeding.
12091         (try_optimize_cfg): Do not delete basic block if it is the last one.
12092
12093         * flow.c (try_redirect_by_replacing_jump): Do not remove
12094         jumps with side effects, unlink chain on fallthru edge;
12095         set block for new jump instruction; avoid basic block to
12096         over by line number note.
12097
12098         * flow.c (try_simplify_condjump): Verify that the condjump
12099         is not always falling through.
12100
12101         Re-install patch:
12102         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
12103
12104         * flow.c (forwarder_block_p): Fix for fallthru blocks.
12105         (try_redirect_by_replacing_jump): Update properly the count
12106         and frequency information.
12107
12108 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12109
12110         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
12111         address that is a LO_SUM specially.
12112         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
12113
12114         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
12115
12116         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
12117         (operand_subword): Use them.
12118         (change_address_1): Renamed from change_address; new arg VALIDATE.
12119         * expr.h: Reflect above changes; change_address now macro.
12120         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
12121         making MEM.
12122         * cselib.c (add_mem_for_addr): Likewise.
12123         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
12124         * regmove.c (try_apply_stack_adjustment): Likewise.
12125         * reload.c (push_reload, make_memloc): Likewise.
12126         * reload1.c (eliminate_regs): Likewise.
12127         * simplify-rtx.c (simplify_replace_rtx): Likewise.
12128         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
12129         adjust_addess.
12130         * combine.c (make_extraction, simplify_shift_const): Likewise.
12131         (gen_lowpart_for_combine): Likewise.
12132         * cse.c (gen_lowpart_if_possible): Likewise.
12133         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
12134         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
12135         * optabs.c (gen_move_insn): Likewise.
12136         * reload1.c (alter_reg): Likewise.
12137         * simplify-rtx.c (simplify_subreg): Likewise.
12138         * stmt.c (expand_anon_union_decl): Likewise.
12139         * recog.c (validate_replace_rtx_1): Likewise.
12140         (expr.h): Include.
12141         * Makefile.in (recog.o): Add $(EXPR_H).
12142         * explow.c (stabilize): Call replace_equiv_address.
12143         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
12144         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
12145
12146 2001-07-03  Andrew Haley  <aph@redhat.com>
12147
12148         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
12149         the mode of the memory location.
12150
12151 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
12152
12153         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
12154
12155 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
12156
12157         * final.c (output_addr_const): Use target opening and
12158         closing parentheses.
12159         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
12160         defaults, add to TARGET_ASM_OUT.
12161         * target.h (struct gcc_target): Add open_paren and close_paren.
12162         * doc/md.texi: Update.
12163         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
12164         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
12165         TARGET_ASM_CLOSE_PAREN.
12166         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
12167         Override.
12168         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
12169         Override.
12170         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
12171         * config/a29k/a29k.h: Similarly.
12172         * config/alpha/alpha.h: Similarly.
12173         * config/arc/arc.h: Similarly.
12174         * config/arm/aof.h: Similarly.
12175         * config/arm/aout.h: Similarly.
12176         * config/avr/avr.h: Similarly.
12177         * config/c4x/c4x.h: Similarly.
12178         * config/clipper/clipper.h: Similarly.
12179         * config/convex/convex.h: Similarly.
12180         * config/d30v/d30v.h: Similarly.
12181         * config/dsp16xx/dsp16xx.h: Similarly.
12182         * config/elxsi/elxsi.h: Similarly.
12183         * config/fr30/fr30.h: Similarly.
12184         * config/h8300/h8300.h: Similarly.
12185         * config/i370/i370.h: Similarly.
12186         * config/i386/i386.h: Similarly.
12187         * config/i860/i860.h: Similarly.
12188         * config/i960/i960.h: Similarly.
12189         * config/ia64/ia64.h: Similarly.
12190         * config/m32r/m32r.h: Similarly.
12191         * config/m68hc11/m68hc11.h: Similarly.
12192         * config/m68k/m68k.h: Similarly.
12193         * config/m88k/m88k.h: Similarly.
12194         * config/mcore/mcore.h: Similarly.
12195         * config/mips/mips.h: Similarly.
12196         * config/mn10200/mn10200.h: Similarly.
12197         * config/mn10300/mn10300.h: Similarly.
12198         * config/ns32k/ns32k.h: Similarly.
12199         * config/pa/pa.h: Similarly.
12200         * config/pdp11/pdp11.h: Similarly.
12201         * config/pj/pj.h: Similarly.
12202         * config/romp/romp.h: Similarly.
12203         * config/rs6000/rs6000.h: Similarly.
12204         * config/sh/sh.h: Similarly.
12205         * config/sparc/sparc.h: Similarly.
12206         * config/v850/v850.h: Similarly.
12207         * config/vax/vax.h: Similarly.
12208         * config/we32k/we32k.h: Similarly.
12209
12210 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
12211
12212         * doc/c-tree.texi: Document representation of attributes.
12213
12214 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12215
12216         * doc/tm.texi: Update some places for the rename of target to
12217         targetm.  Fix typo.
12218
12219 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12220
12221         * target.h (struct gcc_target): Add insert_attributes.
12222         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
12223         (TARGET_INITIALIZER): Update.
12224         * tree.c, tree.h (default_insert_attributes): New function.
12225         Update comments on other default functions to refer to targetm,
12226         not target.
12227         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
12228         TARGET_INSERT_ATTRIBUTES.
12229         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
12230         * c-common.c (decl_attributes): Use targetm.insert_attributes.
12231         Don't use PRAGMA_INSERT_ATTRIBUTES.
12232         * Makefile.in (c-common.o): Depend on $(TARGET_H).
12233         * c-decl.c (start_decl, start_function): Don't call
12234         SET_DEFAULT_DECL_ATTRIBUTES.
12235         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
12236         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
12237         declare.
12238         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
12239         (c4x_check_attribute): Avoid modifying attribute list itself.
12240         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
12241         Make static.
12242         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
12243         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
12244         declare.
12245         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
12246         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
12247         Make static.
12248         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
12249         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
12250         declare.
12251         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
12252         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
12253         Adjust parameters.  Make static.
12254
12255 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12256
12257         * c-common.c (decl_attributes): Only take a single attributes
12258         parameter.
12259         * c-common.h (decl_attributes): Update prototype.
12260         * c-decl.c (start_decl, start_function): Only take a single
12261         attributes parameter.  Update calls to decl_attributes.
12262         (finish_struct, finish_enum): Update calls to decl_attributes.
12263         (push_parm_decl): Expect unified list of attributes.  Update call
12264         to decl_attributes.
12265         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
12266         notype_nested_function, component_declarator,
12267         component_notype_declarator, label): Update calls to
12268         decl_attributes.
12269         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
12270         lists that are passed to push_parm_decl.
12271         * c-tree.h (start_function, start_decl): Update prototypes.
12272         * config/sh/sh-protos.h, config/sh/sh.c
12273         (sh_pragma_insert_attributes): Only take a single attributes
12274         parameter.
12275         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
12276         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
12277         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
12278         build_module_descriptor, generate_static_references,
12279         generate_strings, build_selector_translation_table,
12280         generate_descriptor_table, generate_protocols,
12281         generate_ivars_list, generate_dispatch_table,
12282         generate_protocol_list, generate_category,
12283         generate_shared_structures, really_start_method, add_objc_decls,
12284         generate_classref_translation_entry): Update calls to start_decl
12285         and start_function.
12286         (build_tmp_function_decl, start_method_def): Unify attribute lists
12287         that are passed to push_parm_decl.
12288
12289 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
12290
12291         * final.c (no_asm_to_stream): New.
12292         (final_scan_insn): Use target structures for prologue ends
12293         and epilogue starts.
12294         * output.h (no_asm_to_stream): New.
12295         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
12296         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
12297         (TARGET_ASM_OUT): Update.
12298         * target.h (struct gcc_target): New members function_end_prologue
12299         and function_begin_epilogue.
12300         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
12301         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
12302         * config/alpha/alpha.c (output_end_prologue): Rename to
12303         alpha_output_function_end_prologue.  Use in target struct
12304         and make static.
12305         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
12306         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
12307         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
12308         ia64_output_function_end_prologue.  Use in target struct
12309         and make static.
12310         (ia64_function_prologue, ia64_funciton_epilogue): Rename
12311         mistyped prototypes.
12312         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
12313         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
12314         Delete.
12315         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
12316         an use in target struct, make static.
12317         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
12318         Delete.
12319
12320 2001-07-08  Richard Henderson  <rth@redhat.com>
12321
12322         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
12323
12324 2001-07-08  Richard Henderson  <rth@redhat.com>
12325
12326         * config/i386/i386.md: Remove constraints strings from define_split
12327         and define_peephole2 patterns.
12328         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
12329         (eh_return): Use them.
12330
12331 2001-07-08  Richard Henderson  <rth@redhat.com>
12332
12333         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
12334         Document MD_FALLBACK_FRAME_STATE_FOR.
12335
12336 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12337
12338         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
12339         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
12340         elimination.
12341         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
12342
12343 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
12344
12345         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
12346         of the label inside NAME as opposed to just the end of NAME.
12347
12348 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
12349
12350         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
12351         * config/alpha/alpha.c (alpha_init_machine_status,
12352         alpha_mark_machine_status, alpha_free_machine_status): Delete.
12353         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
12354         (vms_valid_decl_attribute_p): Make static, conditionally compile.
12355         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
12356
12357 2001-07-06  Stan Shebs  <shebs@apple.com>
12358
12359         * target.h (targetm): Rename global from "target", so as not to
12360         conflict with local variables.
12361         * c-decl.c: Ditto.
12362         * c-typeck.c: Ditto.
12363         * final.c: Ditto.
12364         * tree.c: Ditto.
12365         * cp/decl.c: Ditto.
12366         * cp/decl2.c: Ditto.
12367         * cp/typeck.c: Ditto.
12368         * 1750a/1750a.c: Ditto.
12369         * a29k/a29k.c: Ditto.
12370         * arc/arc.c: Ditto.
12371         * arm/arm.c: Ditto.
12372         * avr/avr.c: Ditto.
12373         * clipper/clipper.c: Ditto.
12374         * convex/convex.c: Ditto.
12375         * d30v/d30v.c: Ditto.
12376         * dsp16xx/dsp16xx.c: Ditto.
12377         * elxsi/elxsi.c: Ditto.
12378         * fr30/fr30.c: Ditto.
12379         * h8300/h8300.c: Ditto.
12380         * i370/i370.c: Ditto.
12381         * i386/i386.c: Ditto.
12382         * i860/i860.c: Ditto.
12383         * i960/i960.c: Ditto.
12384         * ia64/ia64.c: Ditto.
12385         * m32r/m32r.c: Ditto.
12386         * m68hc11/m68hc11.c: Ditto.
12387         * m68k/m68k.c: Ditto.
12388         * m88k/m88k.c: Ditto.
12389         * mips/mips.c: Ditto.
12390         * ns32k/ns32k.c: Ditto.
12391         * pa/pa.c: Ditto.
12392         * pdp11/pdp11.c: Ditto.
12393         * romp/romp.c: Ditto.
12394         * rs6000/rs6000.c: Ditto.
12395         * sh/sh.c: Ditto.
12396         * sparc/sparc.c: Ditto.
12397         * vax/vax.c: Ditto.
12398         * we32k/we32k.c: Ditto.
12399         * doc/tm.texi: Update the manual to match.
12400
12401 2001-07-06  Richard Henderson  <rth@redhat.com>
12402
12403         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
12404         DWARF2_UNWIND_INFO not just whether it is defined.
12405
12406 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
12407
12408         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
12409         call to simplify_binary_operation returns a new pattern.
12410
12411 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
12412
12413         * glimits.h (__SHRT_MAX__): New.
12414         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
12415         (SHRT_MAX): Define in terms of __SHRT_MAX__.
12416
12417 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
12418
12419         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
12420         avoid warnings.
12421
12422 2001-07-06  Richard Henderson  <rth@redhat.com>
12423
12424         * bitmap.c (bitmap_release_memory): Move adjacent to the
12425         allocation functions.
12426         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
12427         the implementation.  Binary search for the set bit.
12428         (bitmap_union_of_diff): Allocate the temporary on the stack
12429         instead of using xmalloc.
12430
12431 2001-07-06  Richard Henderson  <rth@redhat.com>
12432
12433         * genrecog.c (validate_pattern): Warn for constraints in
12434         define_{expand,split,peephole2}.  Remove strict_low_part
12435         before looking up match_dup.
12436
12437 2001-07-06  DJ Delorie  <dj@redhat.com>
12438
12439         * doc/gcc.texi (Makefile): Rename to be a more general purpose
12440         chapter about various build hints and history.  Add section
12441         talking about the various types of native and cross builds.
12442
12443 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
12444
12445         * Makefile.in (final.o): Depend on target.h.
12446         * final.c: Include target.h.
12447         (default_function_pro_epilogue): New.
12448         (final_start_function): Use target structure for function prologues.
12449         (final_end_function): Use target structure for function epilogues.
12450         * fold-const.c (real_hex_to_f): Constify s and p.
12451         * output.h (default_function_pro_epilogue): New.
12452         * real.h (real_hex_to_f): Update prototype.
12453         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
12454         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
12455         (TARGET_INITIALIZER): Update.
12456         * target.h (gcc_target): Add struct asm_out.
12457         * doc/tm.texi: Update.
12458
12459 config:
12460         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
12461         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
12462         in cpu/cpu.c, or rename old functions consistently.  Take
12463         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
12464         redundant macros and prototypes.  Make new functions static.
12465
12466         * 1750a/1750a.c: Similarly.
12467         * 1750a/1750a.h: Similarly.
12468         * a29k/a29k-protos.h: Similarly.
12469         * a29k/a29k.c: Similarly.
12470         * a29k/a29k.h: Similarly.
12471         * arc/arc-protos.h: Similarly.
12472         * arc/arc.c: Similarly.
12473         * arc/arc.h: Similarly.
12474         * arm/arm-protos.h: Similarly.
12475         * arm/arm.c: Similarly.
12476         * arm/arm.h: Similarly.
12477         * avr/avr-protos.h: Similarly.
12478         * avr/avr.c: Similarly.
12479         * avr/avr.h: Similarly.
12480         * clipper/clipper-protos.h: Similarly.
12481         * clipper/clipper.c: Similarly.
12482         * clipper/clipper.h: Similarly.
12483         * convex/convex.c: Similarly.
12484         * convex/convex.h: Similarly.
12485         * d30v/d30v-protos.h: Similarly.
12486         * d30v/d30v.c: Similarly.
12487         * d30v/d30v.h: Similarly.
12488         * d30v/d30v.md: Similarly.
12489         * dsp16xx/dsp16xx-protos.h: Similarly.
12490         * dsp16xx/dsp16xx.c: Similarly.
12491         * dsp16xx/dsp16xx.h: Similarly.
12492         * elxsi/elxsi.c: Similarly.
12493         * elxsi/elxsi.h: Similarly.
12494         * fr30/fr30.c: Similarly.
12495         * fr30/fr30.md: Similarly.
12496         * h8300/h8300-protos.h: Similarly.
12497         * h8300/h8300.c: Similarly.
12498         * h8300/h8300.h: Similarly.
12499         * i370/i370-protos.h: Similarly.
12500         * i370/i370.c: Similarly.
12501         * i370/i370.h: Similarly.
12502         * i386/i386.c: Similarly.
12503         * i386/osf1elf.h: Similarly.
12504         * i386/osfrose.h: Similarly.
12505         * i860/i860-protos.h: Similarly.
12506         * i860/i860.c: Similarly.
12507         * i860/i860.h: Similarly.
12508         * i960/i960-protos.h: Similarly.
12509         * i960/i960.c: Similarly.
12510         * i960/i960.h: Similarly.
12511         * ia64/ia64-protos.h: Similarly.
12512         * ia64/ia64.c: Similarly.
12513         * ia64/ia64.h: Similarly.
12514         * m32r/m32r-protos.h: Similarly.
12515         * m32r/m32r.c: Similarly.
12516         * m32r/m32r.h: Similarly.
12517         * m68hc11/m68hc11-protos.h: Similarly.
12518         * m68hc11/m68hc11.c: Similarly.
12519         * m68hc11/m68hc11.h: Similarly.
12520         * m68k/crds.h: Similarly.
12521         * m68k/dpx2.h: Similarly.
12522         * m68k/m68k-protos.h: Similarly.
12523         * m68k/m68k.c: Similarly.
12524         * m68k/m68k.h: Similarly.
12525         * m68k/news.h: Similarly.
12526         * m88k/m88k-protos.h: Similarly.
12527         * m88k/m88k.c: Similarly.
12528         * m88k/m88k.h: Similarly.
12529         * mips/mips-protos.h: Similarly.
12530         * mips/mips.c: Similarly.
12531         * mips/mips.h: Similarly.
12532         * ns32k/merlin.h: Similarly.
12533         * ns32k/ns32k.c: Similarly.
12534         * ns32k/ns32k.h: Similarly.
12535         * ns32k/tek6000.h: Similarly.
12536         * pa/pa-protos.h: Similarly.
12537         * pa/pa.c: Similarly.
12538         * pa/pa.h: Similarly.
12539         * pdp11/2bsd.h: Similarly.
12540         * pdp11/pdp11-protos.h: Similarly.
12541         * pdp11/pdp11.c: Similarly.
12542         * pdp11/pdp11.h: Similarly.
12543         * romp/romp-protos.h: Similarly.
12544         * romp/romp.c: Similarly.
12545         * romp/romp.h: Similarly.
12546         * rs6000/rs6000-protos.h: Similarly.
12547         * rs6000/rs6000.c: Similarly.
12548         * rs6000/rs6000.h: Similarly.
12549         * rs6000/sysv4.h: Similarly.
12550         * sh/sh-protos.h: Similarly.
12551         * sh/sh.c: Similarly.
12552         * sh/sh.h: Similarly.
12553         * sparc/sparc-protos.h: Similarly.
12554         * sparc/sparc.c: Similarly.
12555         * sparc/sparc.h: Similarly.
12556         * vax/vax.c: Similarly.
12557         * vax/vax.h: Similarly.
12558         * vax/vms.h: Similarly.
12559         * we32k/we32k.c: Similarly.
12560         * we32k/we32k.h: Similarly.
12561
12562 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
12563
12564         * basic-block.h (first_insn_after_basic_block_note): Declare.
12565         * flow.c (first_insn_after_basic_block_note): Define.  Moved
12566         from...
12567         * ssa.c (first_insn_after_basic_block_note): Remove.
12568         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
12569         necessary.
12570         (ssa_eliminate_dead_code): Properly update the CFG and PHI
12571         nodes when we find a dead conditional branch.  Insert BARRIERs
12572         after any blocks with no successors, but which do not have
12573         any BARRIERs.
12574
12575 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
12576
12577         * varray.c (varray_check_failed): Use internal_error.
12578
12579 2001-07-05  Andrew Haley  <aph@redhat.com>
12580
12581         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
12582         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
12583         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
12584
12585 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
12586
12587         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
12588         reference if the target constant is also a SYMBOL_REF.
12589
12590 2001-07-05  Eric Christopher  <echristo@redhat.com>
12591
12592         * config/mips/mips.h (MASK_MIPS3900): Remove.
12593         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
12594         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
12595         (TARGET_MIPS3900): Change to use mips_arch.
12596         (TARGET_MIPS4000): New.
12597         (TARGET_MIPS4100): New.
12598         (TARGET_MIPS4300): New.
12599         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
12600         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
12601         for -mipsX.
12602         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
12603         (ISA_HAS_BRANCHLIKELY): To here.
12604         (CC1_CPU_SPEC):  New.
12605         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
12606         (mips_arch_string): Declare.
12607         (mips_arch): Declare.
12608         (TARGET_OPTIONS): Add -march and -mtune.
12609
12610         * config/mips/mips.c (mips_arch_string): New.
12611         (mips_arch): New.
12612         (override_options): Handle -march for codegen and -mtune
12613         for scheduling. Use mips_arch. Move tx39 target default here.
12614         (mips_parse_cpu): Move error message to override_options.
12615
12616         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
12617
12618         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
12619
12620         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
12621         (MIPS Options): Ditto.  Change mcpu entry to historical text.
12622
12623 2001-07-05  H.J. Lu  (hjl@gnu.org)
12624
12625         * config/mips/mips.c (mips_parse_cpu): New function to parse
12626         -march=*/-mcpu=*.
12627
12628 2001-07-05  Jim Wilson  <wilson@redhat.com>
12629
12630         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
12631         * config/ia64/t-ia64: Likewise.
12632         (LIB1ASMFUNCS): Update comment.
12633
12634 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
12635
12636         * doc/install.texi (Install GCC: Binaries): Fix typo.
12637
12638 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12639
12640         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
12641         reference using the stack pointer, adjust it since we push Y
12642         temporarily.
12643         ("*ashrsi3"): Likewise.
12644         ("*lshrsi3"): Likewise.
12645
12646 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12647
12648         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
12649         when -fomit-frame-pointer is used.
12650
12651 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
12652
12653         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
12654         (try_redirect_by_replacing_jump): Reverse updating properly the
12655         count and frequency information.  Reverse removing cc0 setter.
12656         (forwarder_block_p): Reverse fixing for fallthru blocks.
12657
12658 2001-07-05  DJ Delorie  <dj@redhat.com>
12659
12660         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
12661         (translate_options): If the above is defined, use it to map
12662         given options to new options.
12663         * doc/tm.texi: Document it.
12664
12665 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
12666             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12667
12668         * doc/invoke.texi (Optimize Options): Document that -fgcse may
12669         cause programs using computed gotos to run more slowly.
12670
12671 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12672
12673         * doc/install.texi (Specific): Markup, spelling and typo fixes.
12674         Fixed sorting.
12675         Consistently require binutils 2.11.2, not prereleases.
12676         (Specific, decstation-*): Canonicalize as mips-dec-*.
12677         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
12678         always necessary.
12679         (Specific, m68k-altos): Removed reference to README.altos, deleted.
12680         (Specific, mips-*): Reword MIPS C compiler requirements.
12681         (Specific, powerpc*-*-*): New, mention --with-cpu once.
12682         (Specific, sunv5): Removed, obsolete.
12683
12684 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
12685
12686         * dwarf2out.c (output_loc_list): Use an all ones mask for
12687         .text asm output and don't rely on long long
12688         literals. Reformat some long lines.
12689
12690 2001-07-05  Andreas Jaeger  <aj@suse.de>
12691
12692         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
12693         section.
12694
12695 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
12696
12697         * dwarf2out.c (dwarf2out_define): Update comment.
12698         (dwarf2out_undef): Ditto.
12699         (dwarf2out_start_source_file): Ditto.
12700         (dwarf2out_end_source_file): Ditto.
12701         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
12702         since we never call the start/end debug hook for the primary file.
12703
12704 2001-07-04  Kazu Hirata  <kazu@hxi.com>
12705
12706         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
12707         from shll.
12708
12709 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
12710
12711         * cppinit.c (remove_dup_dirs): Inform if a system include
12712         directory is being reordered.
12713         * doc/invoke.texi (Directory Options): GCC warns if you hide a
12714         system include.
12715         * doc/cpp.texi (Search Paths): Likewise.
12716         * doc/gcc.texi (Interoperation): Remove information about
12717         -I/usr/include.
12718
12719 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
12720
12721         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
12722         (VARRAY_TOP_CHAR_PTR): Likewise.
12723
12724 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12725
12726         * gcc.c (process_command): Don't assign elements of a const char*.
12727
12728 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12729
12730         * emit-rtl.c (change_address): Don't abort if invalid address while
12731         reload is in progress.
12732
12733 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
12734
12735         * c-lex.c (cb_file_change): Pass line number to
12736         debug_start_source_file.
12737         (cb_undefine): Pass correct line number to debug_undef.
12738
12739         * toplev.c (debug_start_source_file): Add line number to
12740         parameters. Pass it along to dwarf2out_start_source_file.
12741         (decode_g_option): Stop resetting debug level back to normal when
12742         we change debug formats, unless the current level is
12743         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
12744         3).
12745
12746         * toplev.h (debug_start_source_file): Add line number to
12747         parameters.
12748
12749         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
12750         parameters.
12751
12752         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
12753         parameters.
12754         Output debug_macinfo data for starting file if requested.
12755         (dwarf2out_end_source_file): Output debug_macinfo data for ending
12756         file if requested.
12757         (dwarf2out_define): Output debug_macinfo data for defining a macro
12758         if requested.
12759         (dwarf2out_undef): Output debug_macinfo data for undefining a
12760         macro if requested.
12761         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
12762         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
12763         (macinfo_section_label): New. DWARF2 macro info section label.
12764         (dwarf2out_init): If we want macro info, output the start label
12765         for the section.
12766         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
12767         attribute to the compilation unit die pointing to the macro info.
12768
12769 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
12770
12771         * dwarf2out.c (new_loc_list): Move to inside #ifdef
12772         DWARF2_DEBUGGING_INFO.
12773         (add_loc_descr_to_loc_list): Ditto.
12774         (output_loc_list): Ditto.
12775         Also, fix thinko in curr not being initialized.
12776         (gen_internal_sym): Ditto.
12777
12778 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12779
12780         * emit-rtl.c (replace_equiv_address): New function.
12781         * expr.h (replace_equiv_address): New declaration.
12782         * explow.c (validize_mem): Call it instead of change_address and
12783         also call if -fforce-addr and address is constant.
12784         * expr.c: Replace more calls to change_address with adjust_address
12785         and/or replace_equiv_address or to validize_mem.
12786         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
12787         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
12788         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
12789         * config/i370/i370.md, config/i860/i860.md: Likewise.
12790         * config/i960/i960.md, config/mips/mips.c: Likewise.
12791         * config/mips/mips.md, config/pa/pa.md: Likewise.
12792         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
12793         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
12794
12795 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12796
12797         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
12798
12799         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
12800         function.
12801
12802 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
12803
12804         * doc/include: New directory.
12805         * doc/fdl.texi: Move to doc/include/fdl.texi.
12806         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
12807         * doc/include/funding.texi, doc/include/gpl.texi: New files.
12808         * doc/gcc.texi: Use funding.texi and gpl.texi.
12809         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
12810         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
12811         Update dependencies and use -I $(docdir)/include.
12812
12813 2001-07-04  Anthony Green  <green@redhat.com>
12814
12815         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
12816
12817 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12818
12819         * doc/install.texi (sparc64-*-*): Remove garbage.
12820
12821 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
12822
12823         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
12824         Fix typo in last change to use adjust_address.
12825
12826 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12827
12828         * doc/install.texi (Specific): Update information for *-*-solaris*.
12829
12830 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12831
12832         * explow.c (plus_constant_wide): Reinitialize Y for restart.
12833
12834 2001-07-03  Stan Shebs  <shebs@apple.com>
12835
12836         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
12837         case for flag_no_mach_text_sections.
12838         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
12839         * config/darwin.c (flag_no_mach_text_sections): Remove.
12840         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
12841
12842 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12843
12844         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
12845         and avoid checking for constant as first operand.
12846         * recog.c (find_constant_term_loc): No longer static.
12847         (adj_offettable_operand): Delete.
12848         * rtl.h (adj_offsettable_operand): Delete declaration.
12849         (find_constant_term): Add declaration.
12850         * caller-save.c: Replace calls to adj_offsettable_operand with calls
12851         to adjust_address.
12852         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
12853         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
12854         * config/i386/i386.c, config/i386/i386.md: Likewise.
12855         * config/i860/i860.c, config/i960/i960.c: Likewise.
12856         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
12857         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
12858         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
12859         * config/mips/mips.c, config/mips/mips.md: Likewise.
12860         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
12861         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
12862         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
12863         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
12864         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
12865         * config/ns32k/ns32k.md: Likewise.
12866
12867 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
12868
12869         * rtl.c (copy_rtx): Handle 'T' format letter.
12870         * gensupport.c (collect_insn_data): Likewise.
12871         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
12872
12873 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
12874
12875         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
12876         -B option.  Use 'dir' not 'foo' as example directory name.
12877
12878 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12879
12880         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12881         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
12882
12883 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
12884
12885         * doc/cppinternals.texi: Improve formatting and logical markup.
12886
12887 2001-07-03  Andreas Jaeger  <aj@suse.de>
12888
12889         * Makefile.in (insn-recog.o): Add dependency on reload.h.
12890
12891         * genrecog.c (write_header): Include reload.h for prototypes in
12892         insn-recog.c.
12893
12894 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12895
12896 config:
12897         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
12898         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
12899         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
12900         i386_pe_valid_type_attribute_p): Add.
12901         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
12902         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
12903
12904 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12905
12906         * explow.c (plus_constant_wide, case LO_SUM): New case.
12907         (plus_constant_for_output_wide): Delete.
12908         * rtl.h (plus_constant_for_output): Delete.
12909         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
12910         instead of plus_constant_for_output.
12911         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
12912         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
12913         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
12914         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
12915         * config/sparc/sparc.md: Likewise.
12916         Convert some change_address calls to adjust_address.
12917
12918 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
12919
12920         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
12921         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
12922         documentation of -std and -Wwrite-strings.
12923
12924 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
12925
12926         * cse.c (canon_hash): Don't register registers in very small
12927         register classes, as extending their lifetime might cause
12928         reload to fail.
12929
12930 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
12931
12932         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
12933
12934         * flow.c (forwarder_block_p): Fix for fallthru blocks.
12935         (try_redirect_by_replacing_jump): Update properly the count
12936         and frequency information.
12937
12938 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
12939
12940         * toplev.c (dump_file_index): Move SSA dumps just after first
12941         jump dump.
12942         (dump_file): Corresponding changes.
12943         (rest_of_compilation): Move SSA path to just after the first
12944         jump pass.
12945         * doc/gcc.texi (Passes): Update due to movement of SSA path.
12946         * doc/invoke.texi: Update dump file #s as they were completely
12947         out of date with reality.
12948
12949 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
12950
12951         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
12952
12953         * expr.c (emit_move_insn_1): Deal with non-default
12954         STACK_PUSH_CODE.
12955
12956         * expr.c (emit_single_push_insn): Fix warning.
12957
12958 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
12959
12960         * expr.c (emit_move_insn_1): Avoid modifying
12961         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
12962
12963 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12964
12965         * emit-rtl.c (adjust_address): New function.
12966         * expr.h (adjust_address): Add declaration.
12967         * builtins.c: Replace some calls to change_address with calls to it
12968         or to validize_mem.
12969         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
12970         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
12971         * config/arm/arm.c, config/convex/convex.c: Likewise.
12972         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
12973         * config/i386/i386.c, config/i386/i386.md: Likewise.
12974         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
12975         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
12976         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
12977         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
12978         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
12979
12980 2001-07-02  Jim Wilson  <wilson@redhat.com>
12981
12982         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
12983
12984 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
12985
12986         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
12987         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
12988
12989 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
12990
12991         * cppinit.c (lang_defaults): New table.
12992         (set_lang): Just read from lang_defaults into the live options
12993         structure.
12994
12995 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
12996
12997         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
12998         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
12999         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
13000
13001 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13002
13003         * doc/install.texi: Various spelling and markup fixes.
13004         (Installing GCC): Component specific installation instructions are
13005         gone.
13006         Fix reference.
13007         Warn about removing old install dir in the presence of shared libs.
13008         (Configuration): Invoke with options target to match configure
13009         --help.
13010         Consistently refer to gas, gld pathnames.
13011         Invert --enable-multilib documentation.
13012         Remove references to old compiler versions.
13013
13014 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13015
13016         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
13017
13018 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13019
13020         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
13021         section.
13022         (Specific, mips*-sgi-irix5): Note IDO download.
13023         Reworded MIPS C hints.
13024         Use GNU as instead of GAS.
13025         Markup fixes.
13026         Removed SGI Freeware reference, IRIX 6 only.
13027         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
13028         Note N64 library requirement/workaround.
13029         Update O32 hints.
13030         Complete list of structure passing bug victims.
13031
13032 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13033
13034         * doc/install.texi: Remove CVS Id.
13035
13036 2001-07-02  Andreas Jaeger  <aj@suse.de>
13037
13038         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
13039         (find_inherently_necessary): Remove unused variable.
13040
13041 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
13042
13043         * c-common.h (TDI_inlined): New ast dump phase.
13044         (dump_flag_name): New function.
13045         * c-dump.c (dump_files): Add inlined phase.
13046         (dump_flag_name): Define.
13047         * doc/invoke.texi (-fdump-ast-inlined): Document.
13048
13049 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13050
13051         * stor-layout.c (layout_decl): Revert change to handling of alignment
13052         in packed types.
13053
13054 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13055
13056         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
13057         for FIELD_DECL.
13058
13059 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
13060
13061         * doc/tm.texi (FUNCTION_ARG): Document that the last call
13062         is special.
13063
13064 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
13065
13066         * tlink.c (recompile_files): Remove COMPILER_PATH and
13067         LIBRARY_PATH from the environment.
13068
13069 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
13070
13071         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
13072         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
13073         enumerators.
13074         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
13075
13076         * c-parse.in (OBJC_STRING): Kill.
13077         (objc_string): Decompose to [objc_string] '@' STRING.
13078         (reswords): Take the leading '@' off all the Objective C keywords.
13079         (objc_rid_sans_at): Kill.
13080         (init_reswords): Don't initialize it.
13081         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
13082         (_yylex): Kill reconsider label.  Look ahead one token after
13083         an '@'; if we get an identifier, check whether it's an
13084         Objective C @-keyword.  If so, return the keyword.  Otherwise,
13085         put back the token and return the '@' as a terminal.
13086
13087         * cpplib.c (lex_macro_node): Remove unnecessary check for
13088         leading '@' on identifier.  Clarify control flow and commentary.
13089
13090 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13091
13092         * cse.c (new_label_ref): Variable deleted.
13093         (insert): Remove set of new_label_ref.
13094         (check_for_label_ref): New function.
13095         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
13096
13097 See ChangeLog.5 for earlier changes.