OSDN Git Service

forgot cl entries
[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/rs6000.c (rs6000_expand_builtin): New.
81         (altivec_expand_builtin): New.
82         (altivec_init_builtins): New.
83         (TARGET_EXPAND_BUILTIN): New.
84         (TARGET_INIT_BUILTINS): New.
85         (rs6000_init_builtins): New.
86         (struct builtin_description): New.
87         (bdesc_2arg): New.
88         (rs6000_reg_names): Add altivec registers.
89         (alt_reg_names): Same.
90         (secondary_reload_class): Altivec regs can hold altivec regs and
91         memory.
92         (rs6000_emit_move): Force constants into memory for AltiVec moves.
93         (print_operand): Add 'y' case for printing altivec memory
94         operands.
95         (rs6000_legitimize_address): Legitimize vector addresses into
96         [REG+REG] or [REG].
97         (altivec_expand_binop_builtin): New.
98         New string rs6000_current_abi.
99         (rs6000_override_options): Call rs6000_parse_abi_options.
100         (rs6000_parse_abi_options): New.
101         (function_arg_boundary): Vector arguments must be 16
102         byte aligned.
103         (function_arg_advance): Handle vector arguments.
104         (function_arg_partial_nregs): Same.
105         (init_cumulative_args): Same.
106         (function_arg): Same.
107
108         * config/rs6000/rs6000.md (altivec_lvx): New.
109         (type): Add altivec attribute.
110         (movv4si): New.
111         (*movv4si_internal): New.
112         (movv16qi): New.
113         (*movv16qi_internal): New.
114         (movv8hi): New.
115         (*movv8hi_internal1): New.
116         (movv4sf): New.
117         (*movv4sf_internal1): New.
118         (altivec_stvx): New.
119         (vaddubm): New.
120         (vadduhm): New.
121         (vadduwm): New.
122         (vaddfp): New.
123         (vaddcuw): New.
124         (vaddubs): New.
125         (vaddsbs): New.
126         (vadduhs): New.
127         (vaddshs): New.
128         (vadduws): New.
129         (vaddsws): New.
130         (vand): New.
131         (vandc): New.
132         (vavgub): New.
133         (vavgsb): New.
134         (vavguh): New.
135         (vavgsh): New.
136         (vavguw): New.
137         (vavgsw): New.
138         (vcmpbfp): New.
139         (vcmpequb): New.
140         (vcmpequh): New.
141         (vcmpequw): New.
142         (vcmpeqfp): New.
143         (vcmpgefp): New.
144         (vcmpgtub): New.
145         (vcmpgtsb): New.
146         (vcmpgtuh): New.
147         (vcmpgtsh): New.
148         (vcmpgtuw): New.
149         (vcmpgtsw): New.
150         (vcmpgtfp): New.
151         (vcmpgefp): New.
152         (vcmpgtub): New.
153         (vcmpgtsb): New.
154         (vcmpgtuh): New.
155         (vcmpgtsh): New.
156         (vcmpgtuw): New.
157         (vcmpgtsw): New.
158         (vcmpgtfp): New.
159         (vmaxub): New.
160         (vmaxsb): New.
161         (vmaxuh): New.
162         (vmaxsh): New.
163         (vmaxuw): New.
164         (vmaxsw): New.
165         (vmaxfp): New.
166         (vmrghb): New.
167         (vmrghh): New.
168         (vmrghw): New.
169         (vmrglb): New.
170         (vmrglh): New.
171         (vmrglw): New.
172         (vminub): New.
173         (vminsb): New.
174         (vminuh): New.
175         (vminsh): New.
176         (vminuw): New.
177         (vminsw): New.
178         (vminfp): New.
179         (vmuleub): New.
180         (vmulesb): New.
181         (vmuleuh): New.
182         (vmulesh): New.
183         (vmuloub): New.
184         (vmulosb): New.
185         (vmulouh): New.
186         (vmulosh): New.
187         (vnor): New.
188         (vor): New.
189         (vpkuhum): New.
190         (vpkuwum): New.
191         (vpkpx): New.
192         (vpkuhss): New.
193         (vpkshss): New.
194         (vpkuwss): New.
195         (vpkswss): New.
196         (vpkuhus): New.
197         (vpkshus): New.
198         (vpkuwus): New.
199         (vpkswus): New.
200         (vrlb): New.
201         (vrlh): New.
202         (vrlw): New.
203         (vslb): New.
204         (vslh): New.
205         (vslw): New.
206         (vsl): New.
207         (vslo): New.
208         (vsrb): New.
209         (vrsh): New.
210         (vrsw): New.
211         (vsrab): New.
212         (vsrah): New.
213         (vsraw): New.
214         (vsr): New.
215         (vsro): New.
216         (vsububm): New.
217         (vsubuhm): New.
218         (vsubuwm): New.
219         (vsubfp): New.
220         (vsubcuw): New.
221         (vsububs): New.
222         (vsubsbs): New.
223         (vsubuhs): New.
224         (vsubshs): New.
225         (vsubuws): New.
226         (vsubsws): New.
227         (vsum4ubs): New.
228         (vsum4sbs): New.
229         (vsum4shs): New.
230         (vsum2sws): New.
231         (vsumsws): New.
232         (vxor): New.
233
234 2001-11-07  Daniel Berlin  <dan@cgsoftware.com>
235
236         * Makefile.in (df.o): Add fibheap.h to dependencies.
237        
238         * df.h: Add prototypes for transfer functions, iterative_dataflow
239         functions.
240         (enum df_flow_dir): New enum.
241         (enum df_confluence_op): New enum.
242         (struct df): Add inverse_rts_map.
243
244         * df.c: Add sbitmap.h to the list of includes.
245         (df_rd_global_compute): Removed.
246         (df_ru_global_compute): Removed.
247         (df_lr_global_compute): Removed.
248         (df_rd_transfer_function): New function.
249         (df_ru_transfer_function): New function.
250         (df_lr_transfer_function): New function.
251         (df_analyse_1): allocate/compute/free df->inverse_rts_map.
252         Use iterative_dataflow_bitmap instead of df_*_global_compute.
253         (iterative_dataflow_sbitmap): New function.
254         (iterative_dataflow_bitmap): New function.
255
256 2001-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
257
258         * doc/gcc.texi: Move terminology and spelling conventions to
259         htdocs/codingconventions.html.
260
261 2001-11-07  Graham Stott  <grahams@redhat.com>
262
263         * cse.c (cse_insn): Emit BARRIER after unconditional jump.
264
265 Wed Nov  7 13:33:34 CET 2001  Jan Hubicka  <jh@suse.cz>
266
267         * expmed.c (expand_mult): Force operand to register before computing
268         cost.
269         * i386.c (x86_decompose_lea): New global vairable.
270         * i386.h (x86_decompose_lea): Declare.
271         (TARGET_DECOMPOSE_LEA): New macro.
272         (RTX_COST): Handle leas properly.
273
274 2001-11-06  Richard Henderson  <rth@redhat.com>
275
276         * config/alpha/elf.h (DO_SELECT_SECTION): TREE_READONLY is not
277         defined for a CONSTRUCTOR; don't check it.
278
279 2001-11-06  Danny Smith  <dannysmith@users.sourceforge.net>
280
281         * gcov.c (output_data): Use IS_ABSOLUTE_PATHNAME to
282         test for absolute pathnames.
283
284 2001-11-06  Olivier Hainque <hainque@act-europe.fr>
285
286         * unwind-dw2.c (execute_cfa_program): Evaluate call frame
287         instructions up to the target pc inclusive.
288
289 2001-11-06  Steve Christiansen  <smc@us.ibm.com>
290
291         * loop.c (loop_regs_scan):  Don't invalidate PIC register.
292
293 2001-11-06  Eric Christopher  <echristo@redhat.com>
294
295         * config/mips/mips.md(movdf_internal2): Add constraints for float
296         to general register move.
297         * config/mips/elf64.h: Add default ABI.
298
299 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
300
301         * alias.c:: Include langhooks.h.
302         * emit-rtl.c: Similarly.
303         * toplev.c: Similarly.
304         * tree-inline.c: Similarly.
305         * langhooks-def.h: New, the old langhooks.h.  Give the default
306         hooks a common prefix.
307         * langhooks.h: Contents extracted from toplev.h.
308         * toplev.h: Move langhook stuff to langhooks.h.
309         * langhooks.c: Give default hooks a common prefix.
310
311         * c-lang.c: Include langhooks-def.h.
312         * objc/objc-act.c: Similarly.
313         * Makefile.in: Update.
314         * objc/Make-lang.in: Update.
315
316 2001-11-06  Joseph S. Myers  <jsm28@cam.ac.uk>
317
318         * doc/install.texi: Document that configure options not listed in
319         this file are unsupported.  Document --with-system-zlib.
320
321 Tue Nov  6 09:21:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
322
323         * rtl.h (mem_for_const_double): New declaration.
324         * varasm.c (mem_for_const_double): New function.
325         * config/convex/convex.md (movdf): Use it.
326         * config/m68k/hp320.h (LEGITIMATE_PIC_OPERAND_P): Likewise.
327         * config/m68k/linux.h, config/m68k/m68k.h: Likewise.
328         * config/m68k/m68kv4.h: Likewise.
329
330         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Adjust for addition
331         of new GP reg classes.
332
333         * expr.c (store_field): When making temp object for unaligned
334         component, set it to alias set 0.
335
336 2001-11-06  Joseph S. Myers  <jsm28@cam.ac.uk>
337
338         * c-common.c (c_expand_expr_stmt): Apply default conversions to
339         non-lvalue arrays if C99.
340         * c-typeck.c (default_conversion): Split out code handling
341         array-to-pointer and function-to-pointer conversions into a
342         separate default_function_array_conversion function.
343         (default_function_array_conversion): New function.  Keep track of
344         whether any NON_LVALUE_EXPRs were stripped.  Return non-lvalue
345         arrays unchanged outside C99 mode instead of giving an error for
346         them.
347         (build_component_ref): Use pedantic_non_lvalue when handling
348         COMPOUND_EXPR.  Don't handle COND_EXPR specially.
349         (convert_arguments): Use default_function_array_conversion.
350         (build_unary_op): For ADDR_EXPR, take a flag indicating whether
351         non-lvalues are OK.
352         (unary_complex_lvalue): Likewise.
353         (internal_build_compound_expr): Use
354         default_function_array_conversion.  Apply default conversions to
355         function in compound expression.
356         (build_c_cast, build_modify_expr, digest_init, build_asm_stmt):
357         Use default_function_array_conversion.
358         * doc/extend.texi: Update documentation of subscripting non-lvalue
359         arrays.
360         Fixes PR c/461.
361
362 >>>>>>> 1.11778
363 2001-11-05  Zack Weinberg  <zack@codesourcery.com>
364
365         * aclocal.m4: (AM_WITH_NLS): Don't look at ALL_LINGUAS.
366         (AM_GNU_GETTEXT): Set CATALOGS to a list of .gmo files
367         corresponding to the complete set of .po and .gmo files in
368         the source directory's po subdir, modified by LINGUAS.  Don't
369         look at ALL_LINGUAS.
370         * configure.in: Don't set ALL_LINGUAS.
371         * configure: Regenerate.
372
373         * Makefile.in (.po.gmo): Don't move into source directory.
374         (.po.pox): Clarify comments.
375         (install-po): Look for .gmo files in both srcdir and objdir;
376         don't fail if a file is totally missing.
377         (distclean): rmdir ada subdirectory too.
378
379 2001-11-05  Geoffrey Keating  <geoffk@redhat.com>
380
381         * config/rs6000/rs6000.c (rs6000_select_section): Handle
382         CONSTRUCTORs _correctly_.
383
384 2001-11-05  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
385
386         * c-decl.c (delete_block): Remove.
387         * c-tree.h (delete_block): Remove.
388
389 2001-11-05  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
390
391         * cppexp.c (lex, parse_defined): Update warning about defined.
392
393 2001-11-05  Geoffrey Keating  <geoffk@redhat.com>
394
395         * config/rs6000/rs6000.c (rs6000_select_section): Handle
396         CONSTRUCTORs too.
397
398 2001-11-05  Nick Clifton  <nickc@cambridge.redhat.com>
399
400         * config/arm/arm.c (arm_return_in_memory): Cope with
401         int_size_in_bytes returning -1.
402
403         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Handle
404         DECL being NULL.
405
406 Mon Nov  5 16:15:25 CET 2001  Jan Hubicka  <jh@suse.cz>
407
408         * Makefile.in (bb-reoder.o): Add depdendency on cfglayout.h;
409         remove unneded depdendencies;
410         (cfglayout.o): New.
411         * cfglayout.c, cfglayout.h: New files; break out from ...
412         * bb-reorder.c: ... here; Remove unneeded includes;
413
414 2001-11-04  Alan Modra  <amodra@bigpond.net.au>
415
416         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Mark r2 as used.
417
418 2001-11-04  David Edelsohn  <edelsohn@gnu.org>
419
420         * config/rs6000/rs6000.c (rs6000_emit_move): Handle 64-bit
421         mode as well.  Do not explicitly create intermediate regs.
422
423 2001-11-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
424
425         * arm/aof.h (aof_text_section, aof_data_section): Don't declare.
426         (common_section): Delete unused variable.
427         (ASM_OUTPUT_ASCII): Fix signed/unsigned warnings.
428         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
429         * arm-protos.h (arm_poke_function_name, aof_add_import,
430         aof_delete_import): Const-ify.
431         * arm.c (legitimize_pic_address): Wrap variables in the macro
432         controlling their usage.
433         (arm_finalize_pic): Mark variable with ATTRIBUTE_UNUSED.
434         (arm_poke_function_name, pic_chain, import, aof_add_import,
435         aof_delete_import): Const-ify.
436         * i386.c (ix86_osf_output_function_prologue): Const-ify.
437         * i386/sysv4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE,
438         ASM_OUTPUT_LONG_DOUBLE): Fix format specifier warnings.
439         * i860/fx2800.h (DBX_OUTPUT_STANDARD_TYPES): Const-ify.
440         * i860/sysv3.h: Add missing comment closure.
441         * m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Add missing semi-colon.
442         * m88k/dgux.h (SELECT_RTX_SECTION): Add missing argument in call
443         to symbolic_operand.
444
445         * config.gcc (m680[02]0-*-*): Rename case from m68000-*-*.
446         (i960-*-*): Set tmake_file.
447         (sparc86x-*-elf*): Fix typo in header name.
448
449         * sched-rgn.c (schedule_insns): Delete unused variable.
450
451 2001-11-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
452
453         PR c/2820
454         * c-typeck.c (lookup_field): Rework to return a chain down to
455         the looked-up field.
456         (build_component_ref): Use the new lookup_field to handle
457         nested anonymous entities correctly.
458
459 Sun Nov  4 11:53:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
460
461         * config/sparc/sparc.c (sparc_emit_set_const32, GEN_HIGHINT64):
462         Change parameters to gen_rtx_CONST_DOUBLE.
463         (GEN_INT64, sparc_emit_set_const64): Likewise.
464         * config/sparc/sparc.md (movdf split): Likewise.
465
466 2001-11-03  Geoffrey Keating  <geoffk@redhat.com>
467
468         * unroll.c (calculate_giv_inc): Use find_last_value rather
469         than just hoping the last instruction is the right SET.
470         [Fixes 990604-1.c on stormy16.]
471
472         * config/stormy16/stormy16.h (LIB_SPEC): Don't supply any libgloss
473         library at all if -T is used.
474
475         * config/stormy16/stormy16.c (stormy16_print_operand): Avoid
476         some uses of uninitialized variables in error cases.
477
478         * config/stormy16/stormy16.c (stormy16_output_shift): Don't
479         look at 'temp' if we won't be using it.
480
481         * config/stormy16/stormy16.h (CONST_COSTS): Define.
482         (RTX_COSTS): Define.
483         (ADDRESS_COST): Define.
484         (MEMORY_MOVE_COST): Allow for memory_move_secondary_cost.
485
486         * config/stormy16/stormy16.h (ASM_SPEC): Pass -g to the assembler.
487
488         * config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Call
489         stormy16_asm_output_mi_thunk.
490         * config/stormy16/stormy16.c (stormy16_asm_output_mi_thunk): New
491         function.
492         * config/stormy16/stormy16-protos.h
493         (stormy16_asm_output_mi_thunk): New prototype.
494
495 2001-11-04  Joseph S. Myers  <jsm28@cam.ac.uk>
496
497         * ChangeLog.2, ChangeLog.4, ChangeLog.5, ChangeLog,
498         FSFChangeLog.10, FSFChangeLog.11, alias.c, attribs.c,
499         caller-save.c, calls.c, cfg.c, cfganal.c, cfgcleanup.c, cfgrtl.c,
500         cppmacro.c, fold-const.c, ifcvt.c, local-alloc.c, profile.c,
501         sched-int.h, toplev.c, config/alpha/alpha.c,
502         config/alpha/alpha.md, config/c4x/c4x.h, config/cris/cris.h,
503         config/cris/cris.md, config/i370/i370.md, config/i386/i386.c,
504         config/i386/i386.h, config/i386/i386.md, config/i386/xm-djgpp.h,
505         config/ia64/ia64.c, config/m68hc11/m68hc11.c, config/m68k/m68k.md,
506         config/mcore/mcore.h, config/mmix/mmix.c, config/ns32k/ns32k.h,
507         config/ns32k/ns32k.md, config/rs6000/rs6000.c,
508         config/rs6000/sysv4.h, config/sh/sh.md: Fix spelling errors.
509
510 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
511
512         * Makefile.in (dbxout.o): Depend on function.h.
513         * collect2.c (is_in_list): Hide unused function.
514         * dbxout.c: Include function.h.
515         (source_label_number, dbxout_source_line, dbxout_source_file,
516         dbxout_function_end, dbxout_begin_function): Wrap/move inside
517         macros controlling usage.
518         * gcc.c (TARGET_EXECUTABLE_SUFFIX): Undef before defining.
519         * output.h (exports_section): Prototype.
520
521         * convex.c (convex_output_function_prologue): Fix format specifier
522         warning.
523         (asm_declare_function_name): Fix signed/unsigned warning.
524         (print_operand): Fix format specifier warning.
525         * convex.h (S_REGNO_P, A_REGNO_P): Fix signed/unsigned warning.
526         * dsp16xx-protos.h (uns_comparison_operator,
527         num_1600_core_shifts): Prototype.
528         * dsp16xx.c: Include tm_p.h, not dsp16xx-protos.h.
529         (frame_size, frame_pointer_offset): Delete.
530         (dsp16xx_output_function_prologue, dsp16xx_output_function_epilogue):
531         Make static.  Fix format specifier warnings.
532         * dsp16xx.h (IS_ACCUM_REG): Fix unsigned>=0 warning.
533         (EXTRA_SECTION_FUNCTIONS): Prototype const_section.
534         * dsp16xx.md: Add default case in switches.
535         * fr30.h (IN_RANGE): Delete.
536         * ia64.h (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
537         * mcore-protos.h (mcore_output_cmov): Const-ify.
538         * mcore.c (mcore_output_cmov): Likewise.
539         * mcore.h (switch_to_section): Make static and prototype.
540         * mn10200.h (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Fix
541         unsigned>=0 warnings.
542         * mn10300.h (REGNO_IN_RANGE_P): Likewise.
543         * rs6000-protos.h (read_only_data_section,
544         read_only_private_data_section): Prototype.
545         * rs6000.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
546         * sh.c (sh_adjust_cost): Mark parameter with ATTRIBUTE_UNUSED.
547         * sh.h (GENERAL_REGISTER_P): Fix unsigned>=0 warning.
548
549 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
550
551         * dwarf2asm.c (dw2_asm_output_pcrel): Mark parameters with
552         ATTRIBUTE_UNUSED.
553         * final.c (final_scan_insn): Add brackets around body of if-stmt.
554         * gcc.c (convert_filename): Add static prototype.  Const-ify.
555         Wrap variable in macros controlling its use.
556         * output.h (sdata_section): Add prototype.
557
558         * 1750a.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
559         (ASM_OUTPUT_ASCII): Avoid signed/unsigned warning.
560         * c4x.h (INIT_SECTION_FUNCTION): Add prototype.
561         (ASM_FILE_START): Const-ify.
562         (ASM_OUTPUT_BYTE_FLOAT, ASM_OUTPUT_SHORT_FLOAT): Fix format
563         specifier warning.
564         * c4x.md: Don't use the 'U' integer suffix.
565         * clipper.md (clipper_movstr): Delete declaration.
566         * d30v-protos.h (d30v_move_2words): Const-ify.
567         (debug_stack_info): Add prototype.
568         * d30v.c: Include "integrate.h".
569         (d30v_function_arg_boundary, d30v_function_arg,
570         d30v_function_arg_partial_nregs, d30v_function_arg_advance): Avoid
571         signed/unsigned warnings.
572         (d30v_print_operand_memory_reference, d30v_move_2words):
573         Const-ify.
574         * d30v.h (REG_CLASS_FROM_LETTER): Use unsigned array subscript.
575         * fr30.c (fr30_pass_by_reference, fr30_pass_by_value): Prototype.
576         * fr30.md: Const-ify.
577         * h8300.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
578         * i370.c (i370_label_scan, mvs_get_label): Make definition static.
579         (mvs_get_label_page): Hide unused static function.
580         * i860.c (current_function_original_name): Const-ify.
581         * i860/sysv3.h (current_function_original_name): Likewise.
582         * i860/sysv4.h (current_function_original_name): Likewise.
583         * i960.md: Add default case in switches.  Remove unused variable.
584         * i960/vx960-coff.h (MULTILIB_DEFAULTS): Undef before defining.
585         * m32r.md: Const-ify.
586         * m68hc11-protos.h (m68hc11_asm_file_start): Const-ify.
587         * m68hc11.c: Include "reload.h".
588         (static_chain_reg, print_options, m68hc11_asm_file_start):
589         Const-ify.
590         * m68hc11.md: Delete unused variable.  Const-ify.  Add parens
591         around & in comparison.
592         * mcore.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
593         * mn10200.c (shift_mode): Remove trailing comma.
594         * mn10300-protos.h (output_tst): Const-ify.
595         * mn10300.c (output_tst): Likewise.
596         * pa/long_double.h (ASM_OUTPUT_LONG_DOUBLE): Fix format specifier
597         warnings.
598         * pa-protos.h (output_ascii): Use regular char *, not unsigned.
599         * pa.c (output_ascii): Likewise.
600         * pa/som.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
601         * pdp11.md (expand_unop): Delete declarations.
602         * pj-protos.h (pj_output_addsi3): Const-ify.
603         * pj.c (pj_output_push_int, pj_output_load, pj_output_inc,
604         pj_output_cnv_op, mode_to_char, pj_output_varidx, pj_print_cond,
605         unique_src_operand): Add prototypes.
606         (pj_output_store_into_lval): Make definition static.
607         (pj_function_incoming_arg): Don't use unary plus.
608         (pj_output_addsi3): Const-ify.
609         * romp.md (get_symref): Delete declarations.
610         * v850-c.c (mark_current_function_as_interrupt): Don't return
611         value from void function.
612         * v850.c: Include "integrate.h".
613         * v850.h (ASM_OUTPUT_LABELREF): Const-ify.
614         * vax-protos.h (const_section): Add prototype.
615
616 2001-11-03  Aldy Hernandez  <aldyh@redhat.com>
617
618         * machmode.def: Add documentation for the seventh argument in
619         vector modes.
620
621 2001-11-04  Hans-Peter Nilsson  <hp@bitrange.com>
622
623         * doc/invoke.texi (MMIX Options) <-mno-knuthdiv>: Say remainder
624         consistently.
625         <-mno-toplevel-symbols>: Change @code{:} to @samp{:}.
626         <-melf>: Don't have markup for ELF acronym.
627
628 2001-11-03  Hans-Peter Nilsson  <hp@bitrange.com>
629
630         * config.gcc (mmix-*-*): New target.
631         * doc/invoke.texi: Document MMIX options.
632         * doc/contrib.texi: Add note about MMIX port to my entry.
633         * config/mmix/t-mmix: New file.
634         * config/mmix/mmix.h: New file.
635         * config/mmix/mmix-protos.h: New file.
636         * config/mmix/mmix.c: New file.
637         * config/mmix/mmix.md: New file.
638         * config/mmix/crti.asm: New file.
639         * config/mmix/crtn.asm: New file.
640
641 2001-11-03  Kazu Hirata  <kazu@hxi.com>
642
643         * config/sparc/linux-aout.h: Fix comment formatting.
644         * config/sparc/linux.h: Likewise.
645         * config/sparc/linux64.h: Likewise.
646         * config/sparc/lynx.h: Likewise.
647         * config/sparc/pbd.h: Likewise.
648         * config/sparc/sol2-sld-64.h: Likewise.
649         * config/sparc/sol2.h: Likewise.
650         * config/sparc/sparc.c: Likewise.
651         * config/sparc/sparc.h: Likewise.
652         * config/sparc/sparc.md: Likewise.
653         * config/sparc/sunos4.h: Likewise.
654         * config/sparc/vxsim.h: Likewise.
655         * config/sparc/vxsparc.h: Likewise.
656         * config/sparc/vxsparc64.h: Likewise.
657
658 Sat Nov  3 10:37:56 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
659
660         * cselib.c (cselib_subst_to_values, case CONST_DOUBLE): Remove
661         reference to CONST_DOUBLE_MEM in comment.
662         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Remove one operand.
663         (gen_rtx, case CONST_DOUBLE): Call it with one less operand.
664         (init_emit_once): Don't clear CONST_DOUBLE_MEM.
665         * function.c (pop_function_context_from): Don't call
666         restore_varasm_status.
667         * function.h (restore_varasm_status): Delete declaration.
668         * gengenrtl.c (CONST_DOUBLE_FORMAT): Delete CONST_DOUBLE_MEM slot.
669         * rtl.c: Likewise.
670         * rtl.def (CONST_DOUBLE): Update comment.
671         * rtl.h (CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW): Update operand number.
672         (CONST_DOUBLE_CHAIN): Likewise.
673         (CONST_DOUBLE_MEM): Delete.
674         (gen_rtx_CONST_DOUBLE): Update parameters.
675         * varasm.c (struct varasm_status): x_pool_offset now HOST_WIDE_INT.
676         Remove reference to CONST_DOUBLE_MEM.
677         (const_alias_set): New variable.
678         (immed_double_const): Change call to gen_rtx_CONST_DOUBLE.
679         (immed_real_const_1): Adjust tests for 0, 1, and 2.
680         Don't set CONST_DOUBLE_MEM.
681         (clear_const_double_mem): Don't do anything with const_tiny_rtx.
682         (output_constant_def): Don't look at TREE_CST_RTL if INTEGER_CST.
683         Put constant in const_alias_set.
684         (struct pool_constant): ALIGN now unsigned.
685         OFFSET now HOST_WIDE_INT.
686         Delete LABEL.
687         (restore_varasm_status): Deleted.
688         (mark_pool_constant): Mark desc->rtl.
689         (force_const_mem): Rework to store rtl in hash table,
690         not CONST_DOUBLE_MEM.
691         Put constant in const_alias_set.
692         (find_pool_constant): Check desc->rtl.
693         (mark_constants, mark_constant): Don't special-case CONST_DOUBLE.
694         (init_varasm_once): Initialize const_alias_set.
695
696         * expr.c (expand_expr, case ADDDR_EXPR): If at top level, don't call
697         force_const_mem.
698
699         * reload.c (combine_reloads): Don't combine an output reload if there
700         are other reloads around for part of the output.
701
702         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGINGP_P if T is a
703         constant expression.
704         (set_mem_decl): New function.
705         * expr.h (set_mem_decl): New declaration.
706         * final.c (get_decl_from_op): Don't use ORIGINAL_REGNO if not pseudo.
707         (output_asm_operand_names): Add tab.
708         * reload1.c (alter_reg): Set decl of MEM from REG_DECL.
709
710         * builtins.c (get_memory_rtx): Properly set MEM alias set and
711         attributes.
712
713 2001-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
714
715         * doc/extend.texi, doc/gcc.texi, doc/install.texi, doc/tm.texi:
716         Use "invalid" instead of "illegal".  Use @r in comments in
717         examples.
718
719 2001-11-02  Neil Booth  <neil@daikokuya.demon.co.uk>
720
721         * c-decl.c (pushdecl): Move block inside if conditional to remove
722         possibility of a segfault.  Lookup block-level extern
723         variables in enclosing scopes correctly.
724
725         * testsuite/gcc.c-torture/compile/20001018-1.x: Remove XFAIL.
726
727 2001-11-02  Aldy Hernandez  <aldyh@redhat.com>
728
729         * expmed.c (store_bit_field): Use simplify_gen_subreg to make
730         SUBREG so we avoid SUBREGing memory.
731
732         * expmed.c (store_bit_field): Same.
733
734 2001-11-02  DJ Delorie  <dj@redhat.com>
735
736         * config/rs6000/rs6000.c (rs6000_emit_move): Make sure that
737         using FP registers for DImode mem-mem moves is acceptable.
738
739 2001-11-02  Aldy Hernandez  <aldyh@redhat.com>
740
741         * builtins.c (apply_args_size): Handle vector arguments.
742         (apply_result_size): Same.
743
744         * machmode.def: Set WIDER mode field for all vector entries.
745
746 2001-11-02  Graham Stott  <grahams@redhat.com>
747
748         * recog.c (decode_asm_operands):  Check that the SRC is ASM_OPERANDS.
749
750 2001-11-01  Eric Christopher  <echristo@redhat.com>
751
752         * config.gcc: Revert part of earlier patch.
753         * config/mips/linux.h: Ditto.
754         * df.c: Include tm_p.h to avoid warnings.
755         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Add defaults.  Adjust
756         #if/#endif.
757         * config/mips/mips.c: Define mips_abi regardless.
758         (mips_output_function_prologues): Add long casts for .frame
759         output.
760         (override_options): Allow use of ABI_32.
761
762 2001-11-01  Kazu Hirata  <kazu@hxi.com>
763
764         * config/m68hc11/m68hc11.c: Fix comment formatting.
765         * config/m68hc11/m68hc11.h: Likewise.
766         * config/m68hc11/m68hc11.md: Likewise.
767
768 2001-11-01  Neil Booth  <neil@daikokuya.demon.co.uk>
769
770         * c-typeck.c (default_conversion): Retain the original expression
771         codes.
772         * gcc.dg/Wparentheses.c: New tests.
773
774 2001-11-01  David S. Miller  <davem@redhat.com>
775
776         * doc/install.texi (Specific, sparc-sun-solaris2*): Bring
777         64-bit Sparc description more in line with reality.
778
779 2001-11-01  Joseph S. Myers  <jsm28@cam.ac.uk>
780
781         * Makefile.in (GCOV_OBJS): Add version.o.
782         * gcov.c: Include "version.h" and <getopt.h>.
783         (gcov_version_string): Remove.
784         (print_usage): Take a parameter to determine whether this is a
785         call from --help or an error message.  Give fuller output that
786         follows the GNU Coding Standards for --help.
787         (print_version): New function.
788         (options): New.
789         (process_args): Use getopt_long.  Support long options.  Follow
790         GNU Coding Standards for --help and --version.
791         * doc/gcov.texi: Document long options.
792         Addresses part of PR other/704.
793
794 2001-11-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
795
796         * pa.c (output_move_double): Fix typo in double load.
797
798 2001-11-01  Kazu Hirata  <kazu@hxi.com>
799
800         * config/h8300/h8300.c (h8300_encode_label): Compute a string
801         before passing it to ggc_alloc_string.
802
803 2001-11-01  Kazu Hirata  <kazu@hxi.com>
804
805         * config/m68k/3b1.h: Fix comment formatting.
806         * config/m68k/3b1g.h: Likewise.
807         * config/m68k/a-ux.h: Likewise.
808         * config/m68k/amix.h: Likewise.
809         * config/m68k/apollo68.h: Likewise.
810         * config/m68k/atari.h: Likewise.
811         * config/m68k/aux-exit.c: Likewise.
812         * config/m68k/ccur-GAS.h: Likewise.
813         * config/m68k/crds.h: Likewise.
814         * config/m68k/dpx2.h: Likewise.
815         * config/m68k/dpx2g.h: Likewise.
816         * config/m68k/hp310.h: Likewise.
817         * config/m68k/hp320.h: Likewise.
818         * config/m68k/isi.h: Likewise.
819         * config/m68k/linux.h: Likewise.
820         * config/m68k/lynx.h: Likewise.
821         * config/m68k/m68k-psos.h: Likewise.
822         * config/m68k/m68k.c: Likewise.
823         * config/m68k/m68k.h: Likewise.
824         * config/m68k/m68k.md: Likewise.
825         * config/m68k/m68kelf.h: Likewise.
826         * config/m68k/m68kv4.h: Likewise.
827         * config/m68k/mot3300.h: Likewise.
828         * config/m68k/news.h: Likewise.
829         * config/m68k/next.h: Likewise.
830         * config/m68k/pbb.h: Likewise.
831         * config/m68k/plexus.h: Likewise.
832         * config/m68k/sgs.h: Likewise.
833         * config/m68k/sun3.h: Likewise.
834         * config/m68k/tower.h: Likewise.
835         * config/m68k/vxm68k.h: Likewise.
836
837 2001-10-31  DJ Delorie  <dj@redhat.com>
838
839         * config/mips/mips.h (mips_cache_flush_func): Prototype.
840         (TARGET_OPTIONS): Support -mflush-func= and -mno-flush-func.
841         (INITIALIZE_TRAMPOLINE): Use mips_cache_flush_func if nonzero.
842         * config/mips/mips.c (mips_cache_flush_func): New.
843         * doc/invoke.texi: Document the new options.
844
845 2001-10-31  Hans-Peter Nilsson  <hp@axis.com>
846
847         * config.gcc (cris-*-linux*, tm_file): Rearrange order.
848         * config/cris/linux.h (LIB_SPEC, STARTFILE_SPEC): Don't redefine.
849
850         * config/cris/cris.h (EH_RETURN_DATA_REGNO): Fix formatting.
851
852         * config/cris/cris.c: Include output.h after tree.h but before
853         target.h.
854
855 2001-10-31  Zack Weinberg  <zack@codesourcery.com>
856
857         * Makefile.in (INTL_TARGETS, POSUB): Delete all references.
858         (INTL_SUBDIRS): Just intl.
859         (.SUFFIXES): Add .gmo .po .pox.
860         (native): Also depend on build-@POSUB@.
861         (intl.all, intl.install): Depend on config.h and things it includes.
862         (po-generated): New target; depend on c-parse.c and tradcif.c.
863         (install-normal): Also depend on install-@POSUB@.
864         (XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): New variables.
865         (build-, install-, build-po, update-po, install-po,
866         .po.gmo, .po.pox, $(PACKAGE).pot, po/$(PACKAGE).pot): New rules.
867
868         * aclocal.m4: Prefix each entry in CATALOGS with "po/"
869         * configure.in: Don't munge XGETTEXT.  Don't generate
870         po/Makefile.in.
871         * configure: Regenerate.
872
873         * exgettext: Delete.
874         * config/m68k/m68k.h: Add doc strings for -msky and -mnosky.
875         * objc/Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
876
877 2001-10-31  Kazu Hirata  <kazu@hxi.com>
878
879         * config/h8300/h8300.md (two anonymous patterns): New.
880
881 2001-10-31  Aldy Hernandez  <aldyh@redhat.com>
882
883         * tree.h (tree_index): Add support for V16QI and V8HI.
884         (V8HI_type_node): New.
885         (V16QI_type_node): New.
886
887         * tree.c (build_common_tree_nodes_2): Same.
888
889         * c-common.c (type_for_mode): Same.
890
891 2001-10-31  Kazu Hirata  <kazu@hxi.com>
892
893         * config/i386/att.h: Fix comment formatting.
894         * config/i386/beos-elf.h: Likewise.
895         * config/i386/bsd.h: Likewise.
896         * config/i386/bsd386.h: Likewise.
897         * config/i386/crtdll.h: Likewise.
898         * config/i386/cygwin.asm: Likewise.
899         * config/i386/cygwin.h: Likewise.
900         * config/i386/djgpp.h: Likewise.
901         * config/i386/freebsd-aout.h: Likewise.
902         * config/i386/freebsd.h: Likewise.
903         * config/i386/gas.h: Likewise.
904         * config/i386/i386-interix.h: Likewise.
905         * config/i386/i386-protos.h: Likewise.
906         * config/i386/i386.c: Likewise.
907         * config/i386/i386.h: Likewise.
908         * config/i386/i386.md: Likewise.
909         * config/i386/i386elf.h: Likewise.
910         * config/i386/interix.c: Likewise.
911         * config/i386/isc.h: Likewise.
912         * config/i386/isccoff.h: Likewise.
913         * config/i386/iscdbx.h: Likewise.
914         * config/i386/linux.h: Likewise.
915         * config/i386/lynx.h: Likewise.
916         * config/i386/mingw32.h: Likewise.
917         * config/i386/netbsd-elf.h: Likewise.
918         * config/i386/next.h: Likewise.
919         * config/i386/osf1elf.h: Likewise.
920         * config/i386/osfrose.h: Likewise.
921         * config/i386/sco5.h: Likewise.
922         * config/i386/seq-gas.h: Likewise.
923         * config/i386/seq-sysv3.h: Likewise.
924         * config/i386/sequent.h: Likewise.
925         * config/i386/sol2.h: Likewise.
926         * config/i386/sun386.h: Likewise.
927         * config/i386/uwin.asm: Likewise.
928         * config/i386/uwin.h: Likewise.
929         * config/i386/vxi386.h: Likewise.
930         * config/i386/win32.h: Likewise.
931         * config/i386/winnt.c: Likewise.
932         * config/i386/xm-cygwin.h: Likewise.
933         * config/i386/xm-mingw32.h: Likewise.
934
935 2001-10-31  Kazu Hirata  <kazu@hxi.com>
936
937         * builtins.def: Fix comment typos.
938         * config/alpha.c: Likewise.
939         * config/arm/arm.c: Likewise.
940         * config/avr/avr.h: Likewise.
941         * config/d30v/d30v.c: Likewise.
942         * config/d30v/d30v.h: Likewise.
943         * config/d30v/d30v.md: Likewise.
944         * config/dsp16xx/dsp16xx.c: Likewise.
945         * config/fr30/fr30.c: Likewise.
946         * config/fr30/fr30.md: Likewise.
947         * config/i386/i386.c: Likewise.
948         * config/i860/i860.c: Likewise.
949         * config/i960/i960.c: Likewise.
950         * config/ia64/ia64.c: Likewise.
951         * config/mips/mips.c: Likewise.
952         * config/pa/pa.c: Likewise.
953         * config/rs6000/rs6000.c: Likewise.
954         * config/s390/s390.c: Likewise.
955         * config/sparc/sparc.c: Likewise.
956
957 2001-10-30  Kazu Hirata  <kazu@hxi.com>
958
959         * config/mips/elf.h: Fix comment formatting.
960         * config/mips/elf64.h: Likewise.
961         * config/mips/iris5.h: Likewise.
962         * config/mips/iris5gas.h: Likewise.
963         * config/mips/iris6.h: Likewise.
964         * config/mips/isa3264.h: Likewise.
965         * config/mips/linux.h: Likewise.
966         * config/mips/mips.c: Likewise.
967         * config/mips/mips.h: Likewise.
968         * config/mips/mips.md: Likewise.
969         * config/mips/mips16.S: Likewise.
970         * config/mips/netbsd.h: Likewise.
971         * config/mips/osfrose.h: Likewise.
972         * config/mips/r3900.h: Likewise.
973         * config/mips/sni-svr4.h: Likewise.
974         * config/mips/svr4-t.h: Likewise.
975         * config/mips/ultrix.h: Likewise.
976
977 2001-10-30  Daniel Berlin  <dan@cgsoftware.com>
978
979         * bitmap.c (bitmap_element_free): Don't forget to update head->indx
980         when we update head->current.
981
982 2001-10-30  Neil Booth  <neil@daikokuya.demon.co.uk>
983
984         * tree.c (id_string_size): Remove.
985         (dump_tree_statistics): Update.
986         * toplev.c (compile_file): If dumping stats, dump tree stats too.
987
988 Tue Oct 30 19:00:43 CET 2001  Jan Hubicka  <jh@suse.cz>
989
990         * sched-rgn.c (schedule_insns): Fix comment.
991
992 2001-10-30  Zack Weinberg  <zack@codesourcery.com>
993
994         * configure.in: Correct previous change: don't assume that
995         gas's version number _isn't_ the last thing on the line, or
996         isn't the only number on the line, either.
997         * configure: Regenerate.
998
999 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1000
1001         * cfgcleanup.c: Fix a comment typo.
1002
1003 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1004
1005         * alias.c: Fix comment formatting.
1006         * recog.c: Likewise.
1007         * config/cris/cris.c: Likewise.
1008         * config/cris/cris.h: Likewise.
1009         * config/i960/i960.c: Likewise.
1010         * config/i960/i960.h: Likewise.
1011
1012 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1013
1014         * config/arm/arm.c: Fix a comment typo.
1015         * config/arm/arm.h: Likewise.
1016         * config/ia64/ia64.c: Likewise.
1017
1018 2001-10-30  Jakub Jelinek  <jakub@redhat.com>
1019
1020         * emit-rtl.c (set_unique_reg_note): Don't create REG_EQUAL or
1021         REG_EQUIV notes for ASM_OPERANDS.  Return the new note (if any).
1022         * rtl.h (set_unique_reg_note): Change return value.
1023         * gcse.c (try_replace_reg): Use set_unique_reg_note.
1024         * cse.c (cse_insn): Likewise.
1025         * expr.c (emit_move_insn): Likewise.
1026         * explow.c (force_reg): Likewise.
1027         * local-alloc (update_equiv_regs): Likewise.
1028         * loop.c (move_moveables, load_mems): Likewise.
1029         * reload (find_reloads): Likewise.
1030
1031 2001-10-30  Paolo Bonzini  <bonzini@gnu.org>
1032
1033         Localization fixes.
1034         * c-decl.c (parmlist_tags_warning, start_struct,
1035         check_for_loop_decls): Separate messages for struct, union and
1036         enum cases to allow for languages in which they have different
1037         genders.
1038         * c-format.c (scanf_flag_specs): Separate short and long name of
1039         the assignment suppression feature.
1040         (check_format_types): Localize "pointer" and "different types"
1041         strings.
1042         * c-lex.c (lex_number): Localize "an unsigned long int" and
1043         related strings.
1044         (lex_string) [MULTIBYTE_CHARS]: Use initial lowercase letter on
1045         warning message.
1046         * c-typeck.c (build_unary_up): Separate messages for increment and
1047         decrement cases to allow for languages in which they use different
1048         articles.  Localize the strings "increment" and "decrement" in one
1049         case.
1050
1051 Tue Oct 30 11:08:11 CET 2001  Jan Hubicka  <jh@suse.cz>
1052
1053         * lcm.c (optimize_mode_switching):  Do not rebuild liveness information
1054         when no changes has been made.
1055
1056         * gcse.c (reg_set_bitmap): Turn into reg_set.
1057         (modify_mem_list_set, canon_modify_mem_list_set)
1058         (clear_modify_mem_tables, free_modify_mem_tables): New.
1059         (gcse_main); Use free_modify_mem_tables.
1060         (free_gcse_mem): Likewise; free the bitmaps.
1061         (alloc_gcse_main): Initialize the bitmaps.
1062         (canon_list_insert): Set canon_modify_mem_list_set.
1063         (record_last_mem_set_info): Likewise; set modify_mem_list_set.
1064         (compute_hash_table): Use clear_modify_mem_tables.
1065         (reset_opr_set_tables): Likewise.
1066         (oprs_not_set_p): reg_set_bitmap is regset.
1067         (mark_set, mark_clobber): Likewise.
1068
1069         * df.h (DF_EQUIV_NOTES): New constant.
1070         (df_insn_refs_record): Record uses inside or REG_EQUIV/EQUAL notes
1071         when asked for.
1072
1073         * sched-rgn.c (CHECK_DEAD_NOTES): New constant.
1074         (init_regions, schedule_insns): Conditionalize the checking
1075         code by CHECK_DEAD_NOTES; avoid multiple calls to update_life_info.
1076
1077 Tue Oct 30 11:02:31 CET 2001  Jan Hubicka  <jh@suse.cz>
1078
1079         * i386.md (movti_rex64 splitter): Fix condition.
1080
1081 2001-10-29  Zack Weinberg  <zack@codesourcery.com>
1082
1083         * configure.in: Do not assume that gas's version number is the
1084         last thing on the first line of as --version output.
1085         * configure: Regenerate.
1086
1087         * tradcpp.c: Include intl.h.  Rename WARNING, ERROR, FATAL to
1088         MT_WARNING, MT_ERROR, MT_FATAL.
1089         (main): Call gcc_init_libintl.
1090         (v_message): Call gettext on msgid and "warning: "
1091         * tradcif.y: Include intl.h.
1092         (yyerror): Make parameter definition consistent with
1093         prototype.  Call gettext on msgid argument.
1094
1095 2001-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1096
1097         * combine.c (num_sign_bit_copies): Avoid signed/unsigned
1098         warnings.
1099
1100         * sparc/sol2.h: Include <sys/mman.h> when L_trampoline is defined.
1101
1102 Mon Oct 29 19:22:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1103
1104         * reload1.c (eliminate_regs): Test for reg_renumber being allocated
1105         before referencing it.
1106
1107 2001-10-26  DJ Delorie  <dj@redhat.com>
1108
1109         * config/rs6000/sysv4.h (LINK_SPEC): Allow -msdata=none to
1110         override -G, and force -G0.
1111
1112 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1113
1114         * ChangeLog.2, ChangeLog.3, ChangeLog.4, FSFChangeLog.10,
1115         FSFChangeLog.11, c-common.c, c-common.def, c-common.h, c-decl.c,
1116         c-dump.c, c-typeck.c, except.c, sdbout.c, simplify-rtx.c,
1117         timevar.h, tree.h, varasm.c: Fix spelling errors and typos.
1118
1119         * loop.h (struct induction): Rename ext_dependant to
1120         ext_dependent.
1121         * loop.c: Change all uses.
1122         (check_ext_dependant_givs): Rename to check_ext_dependent_givs.
1123         All callers changed.
1124         * timevar.c (DEFTIMEVAR): Fix spelling of identifier__ parameter.
1125
1126 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1127
1128         * c-parse.in (expr_no_commas, primary), c-typeck.c
1129         (parser_build_binary_op): Use IS_EXPR_CODE_CLASS.
1130
1131 2001-10-29  David Edelsohn  <edelsohn@gnu.org>
1132
1133         Undo assemble_name change in earlier patch.
1134
1135 Mon Oct 29 21:11:40 2001  Nicola Pero  <n.pero@mi.flashnet.it>
1136
1137         * objc/objc-act.c (finish_message_expr): For the GNU runtime: when
1138         determining the type of the receiver, do not check that TREE_CODE
1139         of receiver is CALL_EXPR before calling receiver_is_class_object().
1140         (receiver_is_class_object): For the GNU runtime: recognize
1141         the case that the receiver is self in a class method context.
1142         Check that TREE_CODE of receiver is CALL_EXPR when checking that
1143         the receiver is a call to objc_get_class.
1144
1145 2001-10-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1146
1147         * pa.md (floatunssisf2): Set subreg 0 of operand 2 to zero.
1148
1149 Mon Oct 29 07:23:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1150
1151         * Makefile.in (OBJS): Put all files in alphabetical order.
1152
1153         * dwarf2out.c (add_const_value_attribute): Fix error in last
1154         change.
1155
1156 Mon Oct 29 12:43:06 CET 2001  Jan Hubicka  <jh@suse.cz>
1157
1158         * basic-block.h (purge_all_dead_edges): Add update_life_p argument.
1159         * cfgcleanup.c (merge_blocks): Update the life flag after merging;
1160         fix warning.
1161         * cfgrtl.c (purge_all_dead_edges): Allow updating of liveness.
1162         (life_analysis): call purge_all_dead_edges after deleting noops.
1163         (delete_noop_move): Do not purge CFG.
1164         * toplev.c (rest_of_compilation): Update purge_all_dead_edges call.
1165
1166 2001-10-28  David Edelsohn  <edelsohn@gnu.org>
1167
1168         * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.
1169         * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): Delete.
1170         (ASM_GLOBALIZE_LABEL): Use assemble_name.
1171         (ASM_OUTPUT_COMMON): Likewise.
1172         * config/rs6000/rs6000.c (print_operand): Use assemble_name.
1173         (rs6000_output_function_epilogue): Likewise.
1174         (output_mi_thunk): Fix typo.
1175         (rs6000_output_symbol_ref): Use assemble_name.
1176         (output_toc): Likewise.
1177         * config/rs6000/sysv4.h (RS6000_OUTPUT_BASENAME): Delete.
1178         * config/rs6000/xcoff.h (RS6000_OUTPUT_BASENAME): Delete;
1179         assemble_name calls STRIP_NAME_ENCODING.
1180         (ASM_OUTPUT_LABEL): Use assemble_name.
1181         (ASM_GLOBALIZE_LABEL): Likewise.
1182         (ASM_DECLARE_FUNCTION_NAME): Likewise.
1183         (ASM_OUTPUT_ALIGNED_COMMON): Indent pseudo-op.  Use assemble_name.
1184         (ASM_OUTPUT_LOCAL): Likewise.
1185
1186 Sun Oct 28 15:45:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1187
1188         * builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case.
1189         (expand_builtin_apply, expand_builtin_return): Likewise.
1190         (expand_builtin_va_arg, expand_builtin_va_copy): Likewise.
1191
1192 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
1193
1194         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
1195         ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11,
1196         c-common.c, c-common.h, c-parse.in, c-typeck.c, cfg.c, config.gcc,
1197         configure, configure.in, except.c, except.h, flow.c, function.c,
1198         gcc.c, gcse.c, genrecog.c, libgcc2.c, loop.c, loop.h, params.def,
1199         predict.def, predict.h, reg-stack.c, regmove.c, sched-deps.c,
1200         sched-int.h, sibcall.c, ssa.c, stringpool.c, toplev.c, tree.c,
1201         unroll.c: Fix spelling errors.
1202
1203         * doc/extend.texi, doc/invoke.texi: Fix spelling.
1204
1205         * doc/gcc.texi: Document use of "dependent" and American spelling.
1206
1207 Sun Oct 28 17:05:36 CET 2001  Jan Hubicka  <jh@suse.cz>
1208
1209         * expr.c (emit_group_load): Support CONCATs by storing them to memory
1210         and reloading.
1211
1212 Sun Oct 28 09:59:54 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1213
1214         * expr.c (store_constructor_field): Only call adjust_address on MEM.
1215
1216 Sun Oct 28 16:48:09 CET 2001  Jan Hubicka  <jh@suse.cz>
1217
1218         * genrecog.c (write_switch):  Output if before switch for
1219         DT_elt_zero_wide_safe.
1220
1221 2001-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1222
1223         * Makefile.in (toplev.o, halfpic.o): Depend on halfpic.h
1224         * i386/osfrose.h (SUBTARGET_SWITCHES): Add missing comma.
1225         (FUNCTION_PROFILER): Const-ify.
1226         * halfpic.c: Include "expr.h", "output.h" and "halfpic.h".
1227         (eliminate_constant_term, assemble_name, output_addr_const):
1228         Remove declarations.
1229         (ptr_half_pic_address_p, half_pic_hash): Prototype.
1230         (all_refs, half_pic_prefix, half_pic_hash, half_pic_declare,
1231         half_pic_external, half_pic_address_p, half_pic_ptr): Const-ify.
1232         * halfpic.h (ptr_half_pic_address_p, half_pic_finish): Prototype.
1233         (half_pic_declare, half_pic_external): Const-ify.
1234         * toplev.c: Include "halfpic.h".
1235
1236 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
1237
1238         * config/alpha/alpha.md, config/arm/arm.c, config/arm/arm.h,
1239         config/d30v/d30v.h, config/fr30/fr30.c, config/i370/x-oe,
1240         config/i386/i386.c, config/i386/i386-interix.h,
1241         config/i386/i386.md, config/i386/i386.h, config/i386/sco5.h,
1242         config/i860/i860.h, config/i860/i860.md, config/m68k/aux-exit.c,
1243         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.md,
1244         config/ns32k/ns32k.h, config/pa/pa.c, config/rs6000/rs6000.c,
1245         config/sparc/sparc.c, config/m68hc11/m68hc11.c,
1246         config/cris/cris.c, config/cris/cris.h, config/s390/s390.c,
1247         config/s390/s390.h, config/stormy16/stormy16.h, doc/tm.texi: Fix
1248         spelling errors.
1249
1250         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
1251         ChangeLog.5, ChangeLog, ChangeLog.lib, FSFChangeLog.10, ONEWS,
1252         c-common.c, caller-save.c, cfg.c, cfgcleanup.c, cfgrtl.c,
1253         collect2.c, df.h, diagnostic.h, final.c, gcse.c, gthr.h,
1254         haifa-sched.c, jump.c, local-alloc.c, profile.c, protoize.c,
1255         regmove.c, reload1.c, rtlanal.c, sched-vis.c, ssa.c, stmt.c,
1256         system.h, toplev.c: Fix spelling errors.
1257
1258 Sat Oct 27 17:32:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1259
1260         * gcse.c (insert_insn_end_bb): Don't assume PAT is a SET.
1261
1262         * dwarf2out.c (reg_number): Abort if pseudo.
1263         (reg_loc_descriptor): Return 0 if pseudo.
1264         (is_based_loc): Return 0 if pseudo.
1265         (mem_loc_descriptor): Return 0 for pseudo and handle 0 return from
1266         recursive calls.
1267         (concat_loc_descriptor): Return 0 if either part's descriptor is 0.
1268         (loc_descriptor): Return 0 if can't find location and handle 0
1269         return from recursive calls.
1270         (loc_descriptor_from_tree): Likewise.
1271         Fix handling of indirect.
1272         Also return 0 for PLACEHOLDER_EXPR.
1273         Clean up COMPONENT_REF cases.
1274         (add_AT_location_descriptor): Simplify, but handle 0 return from
1275         loc_descriptor.
1276         (add_const_value_attribute): Avoid shift count warning.
1277         (add_bound_info): Remove test for PLACEHOLDER_EXPR here.
1278         Set comp_unit_die as context if not in function.
1279
1280         * config/mips/mips-protos.h: Break up long lines.
1281         Remove needless #ifdef/#endif blocks.
1282         Don't declare functions declared in file made by genpreds or recog.h.
1283         * config/mips/mips.c (mips_output_function_prologue): TSIZE
1284         is now HOST_WIDE_INT; delete unneeded casts.
1285         * config/mips/mips.h: Don't use #elif.
1286
1287         * expr.c (stor_constructor_field): Always call adjust_address.
1288         Copy TARGET before changing its alias set.
1289         (store_field): Likewise, for TO_RTX.
1290         (get_inner_reference): Stop at PLACEHOLDER_EXPR if can't find
1291         replacement.
1292         (safe_from_p, case ADDR_EXPR): Properly check for conflict.
1293         (find_placeholder): Return 0 if can't find object.
1294         (expand_expr, case PLACEHOLDER_EXPR): Abort if find_placeholder
1295         returns 0.
1296
1297 Sat Oct 27 16:31:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
1298
1299         * ifcvt.c (if_convert): Call clear_aux_for_blocks.
1300
1301 Sat Oct 27 12:12:09 CEST 2001  Jan Hubicka  <jh@suse.cz>
1302
1303         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps,
1304         merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE.
1305         (merge_blocks): Properly udpate life after making edge nonfallthru.
1306         * cfgrtl.c (merge_blocks_nomove): Update global_live_at_end.
1307
1308 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1309
1310         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
1311
1312 2001-10-26  Neil Booth  <neil@daikokuya.demon.co.uk>
1313
1314         * c-typeck.c (convert_arguments): When comparing for enumeral
1315         type equality, use TYPE_MAIN_VARIANT.
1316         * gcc.dg/Wconversion.c: New tests.
1317
1318 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1319
1320         * s390/s390.c: Fix comment typos.
1321         * s390/s390.h: Likewise.
1322         * s390/s390.md: Likewise.
1323
1324 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
1325
1326         * tree-inline.c (WALK_SUBTREE_TAIL): New macro.
1327         (walk_tree): Use it for tail calls where appropriate.
1328
1329 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
1330
1331         * cse.c (check_for_label_ref): Don't require REG_LABEL notes for
1332         non-local label_refs.
1333
1334 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1335
1336         * config/h8300/h8300.md (4 anonymous patterns): New.
1337
1338 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1339
1340         * config/h8300/h8300.c (get_shift_alg): Clean up.  Return the
1341         algorithm through the shift_info structure.
1342         (emit_a_shift): Update the use of get_shift_alg.
1343
1344 2001-10-27  Daniel Berlin  <dan@cgsoftware.com>
1345
1346         * sched-rgn.c: Remove bitset typedef.
1347         Change bitset to sbitmap in prototypes / variable types.
1348         Remove bbset_size.
1349         Remove edgeset_bits.
1350         Remove edgeset_size.
1351         s/BITSET_ADD/SET_BIT/g
1352         s/BITSET_INVERT/sbitmap_ones/g
1353         s/BITSET_INTER/sbitmap_a_and_b/g
1354         s/BITSET_UNION/sbitmap_a_or_b/g
1355         s/BITSET_DIFFER/sbitmap_difference/g
1356         s/bitset_member/TEST_BIT/g
1357         (BITSET_*): Removed.
1358         (bitset_member): Removed.
1359         (extract_bitlst): Rewrite, now that we have sbitmaps, we can use
1360         EXECUTE_IF_SET_IN_SBITMAP.
1361         (split_edges): Rewrite, use sbitmap functions instead of bitset
1362         operations.
1363         (schedule_region): Allocate/free sbitmaps, rather than bitsets.
1364
1365 2001-10-26  Andreas Schwab  <schwab@suse.de>
1366
1367         * reload1.c (emit_input_reload_insns): Fix parens in last
1368         (undocumented) change that was supposed to change only whitespace.
1369
1370 Fri Oct 26 07:18:08 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1371
1372         * cfgcleanup.c (BB_SET_FLAG, BB_CLEAR_FLAG): Add cast to avoid warning.
1373
1374         * local-alloc.c (update_equiv_regs): Don't make REG_EQUAL note for
1375         ASM_OPERANDS.
1376
1377 2001-10-26  Andreas Jaeger  <aj@suse.de>
1378
1379         * flow.c (clear_log_links): Remove unused variable.
1380         * cfgcleanup.c (cleanup_cfg): Likewise.
1381
1382 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
1383
1384         * tree-inline.c (remap_decl): Don't copy size and size_unit here.
1385         (remap_save_expr): Map a remapped SAVE_EXPR to error_mark_node.
1386
1387 2001-10-26  Richard Henderson  <rth@redhat.com>
1388
1389         * config/alpha/alpha.h (enum reg_class): Add R24_REG, R25_REG;
1390         rename PV_REG to R27_REG.
1391         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
1392         (REG_CLASS_FROM_LETTER): Update.
1393         (PREFERRED_RELOAD_CLASS): Don't widen a reg class.
1394         * config/alpha/alpha.md (divsi3): Don't hard-code r24, r25, r27.
1395         (udivsi3, modsi3, umodsi3): Likewise.
1396         (divdi3, udivdi3, moddi3, umoddi3): Likewise.
1397
1398 2001-10-26  Richard Henderson  <rth@redhat.com>
1399
1400         * cfg.c (clear_aux_for_blocks): Split out of ...
1401         (free_aux_for_blocks): here.
1402         (clear_aux_for_edges): Split from ...
1403         (free_aux_for_edges): here.
1404         * basic-block.h: Declare them.
1405         * lcm.c (compute_antinout_edge): Use them.
1406         (compute_laterin, compute_available, compute_nearerout): Likewise.
1407         (optimize_mode_switching): Likewise.
1408
1409 2001-10-26  Richard Henderson  <rth@redhat.com>
1410
1411         * Makefile.in (unstage*): Remove as, ld, collect-ld before
1412         moving everything back to the main build directory.
1413
1414 2001-10-26  Christopher Faylor  <cgf@redhat.com>
1415
1416         * config/i386/cygwin.h: Search target specfic include directory, if
1417         appropriate.
1418
1419 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1420
1421         * dwarf2out.c (PTR_SIZE, default_eh_frame_section): Move outside
1422         of macro guards. Fix #endif comment.
1423
1424         * output.h (default_exception_section, default_eh_frame_section):
1425         Move prototypes outside of macro guard.
1426
1427         * crtstuff.c: Fix #endif comment.
1428
1429 Thu Oct 25 12:21:58 2001  Jeffrey A Law  (law@cygnus.com)
1430
1431         * doc/md.texi (movMM): Clarify semantics of storing into a
1432         non-paradoxical SUBREG.
1433
1434 2001-10-25  Zack Weinberg  <zack@codesourcery.com>
1435
1436         * langhooks.c (lang_hook_default_clear_binding_stack): New.
1437         (lang_hook_default_get_alias_set): Move next to other alias
1438         hooks.
1439         * langhooks.h: Prototype lang_hook_default_clear_binding_stack.
1440         (LANG_HOOKS_CLEAR_BINDING_STACK): New macro.
1441         (LANG_HOOKS_INITIALIZER): Add it.
1442         * toplev.h (struct lang_hooks): Add clear_binding_stack.
1443         * toplev.c (compile_file):  Call lang_hooks.clear_binding_stack
1444         instead of a loop calling poplevel.
1445
1446 2001-10-25  Nick Clifton  <nickc@cambridge.redhat.com>
1447
1448         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Replace
1449         occurrences of #elif with #if...#endif.
1450
1451 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1452
1453         * cris.h (EH_RETURN_DATA_REGNO): Fix unsigned>=0 warning.
1454
1455 Thu Oct 25 08:46:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1456
1457         * alias.c (can_address_p): No longer static.
1458         * emit-rtl.c (get_mem_attrs): New parameter, MODE; all callers changed.
1459         Return 0 if all parameters are default values.
1460         (set_mem_attributes): Set MEM_KEEP_ALIAS_SET_P.
1461         (adjust_address_1): Try harder to compute a size.
1462         * expr.c (expand_assignment, store_constructor): If can't address,
1463         set MEM_KEEP_ALIAS_SET_P.
1464         (store_constructor_field): Don't change set if MEM_KEEP_ALIAS_SET_P.
1465         (store_field): Likewise.
1466         (store_constructor): Simplify call to store_constructor_field.
1467         * expr.h (can_address_p): New declaration.
1468         * gensupport.c (gen_rtx_CONST_INT): New function.
1469         * rtl.h (MEM_KEEP_ALIAS_SET_P): New macro.
1470         (MEM_SIZE): Get size from mode, if not set and not BLKmode.
1471         (MEM_COPY_ATTRIBUTES): Copy MEM_KEEP_ALIAS_SET_P.
1472
1473         * stmt.c (expand_end_case): Remove orig_minval and use tree_low_cst.
1474
1475 2001-10-24  Christopher Faylor  <cgf@redhat.com>
1476
1477         * config/i386/cygwin.h: Use proper path for mingw crt files when
1478         -mno-cygwin.
1479
1480 Wed Oct 24 18:43:42 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1481
1482         * dwarf2out.c (file_info_cmp): Always return consistent results.
1483
1484 2001-10-24  Roger Sayle <roger@eyesopen.com>
1485
1486         * stmt.c (expand_end_case): Index jumptables from zero for
1487         suitably small values of minval.
1488
1489 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
1490
1491         * stor-layout.c (place_union_field): If any field was aligned with
1492         attribute aligned, set record type's TYPE_USER_ALIGN.
1493         (place_field): Likewise.
1494         (finalize_record_size): Don't clear TYPE_USER_ALIGN.
1495         (layout_type) [ARRAY_TYPE]: Copy element's TYPE_USER_ALIGN.
1496
1497 2001-10-24  Zack Weinberg  <zack@codesourcery.com>
1498
1499         * c-common.h (struct c_common_identifier): Remove rid_code field.
1500         (C_RID_CODE): Use ->node.rid_code instead of ->rid_code.
1501
1502         * c-typeck.c (constructor_designated): New local flag.
1503         (struct constructor_stack): Add "designated" field to match.
1504         (start_init): Clear it.
1505         (really_start_incremental_init, push_init_level): Push and
1506         clear it.
1507         (pop_init_level): Pop it.
1508         (set_designator): Set it.
1509
1510         (pop_init_level): Suppress "missing initializer" warnings if
1511         constructor_designated is true.
1512         (process_init_element): Suppress warning about union
1513         initialization under traditional C, if constructor_designated
1514         is true.
1515
1516 Wed Oct 24 15:35:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1517
1518         * integrate.c (copy_rtx_and_substitute, case CALL): Fix error in last
1519         change.
1520
1521 Wed Oct 24 13:26:12 2001  Jeffrey A Law  (law@cygnus.com)
1522
1523         * h8300.h (RETURN_ADDR_RTX): Remove old, incorrect definition.
1524
1525 2001-10-24  Dan Nicolaescu  <dann@ics.uci.edu>
1526
1527         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't do anything if
1528         the node was already a set to a constant.
1529
1530 Wed Oct 24 12:41:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1531
1532         * emit-rtl.c (set_mem_attributes): Fix typo in last change.
1533         * print-rtl.c (print_rtx, case MEM): Improve display of MEM_DECL.
1534
1535 2001-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1536
1537         * s390/linux.h (ASM_OUTPUT_BYTE): Fix format specifier warnings.
1538         (ASM_OUTPUT_ASCII): Const-ify.  Fix signed/unsigned warning.
1539         (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
1540         * s390.c (s390_final_chunkify): Don't use string concatenation.
1541         (s390_function_prologue, s390_function_epilogue): Const-ify.
1542         * s390.h (FUNCTION_PROFILER): Remove unused variable.
1543
1544 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
1545
1546         * c-decl.c (finish_decl): Don't add DECL_STMTs for nested function
1547         prototypes.
1548
1549 2001-10-23  Stan Shebs  <shebs@apple.com>
1550
1551         * config/rs6000/x-darwin: Use -no-cpp-precomp instead of
1552         -traditional-cpp in first-stage compilation.
1553
1554 Tue Oct 23 21:45:40 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1555
1556         * gensupport.c (target_flags): Add.
1557
1558 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
1559
1560         * builtins.c (expand_builtin_setjmp): Only call convert_memory_address
1561         if needed.
1562         (expand_builtin_longjmp, expand_builtin_alloca): Likewise.
1563         * except.c (expand_builtin_frob_return_addr): Likewise.
1564         (expand_builtin_eh_return): Likewise.
1565         * stmt.c (expand_computed_goto): Likewise.
1566         * explow.c (memory_address): Likewise.
1567         (allocate_dynamic_stack_space): Clean up predicate testing.
1568         (probe_stack_range): Convert SIZE to Pmode.
1569         * calls.c (rtx_for_function_call): Only call convert_memory_address
1570         if needed.
1571         Pass function call operand as ptr_mode, not Pmode.
1572         * expr.c (expand_assignment): Clean up calls to convert_memory
1573         address by only doing so when needed and making offsets Pmode.
1574         (store_constructor, expand_expr, expand_expr_unaligned): Likewise.
1575         * function.c (assign_parms): Ensure address in MEM for RESULT_DECL
1576         is in Pmode, not ptr_mode.
1577
1578 2001-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1579
1580         * darwin-protos.h (constructor_section, destructor_section,
1581         mod_init_section, mod_term_section): Prototype.
1582         * darwin.c (machopic_finish, update_non_lazy_ptrs, update_stubs):
1583         Const-ify.
1584         * darwin.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_NAME):
1585         Likewise.
1586         (SECTION_FUNCTION): Prototype `FUNCTION'.  Delete
1587         objc_section_init declaration.
1588         (EXTRA_SECTION_FUNCTIONS): Prototype objc_section_init.
1589         (objc_section_init, try_section_alias): Make static.
1590         (alias_section): Make static and hide unused function.
1591         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
1592
1593 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1594
1595         * alias.c (can_address_p): Compnonents are not addressable if
1596         the containing type has alias set 0.
1597         (get_alias_set): Rework to use STRIP_NOPS.
1598         Only call front-end routine on object, type, or object with
1599         NOPs stripped, not inner values.
1600         Use language hook to call front-end routine.
1601         * builtins.c (get_memory_rtx): Always call set_mem_attributes.
1602         (expand_builtin_apply): Call set_mem_align on MEMs we make.
1603         Don't pass alignment to emit_block_move.
1604         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
1605         (expand_builtin_memset): Likewise, but for clear_storage.
1606         * c-common.c (lang_get_alias_set): Renamed to c_common_alias_set
1607         and remove C++ specific parts.
1608         * c-common.h (c_common_get_alias_set): Add declaration.
1609         * c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
1610         * calls.c (emit_call_1): Fix typo in sibcall_pop case.
1611         (save_fixed_argument_area): Call set_mem_align.
1612         Remove alignment in call to emit_block_move.
1613         (emit_library_call_value_1, store_one_arg): Likewise.
1614         (target_for_arg): Remove; disabled long ago.
1615         * emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs
1616         once and similar cleanups.
1617         (offset_address): Use proper introductory comment.
1618         * expr.c (emit_block_move): Use alignment from that of MEM args, not
1619         from explicit operand; all callers changed.
1620         (clear_storage): Likewise.
1621         (expand_assignment): Don't call set_mem_alias_set on to_rtx.
1622         (store_field): Remove kludge on alias set used for to_rtx.
1623         (highest_pow2_factor, case *_DIV_EXPR): Never return 0.
1624         (expand_expr_unaligned): Call set_mem_attributes instead of
1625         set_mem_alias_set.
1626         * expr.h (emit_block_move, clear_storage): Remove ALIGN argument.
1627         * function.c (assign_stack_temp_for_type): Set MEM alignment.
1628         (expand_function_end): Track MEM attributes of trampolines.
1629         * ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM.
1630         * integrate.c (copy_rtx_and_substitute, case CALL): Copy memory
1631         attributes from original.
1632         * langhooks.c (lang_hook_default_get_alias_set): New function.
1633         (hook_get_alias_set_0): New function.
1634         * langhooks.h (hook_get_alias_set_0): New declaration.
1635         (lang_hook_default_get_alias_set): Likewise.
1636         (LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer.
1637         * reload1.c (alter_reg): Use adjust_address_nv.
1638         * rtl.c (get_mode_alignment): Moved to here.
1639         * rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and
1640         change default if unknown from 1 to BITS_PER_UNIT.
1641         * stor-layout.c (get_mode_alignment): Remove from here.
1642         * toplev.h (struct lang_hoks): Add get_alias_set field.
1643         * tree.h (lang_get_alias_set): Delete declaration.
1644         * config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment.
1645         * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
1646         (ix86_va_arg): Likewise.
1647         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
1648         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
1649         * config/sparc/sparc.c (sparc_va_arg): Likewise.
1650         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
1651         (expand_block_move_mem): Remove dead code.
1652
1653 2001-10-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1654
1655         * c-common.c (warn_div_by_zero): New.
1656         * c-common.h (warn_div_by_zero): New.
1657         * c-decl.c (c_decode_option): Take it on the command line.
1658         * c-typeck.c (build_binary_op): Warn about division by zero.
1659         * doc/invoke.texi: Document the new command line option, fix
1660         documentation of -Wmultichar.
1661         * testsuite/gcc.dg/divbyzero.c: New tests.
1662         * testsuite/gcc.dg/noncompile/20010524-1.c: Update.
1663
1664 Tue Oct 23 15:30:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
1665
1666         * i386.c (ix86_expand_int_movcc): Cleanup; use expand_simple_*op.
1667
1668         * toplev.c (rest_of_compilation): Use CLEANUP_UPDATE_LIFE
1669         to avoid update_life_info call.
1670         * basic-block.h (CLEANUP_UPATE_LIFE): Define.
1671         * cfgcleanup.c (bb_flags): New enum.
1672         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG, FORWARDER_BLOCK_P): New macros.
1673         (notice_new_block, update_forwarder_flag): New functions.
1674         (try_simplify_condjump): Use FORWARDER_BLOCK_P.
1675         (try_forward_edges): Likewise; update flags.
1676         (merge_blocks): Likewise.
1677         (outgoing_edges_match): Likewise.
1678         (try_crossjump_to_edge): Likewise.
1679         (try_optimize_cfg): Likewise; initialize and clear the flags;
1680         recompute life info if needed.
1681         (cleanup_cfg): No need to clear aux pointers.
1682
1683 2001-10-23  Alexandre Oliva  <aoliva@redhat.com>
1684
1685         * config/i386/i386.c (override_options): Default to minimum
1686         stack alignment when optimizing for code size.
1687         * doc/invoke.texi (-mpreferred-stack-boundary): Document the
1688         change.
1689
1690         * config/i386/i386.c (override_options): Set upper limit of
1691         -mpreferred-stack-boundary to 12.
1692
1693 2001-10-22  Zack Weinberg  <zack@codesourcery.com>
1694
1695         * recog.c (peephole2_optimize): Add default case to switch.
1696
1697 2001-10-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1698
1699         * doc/gcc.texi (Sending Patches): Remove.
1700
1701 2001-10-22  Hans-Peter Nilsson  <hp@bitrange.com>
1702
1703         * unwind-dw2-fde.c (fde_unencoded_compare): Derefer pc_begin
1704         fields when comparing.
1705
1706 2001-10-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1707
1708         * arm.h (HOST_INT, HOST_UINT): Delete.  Remove all uses.
1709         * arm.c (HOST_INT, HOST_UINT): Likewise.
1710
1711 2001-10-22  Stan Shebs  <shebs@apple.com>
1712
1713         * config/darwin-protos.h (darwin_exception_section): Declare.
1714         (darwin_eh_frame_section): Declare.
1715
1716 Mon Oct 22 18:21:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
1717
1718         * i386.md (movti_rex64): Fix mode.
1719
1720 2001-10-22  Stan Shebs  <shebs@apple.com>
1721
1722         * target.h (struct gcc_target): Add asm_out.exception_section,
1723         asm_out.eh_frame_section.
1724         * target-def.h (TARGET_ASM_EXCEPTION_SECTION): New macro.
1725         (TARGET_ASM_EH_FRAME_SECTION): New.
1726         (TARGET_INITIALIZER): Update.
1727         * output.h (default_exception_section): Declare.
1728         (default_eh_frame_section): Declare.
1729         * dwarf2out.c: Include target.h.
1730         (output_call_frame_info): Call target hook for eh frames.
1731         (default_eh_frame_section): New function.
1732         * except.c: Include target.h.
1733         (output_function_exception_table): Call target hook for exception
1734         section.
1735         * varasm.c (default_exception_section): Rename from
1736         exception_section, remove EXCEPTION_SECTION macro.
1737
1738         * config/darwin.h (darwin_eh_frame_section): New function.
1739         (EXCEPTION_SECTION): Remove.
1740         (TARGET_ASM_EXCEPTION_SECTION): Define.
1741         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP): Remove.
1742         (nextstep_exception_section): New function.
1743         (nextstep_eh_frame_section): New function.
1744         (TARGET_ASM_EXCEPTION_SECTION): Define.
1745         (TARGET_ASM_EH_FRAME_SECTION): Define.
1746
1747         * config/pa/som.h (EXCEPTION_SECTION): Remove.
1748         (TARGET_ASM_EXCEPTION_SECTION): Define.
1749         * config/rs6000/sysv4.h, config/rs6000/xcoff.h
1750         (EXCEPTION_SECTION): Remove.
1751         (TARGET_ASM_EXCEPTION_SECTION): Define.
1752         * config/stormy16/stormy16.h: Remove comments referencing
1753         EXCEPTION_SECTION and EH_FRAME_SECTION_ASM_OP.
1754
1755         * doc/tm.texi: Document TARGET_ASM_EXCEPTION_SECTION and
1756         TARGET_ASM_EH_FRAME_SECTION.
1757
1758 2001-10-22  Nick Clifton  <nickc@cambridge.redhat.com>
1759
1760         * config/mips/mips.md (mul_acc_si): Fix precedence of conditional
1761         terms.
1762
1763         * c-format.c: Fix spelling typo in comment.
1764
1765         * sched-int.h: Fix typo in GCC preamble.
1766
1767 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1768
1769         PR debug/4252
1770         * doc/invoke.texi: Remove references to -fdump-translation-unit.
1771
1772 2001-10-22  Richard Henderson  <rth@redhat.com>
1773
1774         * config/i386/i386.c (ix86_expand_clear): New.
1775         * config/i386/i386-protos.h: Declare it.
1776         * config/i386/i386.md (setcc peep2s): Use it.
1777         (movsi_xor): Unexport.
1778
1779 2001-10-22  Richard Henderson  <rth@redhat.com>
1780
1781         * flow.c (clear_log_links): Use free_INSN_LIST_list, not
1782         free_EXPR_LIST_list for LOG_LINKS.
1783
1784 2001-10-21  Robert Lipe  <robertlipe@usa.net>
1785
1786         * config/i386/i386.c (sco_asm_named_section): Delete.
1787         (sco_asm_out_constructor): Delete.
1788         * config/i386/sco5.h (ASM_QUAD): Undo damage from att.h.
1789         (ASM_OUTPUT_DOUBLE_INT): Likewise.
1790         (TARGET_ASM_CONSTRUCTOR): Delete.  Use default.
1791         (TARGET_ASM_NAMED_SECTION): Use default for ELF.
1792         (EXCEPTION_SECTION): Delete EH scn renaming hack.
1793
1794 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1795
1796         * c-format.c (maybe_read_dollar_number): Use safe-ctype macros
1797         and/or fold extra calls into fewer ones.
1798         * collect2.c (dump_file): Likewise.
1799         * cppexp.c (parse_number): Likewise.
1800         * cpplex.c (_cpp_lex_direct): Likewise.
1801         * final.c (output_asm_insn, asm_fprintf): Likewise.
1802         * fix-header.c (inf_scan_ident, main): Likewise.
1803         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
1804         Likewise.
1805         * fold-const.c (real_hex_to_f): Likewise.
1806         * gen-protos.c (parse_fn_proto): Likewise.
1807         * genattrtab.c (check_attr_test, check_attr_value): Likewise.
1808         * genrecog.c (change_state, write_action): Likewise.
1809         * gensupport.c (shift_output_template): Likewise.
1810         * local-alloc.c (requires_inout): Likewise.
1811         * mips-tfile.c (IS_ASM_IDENT): Likewise.
1812         * protoize.c (is_id_char, main): Likewise.
1813         * real.c (asctoeg): Likewise.
1814         * recog.c (asm_operand_ok): Likewise.
1815         * reload.c (find_reloads): Likewise.
1816         * scan.c (scan_identget_token): Likewise.
1817         * sched-vis.c (print_value): Likewise.
1818         * stringpool.c (ggc_alloc_string): Likewise.
1819         * toplev.c (read_integral_parameter, decode_g_option): Likewise.
1820         * tradcif.y (parse_number, yylex, parse_escape): Likewise.
1821         * tradcpp.c (rescan): Likewise.
1822         * tree.c (clean_symbol_name): Likewise.
1823         * varasm.c (decode_reg_name): Likewise.
1824
1825         * alpha.h (ASM_OUTPUT_ASCII): Likewise.
1826         * darwin.c (name_needs_quotes, func_name_maybe_scoped): Likewise.
1827         * dsp16xx.h (ASM_OUTPUT_ASCII): Likewise.
1828         * m88k.c (output_ascii): Likewise.
1829         * m88k.h (OVERRIDE_OPTIONS): Likewise.
1830         * mcore.h (REG_CLASS_FROM_LETTER): Likewise.
1831         * ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise.
1832         * sh.h (REG_CLASS_FROM_LETTER): Likewise.
1833
1834 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1835
1836         * langhooks.c (lang_hook_default_do_nothing,
1837         lang_hook_default_decode_option): New defaults.
1838         * langhooks.h: Make hooks unconditional and non-NULL.
1839         * toplev.c (compile_file, toplev_main): Update.
1840         * toplev.h: Update comments.
1841         * objc/objc-act.c (lang_hooks): Update to new paradigm.
1842
1843 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1844
1845         * arm.h (FUNCTION_ARG_REGNO_P): Use IN_RANGE.
1846
1847         * system.h (IN_RANGE): New macro.
1848
1849 2001-10-21  Zack Weinberg  <zack@codesourcery.com>
1850
1851         * aclocal.m4 (AM_WITH_NLS): Also create and substitute
1852         INTLDEPS variable, which does not include $LIBICONV.
1853         * Makefile.in: Use INTLDEPS in LIBDEPS.
1854         * configure: Regenerate.
1855
1856 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1857
1858         * cpphash.h (struct cpp_buffer): Delete read_ahead and extra_char.
1859         * cpplex.c (lex_percent, lex_dot): Remove.
1860         (get_effective_char, skip_block_comment, skip_line_comment,
1861         parse_identifier_slow, parse_number, parse_string, save_comment,
1862         _cpp_lex_direct): Update to do lookback freely.
1863         (IF_NEXT_IS, BACKUP): New macros.
1864         * cpplib.c (cpp_push_buffer): Don't set read_ahead and extra_char.
1865         * cppmacro.c (paste_tokens): Update.
1866
1867 2001-10-20  Nick Clifton  <nickc@cambridge.redhat.com>
1868
1869         * doc/invoke.texi (i386 and x86-64 Options): Fix typo.
1870
1871 2001-10-20  Hans-Peter Nilsson  <hp@axis.com>
1872
1873         * reload1.c (reload): Check CONSTANT_P before calling
1874         LEGITIMATE_PIC_OPERAND_P.
1875         * config/cris/cris.c (cris_legitimate_pic_operand): Revert
1876         workaround of 2001-10-13.
1877
1878 Sat Oct 20 15:16:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
1879
1880         * i386.c (split_di): Handle splitting of DFmode.
1881
1882 Sat Oct 20 07:27:14 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1883
1884         * emit-rtl.c (set_mem_attributes): Alignment is in bits.
1885         (adjust_address_1, offset_address): Likewise.
1886
1887         * final.c (output_asm_operand_names): New fcn, from output_asm_insn.
1888         (output_asm_insn): Call it for each line output.
1889         Don't record an operand more than once.
1890
1891         * toplev.h (struct lang_hooks): HONOR_READONLY now bool.
1892         * main.c: Include config.h and system.h, but not ansidecl.h.
1893         * Makefile.in (main.o): Update accordingly.
1894
1895 Sat Oct 20 12:05:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
1896
1897         * i386.h (SSE_REGPARM_MAX): Set to 8 for x86_64.
1898
1899 Sat Oct 20 12:01:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
1900
1901         * basic-block.h (find_sub_basic_blocks): Use sbitmap parameter.
1902         * cfgbuild.c (find_bb_boundaries, compute_outgoing_frequencies):
1903         Break out from ...
1904         (find_sub_basic_blocks): ... here;
1905         (find_many_sub_basic_blocks): New.
1906         * recog.c (split_all_insns): Update find_sub_basic_blocks call.
1907
1908         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Define sdata4.
1909
1910         * i386.c (ix86_va_arg): Kill indirect_p handling; fix aliasing issues.:
1911
1912         * i386.c (split_di, split_ti): Revamp to use simplify_subreg.
1913
1914         * timevar.def (TV_LIFE, TV_LIFE_UPDATE, TV_MODE_SWITCH): new.
1915         * flow.c (update_life_info): Measure time.
1916         * c-decl.c: Include timevar.h
1917         (c_expand_body): Measure time.
1918         * toplev.c (rest_of_compilation): Measure time of mode switching
1919         separately.
1920         * Makefile.in (c-decl.o, cfgcleanup.o): Add dependency.
1921
1922         * toplev.c (flag_asynchronous_unwind_tables): New global variable.
1923         (lang_independent_options): Add asynchronous-unwind-tables
1924         (toplev_main): flag_asynchronous_unwind_tables implies
1925         flag_unwind_tables.
1926         * flags.h (flag_asynchronous_unwind_tables): Declare.
1927         * dwarf2out.c (dwarf2out_stack_adjust): Take into account
1928         flag_asynchronous_unwind_tables.
1929         (output_call_frame_info): Likewise.
1930         * invoke.texi (-fasynchronous-unwind-tables): Document.
1931         * i386.c (optimization_options): Enable
1932         flag_asynchronous_unwind_tables.
1933
1934         * i386.c (ix86_expand_setcc):  Always expect target to be QImode.
1935         * i386.md (s* expanders): Destination is QImode.
1936
1937         * toplev.c (rest_of_compilation): Do not call clear_log_links.
1938         * rtl.h (clear_log_links): Kill.
1939         * flow.c (clear_log_links): Make static; accept blocks parameter;
1940         do no clear life info.
1941         (update_life_info): Call clear_log_links.
1942
1943         * cfganal.c (forwarder_block_p): Avoid active_insn_p calls.
1944
1945 2001-10-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1946
1947         * cpplex.c (handle_newline, skip_escaped_newlines,
1948         get_effective_char, skip_block_comment, skip_line_comment,
1949         parse_identifier_slow, parse_number, parse_string,
1950         _cpp_lex_direct): Update to do more stepping back.
1951         (trigraph_ok): Similarly.  Rename trigraph_p.
1952         (SAVE_STATE, RESTORE_STATE): Remove.
1953         (BUFF_SIZE_UPPER_BOUND): Tweak.  Add sanity check.
1954
1955         * cpplib.c (destringize): Rename destringize_and_run, and
1956         call run_directive directly.
1957         (_cpp_do__Pragma): Simplify.
1958
1959 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1960
1961         * pe.c (arm_pe_unique_section): Const-ify.
1962         * pe.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
1963         (switch_to_section): Add static prototype.
1964
1965         * output.h (drectve_section): Prototype.
1966
1967 2001-10-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1968
1969         * config.gcc (i[34567]86-*-gnu*, arc-*-elf*, d30v-*,
1970         fr30-*-elf, hppa*64*-*-linux*, parisc*64*-*-linux*, hppa*-*-linux*,
1971         parisc*-*-linux*, i370-*-linux*, i[34567]86-*-chorusos*,
1972         i[34567]86-*-elf*, i[34567]86-ncr-sysv4*, i[34567]86-*-netware,
1973         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1974         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-freebsd*,
1975         i[34567]86-*-netbsdelf*, i[34567]86-*-linux*libc1,
1976         i[34567]86-*-linux*, i[34567]86-moss-msdos*, i[34567]86-*-moss*,
1977         i[34567]86-go32-rtems*, i[34567]86-*-rtems*, i[34567]86-*-rtemself*,
1978         i[34567]86-*-solaris2*, i[34567]86-*-sysv5*, i[34567]86-*-sysv4*,
1979         i[34567]86-*-udk*, i[34567]86-*-osf1*, i[34567]86-dg-dgux*,
1980         i860-alliant-*, i860-*-sysv4*, ia64*-*-aix*, ia64*-*-linux*,
1981         ia64*-*-hpux*, m32r-*-elf*, m88k-dg-dgux*, m88k-*-sysv4*, mcore-*-elf,
1982         mips*-*-linux*, mn10200-*-*, mn10300-*-*, pj*-linux*, pjl-*,
1983         powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*,
1984         powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*,
1985         powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*,
1986         powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*,
1987         powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*,
1988         powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*,
1989         rs6000-*-mach*, s390-*-linux*, s390x-*-linux*, sh-*-elf*,
1990         sh-*-rtemself*, sh-*-rtems*, sh-*-linux*, stormy16-*-elf,
1991         v850-*-rtems*, v850-*-*, x86_64-*-linux*), cris-*-aout, cris-*-elf,
1992         cris-*-none, cris-*-linux*: Update ${tmfile} list.
1993         (c4x-*-rtems*, c4x-*, i[34567]86-go32-rtems*, i[34567]86-*-rtemscoff*,
1994         i[34567]86-*-rtems*, i[34567]86-*-rtemself*, i[34567]86-*-osf1*,
1995         mn10200-*-*, mn10300-*-*, powerpc-*-beos*, powerpc-*-darwin*,
1996         powerpc-wrs-vxworks*, powerpcle-wrs-vxworks*, v850-*-rtems*,
1997         v850-*-*): Delete superflous ${cpu_type} setting.
1998         * config/linux.h: Delete svr4.h include.
1999         (SET_ASM_OP): Delete.
2000         * config/netware.h (INT_ASM_OP): Undef before define.
2001         * config/ptx4.h: Delete elfos.h include.
2002         (PREFERRED_DEBUGGING_TYPE): Undef instead of wrapping.
2003         * config/svr4.h: Delete elfos.h include. Update commentary.
2004         * config/arc/arc.h, config/d30v/d30v.h, config/fr30/fr30.h,
2005         config/m32r/m32r.h, config/m88k/sysv4.h, config/mn10200/mn10200.h,
2006         config/mn10200/mn10300.h, config/stormy16/stormy16.h,
2007         config/v850/v850.h: Delete svr4.h include.
2008         * config/i370/linux.h, config/i386/osf1elf.h, config/m68k/linux.h,
2009         config/m68k/m68kv4.h, config/m88k/sysv4.h,
2010         config/sparc/sysv4.h: Update includes.
2011         * config/i386/beos-elf.h, config/i386/netware.h, config/i386/ptx4-i.h,
2012         config/i386/rtemself.h, config/i386/sol2.h, config/i386/sysv4.h,
2013         config/i386/sysv5.h, config/i386/udk.h, config/ia64/linux.h,
2014         config/m88k/dguxbcs.h: Delete includes.
2015         * config/i386/dgux.h, config/i386/osf1elfgdb.h: Delete include.
2016         (PREFERRED_DEBUGGING_TYPE): Undef before defining it.
2017         * config/i860/fx2800.h (ASM_OUTPUT_SOURCE_LINE): Undef before defining
2018         it.
2019         * config/m88k/dgux.h: Delete include.
2020         (SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):  Undef before
2021         defining it.
2022         * config/pj/pj.h (ASM_GENERATE_INTERNAL_LABEL,
2023         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Undef before defining it.
2024         * config/sh/elf.h: Update include.
2025         (SDB_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2026         DWARF2_ASM_LINE_DEBUG_INFO): Move behind includes.
2027
2028 2001-10-19  Catherine Moore  <clm@redhat.com>
2029
2030         * config/stormy16/stormy-abi:  Updates to varargs descriptions.
2031         * config/stormy16/stormy16.c (stormy16_build_va_list):  Reverse
2032         base and count fields.
2033         (stormy16_expand_builtin_va_start):  last_reg_count changed to
2034         size_of_reg_args.  Use count + size in first comparison.
2035
2036 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2037
2038         * langhooks.h (LANG_HOOKS_HONOR_READONLY): New macro.
2039         * toplev.h (struct lang_hooks): New field HONOR_READONLY.
2040         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGING_P from
2041         TREE_READONLY and TYPE_READONLY if lang_hooks.honor_readonly.
2042         Set alignment from type if INDIRECT_REF.
2043         (adjust_address_1, offset_address): Simplify alignment compuitation.
2044         * expr.c (expand_expr, case INDIRECT_REF): Don't set RTX_UNCHANGING_P
2045         here; done by set_mem_attributes.
2046
2047 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2048
2049         * Makefile.in (rtlanal.o): Depend on $(TM_P_H).
2050         * arm-protos.h (rdata_section, zero_init_section, common_section):
2051         Prototype.
2052         * arm.h (ASM_OUTPUT_DEF_FROM_DECLS): Const-ify.
2053         * avr.h (ASM_OUTPUT_SKIP): Rename macro parameter to avoid
2054         traditional mode stringification.
2055         * function.c (thread_prologue_and_epilogue_insns): Wrap variable
2056         in macros controling its use.
2057         * rtlanal.c: Include tm_p.h.
2058         * varasm.c (asm_output_aligned_bss): Mark parameter with
2059         ATTRIBUTE_UNUSED.
2060         (assemble_constant_align, assemble_start_function, assemble_align,
2061         assemble_variable, assemble_trampoline_template,
2062         output_constant_def_contents): Wrap potentially empty if-stmt body
2063         in brackets.
2064
2065 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2066
2067         * a29k-protos.h (literal_section): Prototype.
2068         * a29k.h (ASM_FILE_START): Don't discard pointer qualifier.
2069         * a29k.md: Ensure function pointers are prototyped.
2070         * genattrtab.c (write_eligible_delay): Mark parameter with
2071         ATTRIBUTE_UNUSED.
2072
2073 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2074
2075         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
2076         * 1750a.c (print_operand): Fix format specifier warning.
2077         * 1750a.h (ASM_FILE_START): Don't discard pointer qualifier.
2078         * 1750a.md: Likewise.
2079         * gcc.c (init_gcc_specs): Wrap with ENABLE_SHARED_LIBGCC.
2080         * genemit.c (output_add_clobbers): Mark parameter with
2081         ATTRIBUTE_UNUSED.
2082         * genrecog.c (write_subroutine): Likewise.
2083         * integrate.c (expand_inline_function): Delete unused variable.
2084         * varasm.c (remove_from_pending_weak_list): Wrap with
2085         ASM_WEAKEN_LABEL.
2086
2087 2001-10-19  Jakub Jelinek  <jakub@redhat.com>
2088
2089         * simplify-rtx.c (simplify_plus_minus): Negate constant iff its neg
2090         field is different to previous argument's neg field.
2091
2092         * config/alpha/alpha.c (summarize_insn): Don't abort on ASM_INPUT.
2093
2094 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2095
2096         * final.c (get_decl_from_op): New function.
2097         (output_asm_insn): Call it; write "*" when item with decl is address.
2098
2099 2001-10-19  Janis Johnson  <janis187@us.ibm.com>
2100
2101         * doc/install.texi (Specific, sparc-sun-solaris2*) Copy documentation
2102         about 64-bit support from the 3.0_branch version.
2103
2104 2001-10-19  Zack Weinberg  <zack@codesourcery.com>
2105
2106         * aclocal.m4 (AM_WITH_NLS): AC_DEFINE HAVE_LIBINTL_H and
2107         USE_INCLUDED_LIBINTL when appropriate.
2108         * configure, config.in: Regenerate.
2109         * Makefile.in (datadir): Set to @datadir@.
2110         (intl.o): Also depend on $(CONFIG_H) and system.h.
2111
2112         * intl.c: Factor out common gettext initialization sequence.
2113         (gcc_init_libintl):  New function.
2114         * intl.h: Include intl/libgnuintl.h if USE_INCLUDED_LIBINTL;
2115         otherwise include libintl.h if HAVE_LIBINTL_H; otherwise turn
2116         off NLS.  Add multiple include guard.  No need to #ifdef-guard
2117         an #undef.  Prototype gcc_init_libintl here.
2118
2119         * collect2.c (main), cppmain.c (general_init), gcc.c (main),
2120         gcov.c (main), protoize.c (main), toplev.c (toplev_main):
2121         Use gcc_init_libintl.
2122
2123 2001-10-19  Catherine Moore  <clm@redhat.com>
2124
2125         * config/stormy16/stormy16.h (ASM_COMMENT_START): Define.
2126
2127         * config/stormy16/stormy16.c (stormy16_split_move):  Make
2128         sure that REG_INC notes are present for auto_inc operands.
2129
2130 2001-10-19  Andreas Jaeger  <aj@suse.de>
2131
2132         * configure: Regenerated.
2133         * configure.in: Add x86_64 to switch statements.
2134
2135 2001-10-18  Richard Henderson  <rth@redhat.com>
2136
2137         * config/alpha/alpha.md (sibcall_osf_1): Load destination
2138         address into $27 explicitly.
2139         (sibcall_value_osf_1): Likewise.
2140
2141 Thu Oct 18 16:07:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2142
2143         * emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.
2144         (offset_address): New function.
2145         (free_emit_status): Free regno_decl.
2146         (init_emit): Pass proper number of elements to xcalloc.
2147         Allocate regno_decl.
2148         (mark_emit_status): Mark regno_decl values.
2149         * expr.c (highest_pow2_factor): New function.
2150         (expand_assigment): Use it and offset_address.
2151         Properly handle ptr_mode vs. Pmode in offset calculation.
2152         (store_constructor, expand_expr_unaligned): Likewise.
2153         (expand_expr, case COMPONENT_EXPR): Likewise.
2154         * expr.h (offset_address): New decl.
2155         * function.h (struct emit_status): Add regno_decl.
2156         (REGNO_DECL): New macro.
2157         * final.c (output_asm_name): Move in file and don't conditionalize
2158         on flag_print_asm_name.
2159         (output_asm_insn): Only call output_asm_name if flag_print_asm_name.
2160         Output names of operands, if known.
2161         * function.c (assign_parms): Set REGNO_DECL.
2162         * integrate.c (integrate_decl_tree): Likewise.
2163         * stmt.c (expand_decl): Likewise.
2164         * regclass.c (reg_scan_mark_refs): Propagate REGNO_DECL for copies.
2165
2166 2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
2167
2168         * attribs.c (handle_noinline_attribute): New function.
2169         (handle_used_attribute): Likewise.
2170         (c_common_attribute_table): Added noinline and used.
2171         * doc/extend.texi (Function Attributes): Document them.
2172         * c-decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
2173         Warn when merging inline with attribute noinline.
2174         (start_decl, start_function): Warn if inline and attribute
2175         noinline appear in the same declaration.
2176
2177 2001-10-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2178
2179         * config.gcc: Update c4x and i370 for C front end-specific
2180         dependencies.
2181         * config/c4x/c4x-c.c: New.
2182         * config/c4x/c4x-protos.h (c4x_handle_pragma): Remove.
2183         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
2184         New declarations.
2185         * config/c4x/c4x.c: Don't include c-lex.h or c-pragma.h.
2186         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
2187         Make extern.
2188         (c4x_init_pragma): Remove.
2189         (c4x_parse_pragma, c4x_pr_CODE_SECTION, c4x_pr_DATA_SECTION,
2190         c4x_pr_FUNC_IS_PURE, c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT,
2191         c4x_pr_ignored): Move to c4x-c.c.
2192         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
2193         * config/c4x/t-c4x: Update.
2194         * config/i370/i370-c.c: New.
2195         * config/i370/i370.c: Don't include c-lex.h or c-pragma.h.
2196         (i370_pr_map): Move to i370-c.c.
2197         * config/i370/t-i370: New.
2198
2199         * doc/tm.texi: Update.
2200
2201 2001-10-17  Stan Shebs  <shebs@apple.com>
2202
2203         * config/rs6000/rs6000.c: Make assorted mechanical formatting and
2204         typo fixes throughout.
2205         (machopic_output_stub): Remove some dead code.
2206
2207 2001-10-17  Richard Earnshaw <rearnsha@arm.com>
2208
2209         * cpplex.c (_cpp_get_buff): Fix off-by-one error that caused memory
2210         leak.
2211
2212 Wed Oct 17 05:26:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2213
2214         * Makefile.in (print-rtl.o): Depend on TREE_H.
2215         * alias.c (get_alias_set): Make two passes over objects to first
2216         see if inner object is access via restricted pointer.
2217         Defer allocating alias set for restricted pointer until here.
2218         Call find_placeholder with second arg nonzero.
2219         Minor cleanups.
2220         * c-common.c (c_apply_type_quals_to_decl): Defer getting alias
2221         set for restricted pointer types.
2222         * emit-rtl.c (set_mem_attributes): Set more attributes.
2223         (set_mem_align, change_address, adjust_address_1): New functions.
2224         (change_address_1): Now static.
2225         (adjust_address, adjust_address_nv): Deleted.
2226         (replace_equiv_address): Call change_address_1.
2227         * expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR.
2228         (find_placeholder): Get starting point from PLIST arg.
2229         (expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg.
2230         * expr.h (set_mem_align, change_address, adjust_address_1): New decls.
2231         (adjust_address, adjust_address_nv): New macros.
2232         * print-rtl.c (tree.h): New include.
2233         (print_rtx, case MEM): Print all memory attributes.
2234
2235 2001-10-17  Richard Henderson  <rth@redhat.com>
2236
2237         * config/alpha/alpha.c (direct_call_operand): Don't fall off end.
2238
2239 2001-10-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
2240
2241         * c-tree.texi: Eliminate duplicated word.
2242         * cpp.texi: Likewise.
2243         * install.texi: Likewise.
2244         * invoke.texi: Likewise.
2245         * tm.texi: Likewise.
2246
2247 2001-10-17  Michael Collison  <collison@isisinc.net>
2248
2249         * dsp16xx.c: Fix comment formatting to match GNU standards.
2250         (dsp16xx_output_function_prologue): Change type of 'size'
2251         parameter from 'int' to HOST_WIDE_INT.
2252         (dsp16xx_output_function_epilogue): Change type of 'size'
2253         parameter from 'int' to HOST_WIDE_INT.
2254
2255 2001-10-16  Richard Henderson  <rth@redhat.com>
2256
2257         * configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
2258         * configure, config.in: Rebuild.
2259
2260         * config/i386/i386.c (ix86_output_addr_vec_elt): New.
2261         (ix86_output_addr_diff_elt): New.
2262         * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them.
2263         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2264         (JUMP_TABLES_IN_TEXT_SECTION): New.
2265         * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA.
2266         * config/i386/i386-protos.h: Update.
2267
2268         * config/i386/386bsd.h, config/i386/beos-elf.h,
2269         config/i386/freebsd-aout.h, config/i386/freebsd.h,
2270         config/i386/i386-interix.h, config/i386/i386elf.h,
2271         config/i386/linux.h, config/i386/netbsd-elf.h,
2272         config/i386/netbsd.h, config/i386/openbsd.h,
2273         config/i386/ptx4-i.h, config/i386/rtemself.h,
2274         config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h
2275         (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove.
2276
2277 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
2278
2279         * stmt.c (expand_asm_operands): Update commentary.
2280
2281 2001-10-16  Stan Shebs  <shebs@apple.com>
2282
2283         * config/darwin.h (GCC_NAME): Remove, no longer used.
2284         (NO_MATH_LIBRARY): Ditto.
2285         (MATH_LIBRARY): Define to emptiness.
2286         (DWARF2_DEBUGGING_INFO): Define.
2287         (PREFERRED_DEBUGGING_TYPE): Define.
2288         (EXTRA_SECTION_FUNCTIONS): Add darwin_exception_section.
2289         (EXCEPTION_SECTION): Define.
2290         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2291         * config/darwin.c (darwin_encode_section_info): Handle case of
2292         DECL_INITIAL being error_mark_node.
2293
2294 2001-10-16  Richard Henderson  <rth@redhat.com>
2295
2296         * alpha.c (current_file_function_operand): Don't fail for profiling.
2297         (direct_call_operand): New.
2298         * alpha-protos.h: Declare it.
2299         * alpha.h (EXTRA_CONSTRAINT): Use it.
2300         (PREDICATE_CODES): Add it.
2301         (ASM_OUTPUT_MI_THUNK): Remove.
2302         * alpha32.h (ASM_OUTPUT_MI_THUNK): Remove.
2303         * alpha.md (sibcall_osf_1, sibcall_value_osf_1): Add 's' alternative.
2304
2305 2001-10-16  Krister Walfridsson  <cato@df.lth.se>
2306
2307         * config/i386/netbsd-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Define.
2308         (JUMP_TABLES_IN_TEXT_SECTION): Define.
2309
2310 Wed Oct 17 00:21:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
2311
2312         * cfg.c (free_edge): Break out from ....
2313         (remove_edge): ... here.
2314         (clear_edges): Use free_edge.
2315
2316         * att.h (ASM_QUAD): Add comment.
2317         * bsd.h, sco5.h, sun386.h (ASM_QUAD): Define.
2318
2319 Wed Oct 17 00:01:02 CEST 2001  Jan Hubicka  <jh@suse.cz>
2320
2321         * i386.c (split_ti): New function.
2322         (ix86_split_to_parts): Support TImodes.
2323         * i386.h (VALID_INT_MODE_P): Add TImode.
2324         * i386.md (movdi splitter): Fix.
2325         (movti): Support 64bit integer registers.
2326         (movti_rex64): New function and splitter.
2327
2328         * i386.c (*_cost): Add movsx/movzx cost.
2329         * i386.h (struct processor_costs): Add movsx/movzx fields.
2330         (RTX_COSTS): Handle zero/sign extend + avoid believing that
2331         64bit operations require split on 64bit machine.
2332         (CONST_COST): Make large 64bit constants expensive on 64bit compilation.
2333
2334         * i386.c (ix86_setup_incoming_varargs): Fix mode of PLUS.
2335         (ix86_expand_move): Avoid pushes of memory if size does not match;
2336         move long constants to register.
2337         (x86_initialize_trampoline): Fix mode.
2338         * i386.h (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT):
2339         Use ASM_QUAD on 64bit.
2340         * i386.md (test pattern): Disallow impossible constants.
2341         (tablejump PIC expander): Fix emitting of sum.
2342         (movdicc_rex64): Rename to movdicc.
2343         * linux64.h (LINK_SPEC): Add missing '%'.
2344
2345 2001-10-16  Alexandre Oliva  <aoliva@redhat.com>
2346
2347         * tree-inline.c (inlinable_function_p): Leave it up to the
2348         front-end to turn -finline-functions into DECL_INLINE set for all
2349         functions.
2350
2351 2001-10-16  Stan Shebs  <shebs@apple.com>
2352
2353         * config/rs6000/darwin.h (ASM_COMMENT_START): Define.
2354
2355 2001-10-16  Alan Modra  <amodra@bigpond.net.au>
2356
2357         * recog.c: Formatting and comment typo fixes.
2358
2359         * configure.in (gcc_cv_as_bfd_srcdir): New.  Use it to find gas
2360         version in single tree build.
2361         * configure: Regenerate.
2362
2363 2001-10-15  David Edelsohn  <edelsohn@gnu.org>
2364
2365         * config/rs6000/rs6000.md (cr_logical): Swap order of CODE and
2366         MODE arguments to gen_rtx and compare operand with const0_rtx.
2367
2368 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
2369
2370         * system.h: Poison old unused target macros.
2371         * config/dsp16xx.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
2372         * config/stormy16/stormy16.c: Update references to obsolete macros.
2373         * config/stormy16/stormy16.h: Similarly.
2374         * config/stormy16/stormy16.md: Similarly.
2375         * config/cris/cris.h: Similarly.
2376
2377 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
2378
2379         * cpplib.c (struct pragma_entry): Store the name as a hashnode.
2380         (lookup_pragma_entry, insert_pragma_entry, do_pragma,
2381         cpp_register_pragma): Update accordingly.
2382
2383 2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2384
2385         * c-pragma.h (cpp_register_pragma_space): Remove.
2386         * cpplib.h (cpp_register_pragma_space): Remove.
2387         * cpplib.c (lookup_pragma_entry, insert_pragma_entry): New.
2388         (cpp_register_pragma_space): Remove.
2389         (cpp_register_pragma): Simplify using lookup_pragma_entry,
2390         add sanity checks.
2391         (do_pragma): Similarly.
2392         (_cpp_init_internal_pragmas): Don't register namespaces.
2393
2394         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS):
2395         Don't register namespaces.
2396         * cp/lex.c (init_cp_pragma): Similarly.
2397         * doc/tm.texi: Update.
2398
2399 2001-10-10  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2400
2401         PR c/4157
2402         * config/i386/cygwin.h: Add missing space to MINGW_INCLUDES
2403
2404 2001-10-13  Michael Collison  <collison@dhcp-12-114.townisp.com>
2405
2406         * config/dsp16xx/dsp16xx.md: Rewrite for more efficient code and
2407         add scheduling support.
2408         * config/dsp16xx/dsp16xx.h: Rewrite for more efficient code.
2409         * config/dsp16xx/dsp16xx.c: Rewrite for more efficient code.
2410         * config/dsp16xx/dsp16xx-protos.h: Add new function prototypes.
2411
2412
2413 2001-10-13  Hans-Peter Nilsson  <hp@axis.com>
2414
2415         * config/cris/cris.c (cris_legitimate_pic_operand): Kludge around
2416         missing CONSTANT_P test in core GCC.
2417
2418 2001-10-12  Neil Booth  <neil@daikokuya.demon.co.uk>
2419
2420         * cppmain.c (struct printer): New member source.
2421         (scan_translation_unit): Fix spacing at start of lines.
2422         (cb_line_change): Update.
2423
2424         * gcc.dg/cpp/spacing2.c: New test.
2425
2426 2001-10-12  Hans-Peter Nilsson  <hp@axis.com>
2427
2428         * config/cris/arit.c: Use __builtin_labs, not abs.
2429
2430         * config/cris/cris.h (SET_STRIPPABLE_EXECUTABLE): Don't define.
2431
2432         * config/cris/cris.c (cris_target_asm_function_epilogue): Move
2433         misplaced sprintf and fprintf argument.
2434
2435 2001-10-12  Zack Weinberg  <zack@codesourcery.com>
2436
2437         * ABOUT-NLS, aclocal.m4: Update i18n framework from gettext 0.10.40.
2438         * configure.in, Makefile.in: Take out obsolete check-po logic.
2439         * configure, config.in: Regenerate.
2440
2441 2001-10-12  Ziemowit Laski  <zlaski@apple.com>
2442
2443         * objc/objc-act.c (finish_objc): Correct precondition for emitting
2444         symtab declarations.
2445
2446 2001-10-12  Stan Shebs  <shebs@apple.com>
2447
2448         * config/rs6000/rs6000.c: Remove uses of "register" specifier in
2449         declarations of arguments and local variables.
2450
2451 2001-10-12  Christopher Faylor  <cgf@redhat.com>
2452
2453         * config/i386/cygwin.h: Revert erroneous checkin of crtbegin and
2454         ENDFILE_SPEC definition.
2455
2456 2001-10-12  Kazu Hirata  <kazu@hxi.com>
2457
2458         * gthr-dce.h: Fix comment formatting.
2459         * gthr-posix.h: Likewise.
2460         * gthr-single.h: Likewise.
2461         * gthr-solaris.h: Likewise.
2462         * gthr-vxworks.h: Likewise.
2463         * gthr-win32.h: Likewise.
2464
2465 2001-10-12  Jakub Jelinek  <jakub@redhat.com>
2466
2467         * final.c (output_asm_insn): Make sure assembly dialects are
2468         terminated, not nested.  Output `|' and `}' characters if they
2469         don't appear inside assembly dialect selection.
2470         * config/i386/i386.md (rep_movdi_rex64, rep_movsi, rep_movsi_rex64,
2471         rep_movqi, rep_movqi_rex64, rep_stosdi_rex64, rep_stossi,
2472         rep_stossi_rex64, rep_stosqi, rep_stosqi_rex64, strsetsi_1,
2473         strsetsi_rex_1): Add {} braces.
2474
2475 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
2476
2477         * toplev.c (compile_file): Ignore return value from yyparse.
2478         Always pop any nested binding levels after yyparse returns.
2479
2480 2001-10-11  Richard Henderson  <rth@redhat.com>
2481
2482         * doc/c-tree.texi (Expression trees): Add VTABLE_REF.
2483
2484 2001-10-11  Richard Henderson  <rth@redhat.com>
2485
2486         * dwarf2out.c (add_const_value_attribute): If long < HOST_WIDE_INT,
2487         fall back to add_AT_long_long for large CONST_INT.
2488
2489 2001-10-11  Richard Henderson  <rth@redhat.com>
2490
2491         * config/i386/i386.md (setcc splitters): Add four splitters to
2492         simplify compound compares that simplify_comparison can't handle.
2493
2494 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
2495
2496         * cpplex.c (digraph_spellings, token_spellings): Make static.
2497
2498 2001-10-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2499
2500         * unroll.c (loop_iterations): Fixup last patch.
2501
2502 2001-10-11  Richard Henderson  <rth@redhat.com>
2503
2504         * rtl.h (REG_VTABLE_REF): New.
2505         * rtl.c (reg_note_name): Add it.
2506         * combine.c (distribute_notes): Handle it.
2507         * final.c (final_scan_insn): Handle it.
2508         * tree.def (VTABLE_REF): New.
2509         * expr.c (expand_expr): Handle it.
2510         * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New.
2511         * output.h: Declare them.
2512
2513 2001-10-11  Richard Henderson  <rth@redhat.com>
2514
2515         * dwarf2out.c (rtl_for_decl_location): If no DECL_RTL, look
2516         for a DECL_INITIAL.
2517
2518 2001-10-11  David Edelsohn  <edelsohn@gnu.org>
2519
2520         * config/rs6000/xcoff.h (UNALIGNED_DOUBLE_INT_ASM_OP): Only
2521         available in 64-bit mode.
2522
2523 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
2524
2525         * config.gcc: Add cris-*-aout, cris-*-elf, cris-*-none,
2526         cris-*-linux* cases.
2527         * config/cris/cris-protos.h: New file.
2528         * config/cris/cris.c: New file.
2529         * config/cris/cris.h: New file.
2530         * config/cris/cris.md: New file.
2531         * config/cris/linux.h: New file.
2532         * config/cris/aout.h: New file.
2533         * config/cris/arit.c: New file.
2534         * config/cris/cris_abi_symbol.c: New file.
2535         * config/cris/mulsi3.asm: New file.
2536         * config/cris/t-aout: New file.
2537         * config/cris/t-cris: New file.
2538         * config/cris/t-elfmulti: New file.
2539         * config/cris/t-linux: New file.
2540         * doc/invoke.texi: Add CRIS options.
2541         * doc/install.texi (Specific): Add blurb for CRIS.
2542
2543 2001-10-10  Hartmut Schirmer <SchirmerH@Innovative-Systems.de>
2544
2545         * config/float-i128.h: Make sure __STDC__VERSION__ is defined
2546         before using it.
2547         * config/float/i32.h: Likewise.
2548         * config/float-i386.h: Likewise.
2549         * config/float-i64.h: Likewise.
2550         * config/float-m68k.h: Likewise.
2551         * config/float-sh.h: Likewise.
2552         * config/float-sparc.h: Likewise.
2553
2554 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
2555
2556         * doc/contrib.texi: Add note about CRIS port to my entry.
2557
2558 2001-10-11  Kazu Hirata  <kazu@hxi.com>
2559
2560         * basic-block.h: Fix formatting.
2561         * bitmap.h: Likewise.
2562         * cpplib.h: Likewise.
2563         * c-tree.h: Likewise.
2564         * diagnostic.h: Likewise.
2565         * flags.h: Likewise.
2566         * ggc.h: Likewise.
2567         * longlong.h: Likewise.
2568         * real.h: Likewise.
2569         * reload.h: Likewise.
2570         * rtl.h: Likewise.
2571         * tree.h: Likewise.
2572
2573 2001-10-10  Richard Henderson  <rth@redhat.com>
2574
2575         * c-parse.in (asm_operand): Allow named operands.
2576         * genconfig.c (max_recog_operands): Set to 29.
2577         * local-alloc.c (requires_inout): Skip multiple digits.
2578         * recog.c (asm_operand_ok): Likewise.
2579         (preprocess_constraints): Use strtoul for matching constraints.
2580         (constrain_operands): Likewise.
2581         * regmove.c (find_matches): Likewise.
2582         * reload.c (find_reloads): Likewise.
2583         * stmt.c (parse_output_constraint): Don't reject in-out
2584         constraint on operands > 9.  Reject '[' in constraint.
2585         (expand_asm_operands): Handle named operands.  Use strtoul
2586         for matching constraints.
2587         (check_operand_nalternatives): Split out from expand_asm_operands.
2588         (check_unique_operand_names): New.
2589         (resolve_operand_names, resolve_operand_name_1): New.
2590
2591         * doc/extend.texi (Extended Asm): Document named operands.
2592         * doc/md.texi (Simple Constraints): Document matching constraints
2593         on operands > 9.
2594
2595 2001-10-10  Richard Henderson  <rth@redhat.com>
2596
2597         * combine.c (try_combine): Handle a SEQUENCE of one insn.
2598
2599         * i386.c (test splitter): Narrow tests vs paradoxical subregs.
2600         (jcc splitters): Add two splitters to simplify compound compares
2601         that simplify_comparison can't handle.
2602
2603 2001-10-10  Richard Henderson  <rth@redhat.com>
2604
2605         * langhooks.c: Include langhooks.h.
2606         * Makefile.in (langhooks.o): Depend on it.
2607
2608 Wed Oct 10 23:49:06 EDT 2001  John Wehle  (john@feith.com)
2609
2610         * rtlanal.c (noop_move_p): Insns with a REG_RETVAL note
2611         should not be considered as a no-op.
2612         * flow.c (delete_noop_moves): Handle REG_LIBCALL notes.
2613
2614 2001-10-10  Stan Shebs  <shebs@apple.com>
2615
2616         * alias.c: Remove uses of "register" specifier in declarations
2617         of arguments and local variables.
2618         * c-common.c: Ditto.
2619         * c-convert.c: Ditto.
2620         * c-decl.c: Ditto.
2621         * c-format.c: Ditto.
2622         * c-semantics.c: Ditto.
2623         * c-typeck.c: Ditto.
2624         * caller-save.c: Ditto.
2625         * calls.c: Ditto.
2626         * cfg.c: Ditto.
2627         * cfgbuild.c: Ditto.
2628         * cfgrtl.c: Ditto.
2629         * collect2.c: Ditto.
2630         * combine.c: Ditto.
2631         * convert.c: Ditto.
2632         * cppexp.c: Ditto.
2633         * cppfiles.c: Ditto.
2634         * cse.c: Ditto.
2635         * dbxout.c: Ditto.
2636         * defaults.h: Ditto.
2637         * df.c: Ditto.
2638         * dwarf2out.c: Ditto.
2639         * dwarfout.c: Ditto.
2640         * emit-rtl.c: Ditto.
2641         * explow.c: Ditto.
2642         * expmed.c: Ditto.
2643         * expr.c: Ditto.
2644         * final.c: Ditto.
2645         * fix-header.c: Ditto.
2646         * floatlib.c: Ditto.
2647         * flow.c: Ditto.
2648         * fold-const.c: Ditto.
2649         * function.c: Ditto.
2650         * gcc.c: Ditto.
2651         * gcse.c: Ditto.
2652         * gen-protos.c: Ditto.
2653         * genattrtab.c: Ditto.
2654         * gencheck.c: Ditto.
2655         * genconfig.c: Ditto.
2656         * genemit.c: Ditto.
2657         * genextract.c: Ditto.
2658         * genflags.c: Ditto.
2659         * gengenrtl.c: Ditto.
2660         * genoutput.c: Ditto.
2661         * genpeep.c: Ditto.
2662         * genrecog.c: Ditto.
2663         * gensupport.c: Ditto.
2664         * global.c: Ditto.
2665         * gmon.c: Ditto.
2666         * graph.c: Ditto.
2667         * haifa-sched.c: Ditto.
2668         * hard-reg-set.h: Ditto.
2669         * hash.c: Ditto.
2670         * integrate.c: Ditto.
2671         * jump.c: Ditto.
2672         * lists.c: Ditto.
2673         * local-alloc.c: Ditto.
2674         * loop.c: Ditto.
2675         * mips-tdump.c: Ditto.
2676         * mips-tfile.c: Ditto.
2677         * optabs.c: Ditto.
2678         * prefix.c: Ditto.
2679         * print-rtl.c: Ditto.
2680         * read-rtl.c: Ditto.
2681         * real.c: Ditto.
2682         * recog.c: Ditto.
2683         * reg-stack.c: Ditto.
2684         * regclass.c: Ditto.
2685         * regmove.c: Ditto.
2686         * reload.c: Ditto.
2687         * reload1.c: Ditto.
2688         * reorg.c: Ditto.
2689         * resource.c: Ditto.
2690         * rtl.c: Ditto.
2691         * rtlanal.c: Ditto.
2692         * scan.c: Ditto.
2693         * sched-deps.c: Ditto.
2694         * sched-rgn.c: Ditto.
2695         * sdbout.c: Ditto.
2696         * simplify-rtx.c: Ditto.
2697         * stmt.c: Ditto.
2698         * stor-layout.c: Ditto.
2699         * toplev.c: Ditto.
2700         * tradcif.y: Ditto.
2701         * tradcpp.c: Ditto.
2702         * tree.c: Ditto.
2703         * unroll.c: Ditto.
2704         * varasm.c: Ditto.
2705         * xcoffout.c: Ditto.
2706
2707 2001-10-10  Richard Henderson  <rth@redhat.com>
2708
2709         * rtl.h (can_reverse_comparison_p): Remove.
2710
2711 2001-10-10  Christopher Faylor <cgf@redhat.com>
2712
2713         * config/i386/cygwin.h: Avoid adding include files if -nostdinc is
2714         used.
2715
2716 2001-10-10  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
2717
2718         * config/i386/mingw32.h (WIN32_NO_ABSOLUTE_INST_DIRS): New define.
2719         (Thanks to Chris Faylor for suggesting macro name).
2720         (CPP_PREDEFINES): Define __MINGW32__ but don't set value; add more
2721         WIN32 defines.
2722         (STANDARD_INCLUDE_DIR): Remove i386- from directory name.
2723         (STANDARD_INCLUDE_COMPONENT): Change to MINGW.
2724         (MATH_LIBRARY): Undef before definition.
2725         (OUTPUT_QUOTED_STRING): Likewise.
2726         * config/i386/cygwin.h: Use WIN32_NO_ABSOLUTE_INST_DIRS.
2727
2728 2001-10-10  Richard Henderson  <rth@redhat.com>
2729
2730         * unwind-dw2-fde.c (fde_compare_t): Change return type to int.
2731         (fde_unencoded_compare): Likewise.  Don't use subtraction to get
2732         a tristate comparison value.
2733         (fde_single_encoding_compare, fde_mixed_encoding_compare): Likewise.
2734
2735 2001-10-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2736
2737         PR c++/4512
2738         * unroll.c (loop_iterations): Ignore insns generated by loop
2739         unrolling.
2740
2741         * config.gcc (mips*-*-gnu*): Delete support.
2742         * config/mips/gnu.h: Remove.
2743
2744 2001-10-10  Kazu Hirata  <kazu@hxi.com>
2745
2746         * calls.c: Fix formatting.
2747         * c-decl.c: Likewise.
2748         * cfgcleanup.c: Likewise.
2749         * combine.c: Likewise.
2750         * cppfiles.c: Likewise.
2751         * cpplib.c: Likewise.
2752         * cppmacro.c: Likewise.
2753         * crtstuff.c: Likewise.
2754         * cse.c: Likewise.
2755         * dwarf2out.c: Likewise.
2756         * expmed.c: Likewise.
2757         * expr.c: Likewise.
2758         * fold-const.c: Likewise.
2759         * function.c: Likewise.
2760         * gcse.c: Likewise.
2761         * genattrtab.c: Likewise.
2762         * ggc-page.c: Likewise.
2763         * integrate.c: Likewise.
2764         * libgcc2.c: Likewise.
2765         * loop.c: Likewise.
2766         * optabs.c: Likewise.
2767         * profile.c: Likewise.
2768         * protoize.c: Likewise.
2769         * real.c: Likewise.
2770         * recog.c: Likewise.
2771         * reload1.c: Likewise.
2772         * reload.c: Likewise.
2773         * reorg.c: Likewise.
2774         * resource.c: Likewise.
2775         * sched-rgn.c: Likewise.
2776         * sdbout.c: Likewise.
2777         * stmt.c: Likewise.
2778         * toplev.c: Likewise.
2779         * varasm.c: Likewise.
2780
2781 2001-10-10  Janis Johnson  <janis187@us.ibm.com>, Alexandre Oliva  <aoliva@redhat.com>
2782
2783         * langhooks.c: Include rtl.h, insn-config.h and integrate.h.
2784         * Makefile.in (langhooks.o): Add dependencies.
2785
2786 Wed Oct 10 00:41:29 EDT 2001  John Wehle  (john@feith.com)
2787
2788         * rs6000.c (rs6000_emit_load_toc_table): Don't
2789         strdup the toc label.
2790         (create_TOC_reference): Likewise.
2791
2792 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
2793
2794         * config.gcc (i[34567]86-*-mingw32*): Make msvcrt-dependent
2795         version default.
2796
2797 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
2798
2799         * config/i386/i386.c (ix86_attribute_table): Correct
2800         min_len, max_len fields for dllimport, dllexport and shared.
2801
2802 2001-10-10  Joseph S. Myers  <jsm28@cam.ac.uk>
2803
2804         * doc/c-tree.texi, doc/cppinternals.texi, doc/extend.texi,
2805         doc/install.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi:
2806         Consistently use "nonzero" instead of "non-zero".
2807
2808 2001-10-09  Kazu Hirata  <kazu@hxi.com>
2809
2810         * acconfig.h: Fix comment formatting.
2811         * c-dump.h: Likewise.
2812         * c-tree.h: Likewise.
2813         * conditions.h: Likewise.
2814         * expr.h: Likewise.
2815         * function.h: Likewise.
2816         * gthr.h: Likewise.
2817         * hwint.h: Likewise.
2818         * integrate.h: Likewise.
2819         * intl.h: Likewise.
2820         * loop.h: Likewise.
2821         * optabs.h: Likewise.
2822
2823 2001-10-09  Kazu Hirata  <kazu@hxi.com>
2824
2825         * c-common.h: Fix comment formatting.
2826         * c-dump.c: Likewise.
2827         * cfg.c: Likewise.
2828         * diagnostic.h: Likewise.
2829         * except.c: Likewise.
2830         * gcc.h: Likewise.
2831         * gcov-io.h: Likewise.
2832         * genattrtab.c: Likewise.
2833         * output.h: Likewise.
2834         * predict.h: Likewise.
2835         * reload1.c: Likewise.
2836         * reload.h: Likewise.
2837         * resource.h: Likewise.
2838         * scan.h: Likewise.
2839         * system.h: Likewise.
2840         * tree.h: Likewise.
2841         * tree-inline.c: Likewise.
2842         * tsystem.h: Likewise.
2843         * varasm.c: Likewise.
2844         * xcoffout.h: Likewise.
2845
2846 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2847
2848         * doc/gcc.texi: Document preference for "nonzero" over "non-zero".
2849
2850 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2851
2852         * config/alpha/freebsd.h, config/alpha/lib1funcs.asm,
2853         config/i386/i386elf.h, config/i386/netbsd-elf.h,
2854         config/i386/netware.h, config/mcore/gfloat.h,
2855         config/mcore/mcore.c, config/mcore/mcore.h, config/mcore/mcore.md,
2856         config/netware.h, gccbug.in: Update FSF address.
2857
2858 2001-10-09  Kazu Hirata  <kazu@hxi.com>
2859
2860         * c-common.c: Fix comment typos.
2861         * cfgrtl.c: Likewise.
2862         * collect2.c: Likewise.
2863         * cpplex.c: Likewise.
2864         * doloop.c: Likewise.
2865         * dwarf2out.c: Likewise.
2866         * dwarfout.c: Likewise.
2867         * expr.c: Likewise.
2868         * fold-const.c: Likewise.
2869         * gcc.c: Likewise.
2870         * gcov.c: Likewise.
2871         * gcse.c: Likewise.
2872         * global.c: Likewise.
2873         * ifcvt.c: Likewise.
2874         * loop.c: Likewise.
2875         * optabs.c: Likewise.
2876         * protoize.c: Likewise.
2877         * regclass.c: Likewise.
2878         * reorg.c: Likewise.
2879         * rtl.h: Likewise.
2880         * stmt.c: Likewise.
2881         * tree.h: Likewise.
2882         * doc/cpp.texi: Likewise.
2883         * doc/c-tree.texi: Likewise.
2884         * doc/extend.texi: Likewise.
2885         * doc/invoke.texi: Likewise.
2886         * doc/objc.texi: Likewise.
2887         * doc/tm.texi: Likewise.
2888
2889 2001-10-08  Richard Henderson  <rth@redhat.com>
2890
2891         * varasm.c (set_named_section_flags): Initialize "declared".
2892
2893 2001-10-08  Robert Lipe  <robertlipe@usa.net>
2894
2895         * varasm.c (struct in_named_entry): Add declared.
2896         (named_section_first_declaration): New function.
2897         (default_elf_asm_named_section): Use it.
2898         * output.h (named_section_first_declaration): New.
2899
2900 2001-10-08  Richard Henderson  <rth@redhat.com>
2901
2902         * i386.md (movsi_xor): Export.
2903         (setcc peep2): Use it when available; add an alternative to
2904         match zero_extendhisi2_and.
2905
2906 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2907
2908         * romp-protos.h (romp_initialize_trampoline): New function.
2909         * romp.c (romp_initialize_trampoline): Likewise.
2910         * romp.h (INITIALIZE_TRAMPOLINE): Define in terms of
2911         romp_initialize_trampoline.
2912
2913 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2914
2915         * m68k/3b1.h (ASM_OUTPUT_SOURCE_LINE): Don't reference `last_linenum'.
2916         * m68k/auxas.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2917         * m68k/crds.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2918         * m68k/mot3300.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2919
2920 2001-10-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2921
2922         * unroll.c (loop_iterations): Extend check for multiple back edges.
2923
2924 2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
2925
2926         * langhooks.h: New file.
2927         * Makefile.in (OBJS): Added langhooks.o.
2928         (c-lang.o): Depend on langhooks.h.
2929         (c-common.o): Don't depend on tree-inline.h.
2930         (tree-inline.o): Depend on toplev.h.
2931         (langhooks.o): New rule.
2932         * c-common.c: Don't include tree-inline.h.
2933         (c_mark_lang_decl): Mark argument c as unused.
2934         (c_common_lang_init): Don't initialize hooks here.
2935         * c-lang.c: Include langhooks.h, then override some macros.
2936         (lang_hooks): Initialize with macros in langhooks.h.
2937         (c_init): Don't initialize hooks here.
2938         * toplev.c (struct lang_hooks_for_tree_inlining): New struct.
2939         (struct lang_hooks): Add tree_inlining.  Refer to langhooks.h.
2940         * tree-inline.c: Include toplev.h.  Don't define hook variables.
2941         * tree-inline.h: Don't define hook types nor declare hook
2942         variables.  Move macros to...
2943         * langhooks.c: ... new file, as functions.  Adjust all callers.
2944
2945 2001-10-08  Jeffrey A Law  <law@cygnus.com>
2946
2947         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Call
2948         purge_mem_unchanging_flag on all instructions, not just on those
2949         before NOTE_INSN_FUNCTION_BEG.
2950
2951 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2952
2953         * cppmacro.c (_cpp_create_definition): Leave comments off.
2954
2955         * doc/cpp.texi: Update.
2956
2957 2001-10-08  DJ Delorie  <dj@redhat.com>
2958
2959         * c-decl.c (grokfield): Make sure the only unnamed fields
2960         we're allowing are either structs or unions.
2961         * doc/extend.texi: Add documentation for the unnamed field
2962         extension.
2963
2964 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
2965
2966         * aclocal.m4 (gcc_AC_PROG_GNAT): New.
2967         * configure.in: Use it.
2968         * configure: Regenerated.
2969         * config/pa/t-linux, config/pa/t-pa, config/pa/t-pa64,
2970         config/pa/t-pro: Set T_ADAFLAGS, not ADA_CFLAGS.
2971
2972 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2973
2974         * cppfiles.c (open_file): Don't mark zero-length files
2975         never-reread here.  Don't output diagnostics here either.
2976         (stack_include_file): Mark them never-reread here.
2977         (_cpp_read_file): Update.
2978
2979 2001-10-08  Richard Henderson  <rth@redhat.com>
2980
2981         * config/i386/sol2.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
2982
2983 2001-10-08  Richard Henderson  <rth@redhat.com>
2984
2985         * expr.c (store_expr): When converting a CONST_INT for storage
2986         in a SUBREG, convert it to both SUBREG modes before stripping
2987         the SUBREG.
2988
2989 2001-10-08  Richard Henderson  <rth@redhat.com>
2990
2991         * varasm.c (restore_varasm_status): New.
2992         * function.h: Declare it.
2993         * function.c (pop_function_context_from): Call it.
2994
2995 2001-10-08  Richard Henderson  <rth@redhat.com>
2996
2997         * c-common.h (struct c_lang_decl): Add declared_inline.
2998         * c-tree.h (DECL_DECLARED_INLINE_P): New.
2999         * c-lang.c (c_disregard_inline_limits): Use it.
3000         * c-decl.c (duplicate_decls): Likewise.
3001         (pushdecl, redeclaration_error_message): Likewise.
3002         (pushdecl): Allocate DECL_LANG_SPECIFIC if needed.
3003         (grokdeclarator): Likewise.  Set DECL_DECLARED_INLINE_P.
3004         Set DECL_INLINE if -finline-functions.
3005         (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here.
3006
3007 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3008
3009         * cppmacro.c (funlike_invocation_p): Move some logic to caller
3010         in enter_macro_context.  Create a padding token in its own context
3011         if necessary when the search for '(' fails.
3012         (enter_macro_context): Update.
3013
3014 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3015
3016         * ChangeLog.2, c-decl.c, config/i386/i386.md, doc/gcc.texi, gcc.c,
3017         genmultilib, toplev.c: Fix spelling errors of "separate" as
3018         "seperate", and corresponding spelling errors of related words.
3019
3020 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3021
3022         * builtins.c (expand_builtin_setjmp_receiver): Const-ify.
3023         * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
3024         Likewise.
3025         * c-dump.c (dump_option_value_info): Likewise.
3026         * c-format.c (format_length_info, format_char_info,
3027         format_flag_spec, format_flag_pair, format_kind_info): Likewise.
3028         * collect2.c (names): Likewise.
3029         * cppdefault.h (default_include): Likewise.
3030         * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
3031         * flow.c (life_analysis): Likewise.
3032         * gcc.c (dir_separator_str, modify_target, option_map,
3033         target_option_translations, spec_list_1, extra_specs_1,
3034         init_spec): Likewise.
3035         * gcov.c (gcov_version_string): Likewise.
3036         * genattr.c (write_units): Likewise.
3037         * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
3038         * gengenrtl.c (rtx_definition, defs): Likewise.
3039         * genrecog.c (pred_table): Likewise.
3040         * global.c (global_alloc): Likewise.
3041         * lcm.c (optimize_mode_switching): Likewise.
3042         * local-alloc.c (find_free_reg): Likewise.
3043         * params.h (param_info): Likewise.
3044         * predict.c (predictor_info): Likewise.
3045         * protoize.c (unexpansion_struct): Likewise.
3046         * real.c (bmask): Likewise.
3047         * recog.h (insn_operand_data, insn_data): Likewise.
3048         * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
3049         * stmt.c (expand_nl_goto_receiver): Likewise.
3050         * toplev.c (da, debug_args, lang_opt, documented_lang_options,
3051         target_switches, target_options): Likewise.
3052         * tradcif.y (token, tokentab2, yylex): Likewise.
3053         * tree.h (attribute_spec): Likewise.
3054
3055         * alpha.c (override_options, alpha_lookup_xfloating_lib_func):
3056         Likewise.
3057         * arc.c (arc_output_function_epilogue): Likewise.
3058         * arm.c (processors, all_cores, all_architectures,
3059         arm_override_options, isr_attribute_arg, isr_attribute_args,
3060         arm_isr_value): Likewise.
3061         * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
3062         Likewise.
3063         * c4x.c (c4x_int_reglist): Likewise.
3064         * d30v.c (override_options): Likewise.
3065         * h8300.c (shift_insn): Likewise.
3066         * i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
3067         pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
3068         ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
3069         builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
3070         ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
3071         * i386.h (processor_costs, ix86_cost): Likewise.
3072         * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
3073         * m68hc11.h (processor_costs, m68hc11_cost): Likewise.
3074         * m68k.c (codes_68881, codes_FPA): Likewise.
3075         * m88k.c (mode_from_align, max_from_align, all_from_align,
3076         best_from_align, m_options): Likewise.
3077         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
3078         * mcore.c (mode_from_align): Likewise.
3079         * mips/elf64.h (UNIQUE_SECTION): Likewise.
3080         * mips/iris6gld.h (UNIQUE_SECTION): Likewise.
3081         * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
3082         * mips.h (mips_regno_to_class): Likewise.
3083         * ns32k.c (scales): Likewise.
3084         * pa.c (import_string, magic_milli): Likewise.
3085         * rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
3086         * sparc.c (leaf_reg_remap, sparc_override_options,
3087         reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
3088         Likewise.
3089         * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.
3090
3091 2001-10-07  Dale Johannesen  <dalej@apple.com>
3092
3093         * reload1.c (reload_reg_free_p): Teach register interference
3094         checking that multiple output reloads are emitted in
3095         reverse order.
3096         reload1.c (reload_reg_reaches_end_p):  Ditto.
3097         reload1.c (reloads_conflict):  Ditto.
3098
3099 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3100
3101         * doc/c-tree.texi, doc/tm.texi: Consistently put NULL and
3102         NULL_TREE inside @code.
3103
3104 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3105
3106         * doc/gcc.texi: Document consistent style of "32-bit",
3107         "Objective-C", and "@code{NULL}".
3108
3109 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
3110
3111         * cpplex.c (enum spell_type): Add SPELL_NUMBER.
3112         (cpp_token_len, cpp_spell_token, cpp_output_token,
3113         _cpp_equiv_tokens): Handle it.
3114         * cpplib.h (TTYPE_TABLE): Use SPELL_NUMBER for CPP_NUMBER and
3115         CPP_COMMENT, SPELL_NONE for CPP_PADDING and CPP_EOF.
3116         * cppexp.c (_cpp_parse_expr): Use the correct operator code in
3117         error messages.
3118
3119 Sat Oct  6 07:42:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3120
3121         * gcc.c (default_compilers): Remove .ada.
3122
3123 2001-10-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3124
3125         * doc/cppinternals.texi: Update.
3126
3127 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
3128
3129         * gcc.c (main): Set this_file_error if the appropriate
3130         compiler for a language has not been installed.
3131
3132 2001-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
3133
3134         * config/s390/s390.c (s390_va_arg): Use set_mem_alias_set.
3135
3136 2001-10-05  Joseph S. Myers  <jsm28@cam.ac.uk>
3137
3138         * gccbug.in (CATEGORIES): Add ada.
3139
3140 2001-10-05  Catherine Moore  <clm@redhat.com>
3141
3142         * config/stormy16/stormy-abi:  Document abi changes.
3143         * config/stormy16/stormy16.h (REG_ALLOC_ORDER): Redefine.
3144         (ICALL_REGS): New register class.
3145         (NUM_ARGUMENT_REGISTERS): Now 6.
3146         (DEFAULT_PCC_STRUCT_RETURN): Don't try to return structs
3147         in registers.
3148         (REG_CLASS_FROM_LETTER): Map 'z' to ICALL_REGS.
3149         * config/stormy16.md (call_internal, call_value_internal,
3150         indirect_jump): Use new 'z' constraint.
3151
3152 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3153
3154         * doc/cppinternals.texi: Update.
3155
3156 2001-10-05  Richard Henderson  <rth@redhat.com>
3157
3158         * dwarf2out.c (FRAME_BEGIN_LABEL): New.
3159         (output_call_frame_info): Use it instead of __FRAME_BEGIN__ and
3160         the gas section-name-as-label feature.
3161
3162 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3163
3164         * doc/cppinternals.texi: Update.
3165
3166 Fri Oct  5 08:17:46 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3167
3168         * config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode
3169         to ensure valid SImode constants.
3170
3171 2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
3172
3173         * Makefile.in (c-decl.o): Depend on tree-inline.h.
3174         (c-lang.o): Likewise, as well as insn-config.h and integrate.h.
3175         * c-decl.c: Include tree-inline.h.
3176         (c_expand_body): Call optimize_inline_calls. Determine whether
3177         a function is inlinable upfront, and only clear
3178         DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't.
3179         * c-lang.c: Include tree-inline.h, insn-config.h and integrate.h.
3180         (c_disregard_inline_limits): New function.
3181         (inline_forbidden_p, c_cannot_inline_tree_fn): Likewise.
3182         (c_post_options): Enable tree inlining if inlining is enabled.
3183         Don't inline trees when instrumenting functions.
3184         (c_init): Initialize lang_disregard_inline_limits and
3185         lang_cannot_inline_tree_fn.
3186         * tree-inline.c (initialize_inlined_parameters): Handle calls
3187         with fewer arguments than declared parameters, and fewer
3188         parameters than passed arguments.  Don't assume value is a
3189         DECL.
3190         (declare_return_variable): Convert return value back to the
3191         original type, if it was promoted.
3192         (tree_inlinable_function_p): New function.
3193         (inlinable_function_p): Don't look at DECL_INLINE if we're
3194         inlining all functions.  Make it work with a NULL id.
3195         Re-check DECL_UNINLINABLE after language-specific checks.
3196         * tree-inline.h (tree_inlinable_function_p): Declare it.
3197         * integrate.c (save_for_inline): Don't bother to prepare argvec
3198         when not inlining.
3199         * cse.c (check_for_label_ref): Don't check deleted labels.
3200
3201         * Makefile.in (tree-inline.o): Depend on newly-included headers.
3202         * tree-inline.c: Include headers needed for the functions moved in.
3203         (struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c.
3204         (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
3205         (copy_body, initialize_inlined_parameters): Likewise.
3206         (declare_return_variable, inlinable_function_p): Likewise.
3207         (expand_call_inline, expand_calls_inline): Likewise.
3208         (optimize_inline_calls, clone_body): Likewise.
3209         (walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c.
3210         (copy_tree_r, remap_save_expr): Likewise.
3211
3212 2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
3213
3214         * Makefile.in (OBJS): Added tree-inline.o.
3215         (c-common.o): Depend on tree-inline.h.
3216         (tree-inline.o): New target.
3217         * c-common.c: Include tree-inline.h.
3218         (c_mark_lang_decl): Don't mark saved_tree.
3219         (c_common_lang_init): Set lang_anon_aggr_type_p.
3220         * c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h.
3221         (struct c_lang_decl): Moved saved_tree to tree_decl.
3222         * ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs.
3223         * integrate.h (function_attribute_inlinable_p): Declare it.
3224         * integrate.c (function_attribute_inlinable_p): Export it.
3225         * tree-inline.c: New file.  Define variables declared in...
3226         * tree-inline.h: New file.  Declare functions to be moved to
3227         tree-inline.c.  Define macros and declare types and hooks for
3228         language-specific tree inlining.
3229         (flag_inline_trees): Moved definition from cp/decl2.c.
3230         * tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h.
3231         (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h.
3232         (struct tree_decl): Moved saved_tree from c_lang_decl and
3233         inlined_fns from C++'s lang_decl.
3234
3235 2001-10-04  Loren J. Rittle  <ljrittle@acm.org>
3236
3237         * Makefile.in (STAGE2_FLAGS_TO_PASS): Remove patches which
3238         propagated HOST_CC, HOST_CFLAGS, HOST_LDFLAGS and HOST_CPPFLAGS.
3239
3240 2001-10-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3241
3242         * doc/cppinternals.texi: Update.
3243
3244 2001-10-04  Eric Christopher  <echristo@redhat.com>
3245
3246         * config/mips/mips.c (init_cumulative_args): Remember to set
3247         cum->prototype.
3248         * config.gcc: Redo linux configuration. Add target_cpu_default
3249         of soft-float to all mipsisa32 combinations and tx39.
3250         * config/mips/linux.h: Remove include of mips.h.
3251
3252 2001-10-03  Loren J. Rittle  <ljrittle@acm.org>
3253
3254         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CFLAGS,
3255         HOST_LDFLAGS and HOST_CPPFLAGS.
3256
3257 2001-10-03  Ziemowit Laski  <zlaski@apple.com>
3258
3259         * c-parse.in (objc_inherit_code, objc_pq_context,
3260         objc_public_flag): Make static.
3261         (objc_interface_context, objc_implementation_context,
3262         objc_method_context, objc_ivar_chain, objc_ivar_context): Move to
3263         global tree array in objc/objc-act.[ch].
3264         (methoddef): Remove unnecessary code.
3265
3266         * objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry):
3267         Hoist struct definitions to objc-act.h.
3268         (nst_method_hash_list, cls_method_hash_list, imp_list, imp_count,
3269         cat_count): Place declaration in objc-act.h.
3270         (objc_tree_index): Move enumeration to objc-act.h.
3271         (objc_global_trees): Place declaration and macro accessors in
3272         objc-act.h.
3273         (implementation_context): Remove duplicate; use
3274         objc_implementation_context instead:
3275         (method_context): Remove duplicate; use objc_method_context
3276         instead.
3277         (objc_ellipsis_node, objc_method_prototype_template,
3278         implemented_classes, function_type): Move global vars to
3279         objc_global_trees.
3280         (init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE.
3281         (build_message_expr): Move actual construction of ObjC message
3282         send nodes to finish_message_expr.
3283         (finish_message_expr): New routine, contains code formerly in
3284         build_message_expr.
3285         * objc/objc-act.h (finish_message_expr): New prototype.
3286         (objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove
3287         declarations; these vars are now part of objc_global_trees.
3288         (objc_tree_index, objc_global_trees): Move definitions from
3289         objc-act.c.
3290         * objc/objc-tree.def: Update copyright info.
3291
3292 Wed Oct  3 12:22:11 EDT 2001  John Wehle  (john@feith.com)
3293
3294         * dwarf2asm.c (unaligned_integer_asm_op): Abort if
3295         op is NULL.
3296         * sparc/sysv4.h (UNALIGNED_DOUBLE_INT_ASM_OP): Use
3297         only if TARGET_ARCH64.
3298
3299 2001-10-02  Bernd Schmidt  <bernds@redhat.com>
3300
3301         * doc/extend.texi: Fix some problems with previous checkin.
3302         * doc/invoke.texi: Likewise.
3303
3304 2001-10-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3305
3306         * cpphash.h: Update comments.
3307         (cpp_context): Update.
3308         (spec_nodes): Remove n__Pragma.
3309         * cppinit.c (cpp_create_reader): Update.
3310         (builtin_array): Add _Pragma.
3311         * cpplib.h: Update comments.
3312         (NODE_DISABLED, BT_PRAGMA): New.
3313         (cpp_start_lookahead, cpp_stop_lookahead): Remove prototypes.
3314         * cppmacro.c (struct cpp_macro): Remove disabled.
3315         (builtin_macro): Return int, handle _Pragma, push the new token
3316         on the context stack.
3317         (funlike_invocation_p): Unconstify, update.
3318         (enter_macro_context): Handle builtins here.
3319         (replace_args, push_token_context, push_ptoken_context):
3320         Update for prototype changes.
3321         (_cpp_pop_context): Update.
3322         (cpp_get_token): Don't handle buitins, nor _Pragma here.
3323         (cpp_sys_macro_p): Update.
3324         (_cpp_free_definition): Clear disabled flag.
3325         (_cpp_create_definition): Upate.
3326         * cppmain.c: Update comments.
3327
3328 Tue Oct  2 12:46:01 CEST 2001  Bo Thorsen     <bo@suse.co.uk>,
3329                                 Andreas Jaeger <aj@suse.de>,
3330                                 Jan Hubicka    <jh@suse.cz>
3331
3332         * doc/invoke.texi (i386 Options): Document x86-64 options.
3333         (i386 and x86-64 Options): Rename i386 options section.
3334
3335         * config/i386/i386.h (TARGET_UNWIND_INFO): New.
3336         (TARGET_SWITCHES): Add -munwind-info.
3337         (MASK_NO_UNWIND_INFO): New.
3338         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define for
3339         biarch compilation.
3340         (ASM_OUTPUT_DOUBLE_INT): New.
3341
3342         * config/i386/linux64.h: New spec file for Linux x86-64 support.
3343         * config.gcc: Fix tm_file settings for x86-64.
3344         * config/i386/x86-64.h: New file with OS independent x86-64
3345         definitions.
3346         * config/i386/biarch64.h: New file used to configure compiler
3347         to biarch/64bit compilation.
3348
3349         * config/i386/i386.c: (override_options): Set flags default
3350         for 64bit compilation.
3351
3352 Tue Oct  2 12:46:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
3353
3354         * i386.c (legitimize_pic_address): Add missing bits of 64bit support.
3355         (ix86_expand_int_movcc): Optimize DImode conditional moves with
3356         constants on x86_64.
3357         (ix86_attr_length_immediate_default): Support MODE_DI.
3358         * i386.md (fixdi splitter): Add missing "&& 1" in splitter
3359         condition.
3360         (indirect_jump, tablejump): Turn into expander.
3361
3362 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3363
3364         * c-common.c (c_format_attribute_table): Make format and
3365         format_arg attributes apply to function types rather than to
3366         decls.
3367         (is_valid_printf_arglist): Construct an attribute list and pass
3368         that to check_function_format rather than a name.
3369         * c-common.h (check_function_format): Adjust prototype.
3370         * c-decl.c (duplicate_decls): Preserve attributes from type of
3371         built-in decl when allowing for harmless conflict in types.
3372         * c-format.c (record_function_format,
3373         record_international_format, function_format_list,
3374         international_format_info, international_format_list): Remove.
3375         (function_format_info): Remove next, name and assembler_name.
3376         Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
3377         (decode_format_attr): New.
3378         (handle_format_attribute): Handle receiving a type rather than a
3379         decl.  Call decode_format_attr.  Store format information in a
3380         function_format_info.
3381         (handle_format_arg_attribute): Correct comment.  Handle receiving
3382         a type rather than a decl.  Use unsigned HOST_WIDE_INT for
3383         arg_num.
3384         (check_format_info_recurse, check_format_info_main): Take argument
3385         numbers as unsigned HOST_WIDE_INT.
3386         (check_function_format): Take a list of attributes from the
3387         function type rather than a name or assembler name.  Check for
3388         format attributes in that list and the attributes on the type of
3389         the current function rather than looking through
3390         function_format_list.
3391         (check_format_info): Use unsigned HOST_WIDE_INT for argument
3392         numbers.
3393         (check_format_info_recurse): Take format_arg attributes from the
3394         type of the function calls rather than using
3395         international_format_list.  Allow for multiple format_arg
3396         attributes.
3397         * c-typeck.c (build_function_call): Pass type attributes to
3398         check_function_format rather than name or assembler name.  Don't
3399         require there to be a name or assembler name to check formats.
3400
3401 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3402
3403         * attribs.c (decl_attributes): Possibly call
3404         insert_default_attributes to insert default attributes on
3405         functions in a lazy manner.
3406         * builtin-attrs.def: New file; define the default format and
3407         format_arg attributes.
3408         * c-common.c (c_format_attribute_table): Move to earlier in the
3409         file.
3410         (c_common_nodes_and_builtins): Initialize format_attribute_table.
3411         (enum built_in_attribute, built_in_attributes,
3412         c_attrs_initialized, c_init_attributes,
3413         c_common_insert_default_attributes): New.
3414         (c_common_lang_init): Don't initialize format_attribute_table.  Do
3415         call c_init_attributes.
3416         * Makefile.in (c-common.o): Depend on builtin-attrs.def.
3417         * c-common.h (init_function_format_info): Don't declare.
3418         (c_common_insert_default_attributes): Declare.
3419         * c-decl.c (implicitly_declare, builtin_function): Call
3420         decl_attributes.
3421         (init_decl_processing): Don't call init_function_format_info.
3422         (insert_default_attributes): New.
3423         * c-format.c (handle_format_attribute,
3424         handle_format_arg_attribute): Be quiet about inappropriate
3425         declaration when applying default attributes.
3426         (init_function_format_info): Remove.
3427         * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
3428         (insert_default_attributes): Declare.
3429
3430 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3431
3432         * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94.
3433
3434 2001-10-01  Jim Wilson  <wilson@redhat.com>
3435
3436         * sched-deps.c (add_dependence): When elide conditional dependence,
3437         check that insn doesn't modify cond2.
3438
3439 2001-10-01  Dale Johannesen  <dalej@apple.com>
3440
3441         * config/rs6000/rs6000.h (enum processor_type): Add support
3442         for 7400 (G4) and 7450.
3443         (RTX_COSTS): Ditto.
3444         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
3445         (rs6000_issue_rate): Ditto.
3446         (rs6000_adjust_cost): Fix cycle counts for compares.
3447         (debug_stack_info):  Fix an obvious typo.
3448         * config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
3449         * doc/invoke.texi: Document.
3450         * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
3451         for Darwin.
3452         (PROCESSOR_DEFAULT): Ditto.
3453
3454 2001-10-01  Loren J. Rittle  <ljrittle@acm.org>
3455
3456         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
3457         (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
3458         later recursive make invocation.
3459
3460 2001-10-01  Hans Boehm  <boehm@acm.org>
3461
3462         * optabs.c (emit_libcall_block): When using non-call exceptions,
3463         don't add REG_LIBCALL reg notes to trapping calls.
3464
3465 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
3466
3467         * flow.c (propagate_block_delete_libcall): Remove unused first arg
3468         (propagate_one_insn):  Update for above change
3469
3470 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
3471
3472         * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase,
3473         _Unwind_GetTextRelBase): Argument is unused.
3474
3475 Mon Oct  1 19:20:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3476
3477         * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
3478         Loop through NOPs, placeholders, and components.
3479         Don't go through NOPs if change mode.
3480         (record_alias_subset): Do nothing if SUBSET and SET are the same.
3481         * emit-rtl.c (set_mem_alias_set): Enable check.
3482         * expr.c (find_placeholder): New function.
3483         (expand_expr, case PLACEHOLDER_EXPR): Use it.
3484         (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
3485         to modify it and avoid unneeded copies.
3486         * expr.h (expand_expr): Always define.
3487         (find_placeholder): New declaration.
3488
3489 2001-10-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3490
3491         * config/m68hc11/m68hc11.md ("add-split"): Fix add split when
3492         operand 2 is the stack pointer.
3493         ("addr-peephole"): Fix address computation peephole when operand 2
3494         is the stack pointer.
3495
3496 Mon Oct  1 09:26:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3497
3498         * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.
3499         (ix86_setup_incoming_varargs): Likewise.
3500
3501 2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
3502
3503         * stor-layout.c (layout_type): Don't complain about too-large
3504         array here.
3505
3506 Mon Oct  1 06:43:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3507
3508         * function.c (keep_stack_depressed): Don't use delete_insn.
3509
3510         * expr.h (set_mem_alias_set): Move decl to here.
3511         * rtl.h (mem_attrs): New typedef and struct.
3512         (union rtunion_def): Add field for mem_attrs.
3513         (X0MEMATTR, MEM_ATTRS): New macros.
3514         (MEM_ALIAS_SET): Use MEM_ATTRS.
3515         (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
3516         (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
3517         (set_mem_alias_set): Delete decl from here.
3518
3519         * alias.c (set_mem_alias_set): Delete from here.
3520         * emit-rtl.c (mem_attrs_htab): New variable.
3521         (rtx_htab_mark, rtx_htab_mark_1): Deleted.
3522         (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
3523         (mem_attrs_mark, get_mem_attrs): Likewise.
3524         (gen_rtx_MEM): Clear MEM_ATTRS.
3525         (set_mem_attributes): Move to here.
3526         (set_mem_alias_set): Likewise, and call get_mem_attrs.
3527         (init_emit_once): const_int_htab now deletable htab.
3528         Initialize mem_attrs_htab.
3529         * explow.c (set_mem_attributes): Delete from here.
3530         * function.c (put_var_into_stack): Clear MEM_ATTRS.
3531         (gen_mem_addressof): Likewise; rework to use set_mem_attributes.
3532         * ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
3533         * reload1.c (reload): Rework changing REG to MEM.
3534
3535 2001-09-30  H.J. Lu <hjl@gnu.org>
3536
3537         * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
3538         * config.in: Rebuild.
3539
3540 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3541
3542         * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
3543         ("tsthi_1"): Avoid allocation in register y.
3544         ("*movqi_68hc12"): Reorganize and fix constraints.
3545         ("zero_extendqisi2"): Prefer d over x and y for operand 1.
3546         ("addqi3"): Likewise.
3547         ("addhi3"): Fix constraints.
3548         ("*logicalhi3_zexthi"): Disparage soft registers.
3549
3550 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3551
3552         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
3553         to tmp reg.
3554
3555 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3556
3557         * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
3558         that we use setjmp/longjmp exceptions.
3559
3560 2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
3561
3562         * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
3563         POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
3564         struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
3565         _cpp_pool_alloc, _cpp_next_chunk): Remove.
3566         (_cpp_extend_buff, BUFF_ROOM): Update.
3567         (_cpp_append_extend_buff): New.
3568         (struct cpp_reader): Remove macro_pool, add a_buff.
3569         * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
3570         macro_pool.
3571         (cpp_destroy): Free a_buff instead of macro_pool.
3572         * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
3573         new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
3574         _cpp_pool_alloc, ): Remove.
3575         (parse_number, parse_string): Update use of _cpp_extend_buff.
3576         (_cpp_extend_buff): Update.
3577         (_cpp_append_extend_buff, cpp_aligned_alloc): New.
3578         * cpplib.c (glue_header_name, parse_answer):
3579         Update use of _cpp_extend_buff.
3580         (cpp_register_pragma, cpp_register_pragma_space): Use
3581         _cpp_aligned_alloc.
3582         (do_assert, do_unassert): Check for EOL, update.
3583         * cppmacro.c (stringify_arg, collect_args): Update to use
3584         _cpp_extend_buff and _cpp_append_extend_buff.
3585         (save_parameter, parse_params, alloc_expansion_token,
3586         _cpp_create_definition): Rework memory management.
3587
3588 2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
3589
3590         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
3591         update md_exec_prefix.
3592         (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
3593         to string constant.
3594
3595 2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3596
3597         * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
3598         (SELECT_CC_MODE): Use s390_select_ccmode.
3599         * config/s390/s390-protos.h (s390_select_ccmode): Add.
3600         * config/s390/s390.c (s390_select_ccmode): New.
3601         (s390_match_ccmode): Add CCLmode.
3602         (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
3603         (output_branch_condition, output_inverse_branch_condition): Removed.
3604         (print_operand): Use s390_branch_condition_mnemonic.
3605         * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
3606         subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
3607         (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
3608
3609         * config/s390/s390.c (check_and_change_labels): Preserve CC mode
3610         when converting conditional branches to far branches.
3611         * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
3612         cmpint_di): Use CCSmode instead of CCUmode.
3613
3614         * config/s390/s390.c (legitimate_la_operand_p): New.
3615         * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
3616         * config/s390/s390.md (movsi): Convert load address patterns to
3617         arithmetic operations when necessary.
3618         (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
3619         (do_la): Renamed to *do_la and use legitimate_la_operand_p.
3620         (*do_la_reg_0): Don't use before reload.
3621
3622         * config/s390/s390.c (legitimize_address): Make more efficient
3623         use of two-register addressing mode.
3624
3625         * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
3626         with -mno-backchain in some corner cases.
3627
3628         * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
3629
3630 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
3631
3632         * reload.c (find_reloads): Mark new USE insns with QImode.
3633         (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
3634         find_reloads_subreg_address): Likewise.
3635         * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
3636         encountered.
3637         * reload1.c (reload_combine_note_use): Likewise, inside USEs and
3638         CLOBBERs.
3639         (reload): Make sure there are no USEs with mode other than
3640         VOIDmode.  At the end, remove those marked with QImode.
3641
3642 2001-09-29  Per Bothner  <per@bothner.com>
3643
3644         * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
3645         * Makefile.in (includedir):  Rename to local_includedir.
3646         (includedir):  Define as $(prefix)/include.
3647         * config.in (PREFIX_INCLUDE_DIR):  New variable.
3648         * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
3649
3650 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
3651
3652         * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
3653         storehps builtins.
3654         * doc/extend.texi (Vector Extensions): New node.
3655         * doc/invoke.texi (Machine Dependent Options): Add documentation for
3656         i386 -mmmx, -msse, -m3dnow.
3657
3658 Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
3659
3660         * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
3661
3662 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
3663
3664         * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
3665
3666         * doc/invoke.texi (Optimize Options): Delete spurious @table.
3667
3668 2001-09-28  Richard Henderson  <rth@redhat.com>
3669
3670         * varasm.c (assemble_integer): Bound alignment check by
3671         BIGGEST_ALIGNMENT.
3672
3673         * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
3674
3675 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3676
3677         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
3678
3679 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
3680
3681         Mostly from Graham Stott  <grahams@redhat.com>
3682         * c-common.c (type_for_mode): Add support for V2SFmode.
3683         * tree.c (build_common_tree_nodes_2): Likewise.
3684         * tree.h (enum tree_index, global_trees): Likewise.
3685         * config/i386/i386.c (x86_3dnow_a): New variable.
3686         (override_options): Support 3Dnow extensions.
3687         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
3688         Athlon's version of 3Dnow.
3689         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
3690         (ix86_expand_builtin): Handle them.
3691         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
3692         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
3693         TARGET_3DNOW_A): New macros.
3694         (TARGET_SWITCHES): Add 3Dnow switches.
3695         (VALID_MMX_REG_MODE_3DNOW): New macro.
3696         (VECTOR_MODE_SUPPORTED_P): Use it.
3697         (enum ix86_builtins): Add entries for 3Dnow builtins.
3698         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
3699         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
3700         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
3701         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
3702         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
3703         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
3704         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
3705         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
3706         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
3707         sfence_insn, prefetch): Make these available if TARGET_SSE or
3708         TARGET_3DNOW_A.
3709
3710 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
3711
3712         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
3713         ix86_va_start, ix86_build_va_list): Declare.
3714         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
3715         ix86_va_start, ix86_build_va_list): New global functions.
3716         * i386.md (sse_prologue_save_insn): New insn.
3717         (sse_prologue_save): New expander.
3718         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
3719         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
3720
3721 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3722
3723         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
3724         Use size_t everywhere, make definitions consistent with
3725         prototypes.
3726
3727 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
3728
3729         * gcse.c (replace_store_insn): Use delete_insn.
3730         * loop.c (move_movables): Likewise; avoid delete_insn
3731         from clobbering notes moved elsewhere.
3732         (check_dbra_loop): Use delete_insn.
3733         * ssa.c (convert_from_ssa): Likewise.
3734         * cse.c (cse_insn): Use delete_insn.
3735
3736 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3737
3738         * cpphash.h (struct cpp_buff): Make unsigned.
3739         (_cpp_get_buff): Take length of size_t.
3740         (_cpp_unaligned_alloc): New.
3741         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
3742         (struct cpp_reader): Remove ident_pool.  Add u_buff.
3743         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
3744         (cpp_destroy): Destroy u_buff, not ident_pool.
3745         * cpplex.c (parse_number, parse_string, save_comment,
3746         cpp_token_as_text): Update to use the unaligned buffer.
3747         (new_buff): Make unsigned.
3748         (_cpp_unaligned_alloc): New.
3749         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
3750         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
3751         Similarly.
3752         (collect_args): Make unsigned.
3753
3754 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
3755
3756         * cpplex.c (cpp_output_token): Use a putc loop for
3757         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
3758
3759         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
3760         * configure, config.in: Regenerate.
3761         * system.h: Replace fwrite and fprintf with their unlocked
3762         variants if available.
3763
3764 2001-09-27  Richard Henderson  <rth@redhat.com>
3765
3766         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
3767         in favour of .eh_frame.
3768
3769 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
3770
3771         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
3772         to macros.
3773         (LIBCALL_VALUE): Likewise.
3774
3775 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3776
3777         * cpphash.h: Update comment.
3778         * cpplex.c: Update comments.
3779         (_cpp_can_paste): Remove.
3780         * cpplib.h (_cpp_can_paste): Remove.
3781         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
3782         lexer rather than _cpp_can_paste.
3783
3784 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3785
3786         * doc/cppinternals.texi: Update.
3787
3788 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3789
3790         * cpphash.h (struct cpp_pool): Remove locks and locked.
3791         (struct cpp_context): Add member buff.
3792         (struct cpp_reader): Remove member argument_pool.
3793         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
3794         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
3795         * cpplex.c (chunk_suitable): Remove pool argument.
3796         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
3797         (new_buff, _cpp_extend_buff): Update.
3798         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
3799         which buffer is returned.
3800         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
3801         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
3802         * cppmacro.c (lock_pools, unlock_pools): Remove.
3803         (push_ptoken_context): Take a _cpp_buff.
3804         (enter_macro_context): Pool locking removed.
3805         (replace_args): Use a _cpp_buff for the replacement list with
3806         arguments replaced.
3807         (push_token_context): Clear buff.
3808         (expand_arg): Use _cpp_pop_context.
3809         (_cpp_pop_context): Free a context's buffer, if any.
3810
3811 2001-09-26  DJ Delorie  <dj@redhat.com>
3812
3813         * c-typeck.c (digest_init): Check for sizeless arrays.
3814
3815 2001-09-26  Richard Henderson  <rth@redhat.com>
3816
3817         * optabs.c (init_one_libfunc): Create a dummy function type
3818         instead of using error_mark_node.
3819
3820 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3821
3822         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
3823         _cpp_extend_buff, _cpp_free_buff): New.
3824         (struct cpp_reader): New member free_buffs.
3825         * cppinit.c (cpp_destroy): Free buffers.
3826         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
3827         _cpp_extend_buff, _cpp_free_buff): New.
3828         * cpplib.h (struct cpp_options): Remove unused member.
3829         * cppmacro.c (collect_args): New.  Combines the old parse_arg
3830         and parse_args.  Use _cpp_buff for memory allocation.
3831         (funlike_invocation_p, replace_args): Update.
3832
3833 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
3834
3835         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
3836
3837 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
3838
3839         * except.c (sjlj_mark_call_sites): Change address inside sequence.
3840
3841 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
3842
3843         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
3844         glibc.
3845
3846 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
3847             Jim Wilson  <wilson@redhat.com>
3848
3849         * doc/install.texi (Specific, ia64-*-linux): Document.
3850
3851 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
3852
3853         * Makefile.in (cfgrtl.o): Add.
3854         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
3855         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
3856         free_aux_for_edge): Declare.
3857         * cfg.c
3858         (HAVE_return): Undefine.
3859         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
3860         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
3861         free_aux_for_edge): New global functions.
3862         (first_delete_block): New static variable.
3863         (init_flow): Clear first_delete_block.
3864         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
3865          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
3866          try_redirect_by_replacing_jump, last_loop_beg_note,
3867          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
3868          delete_insn, delete_insn_chain, create_basic_block_structure,
3869          create_basic_block, flow_delete_block, compute_bb_for_insn,
3870          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
3871          set_block_for_new_insns, split_block, merge_blocks_nomove,
3872          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
3873          redirect_edge_and_branch, force_nonfallthru_and_redirect,
3874          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
3875          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
3876          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
3877          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
3878          purge_all_dead_edges): Move to ....
3879         * cfgrtl.c: New file; .... Here.
3880
3881         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
3882         (reroder_basic_block): Use alloc_aux_for_blocks.
3883         * predict.c (estimate_bb_frequencies): Likewise; use
3884         alloc_aux_for_edges.
3885         * profile.c (compute_branch_probabilities): Likewise.
3886         (branch_prob): Likewise.
3887         * reg-stack.c (reg_to_stack): Likewise.
3888
3889         * emit-rtl.c (emit_insns_after): Never return NULL.
3890
3891         * basic-block.h (set_block_for_new_insns): Delete.
3892         * cfgrtl.c (set_block_for_new_insns): Delete.
3893
3894         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
3895         calls when crossjumping.
3896
3897         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
3898         * unroll.c (copy_loop_body): Use delete_insn.
3899
3900         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
3901         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
3902         keep_stack_depressed): Likewise.
3903         * gcse.c (cprop_cc0_jump): Likewise.
3904         * local-alloc.c (update_equiv_regs): Likewise.
3905         * loop.c (scan_loop, loop_delete_insns): Likewise.
3906         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
3907         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
3908         delete_output_reload, delete_address_reloads_1,
3909         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
3910         Likewise.
3911         * sibcall.c (replace_call_placeholder): Likewise.
3912         * cse.c (cse_insn): Likewise.
3913
3914 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
3915
3916         From Graham Stott  <grahams@redhat.com>
3917         (def_builtin): Only define builtins appropriate for target_flags.  All
3918         callers changed.
3919         (builtin_decsription): Add new field mask which is used to determine
3920         when to define the builtin via the macro def_builtin.
3921
3922         (bdesc_comi): Initialise new mask fields.
3923         (bdesc_2srg): Likewise.
3924         (bdesc_1arg): Likewise.
3925
3926         * config/i386/i386.c (ix86_init_builtins): Correct return type
3927         building v4hi_ftype_v4hi_int_int tree node.
3928         (ix86_expand_sse_comi): Fix typo swapping operands.
3929         Don't swap comparision condition, it is already swapped.
3930         (ix86_expand_sse_compare): Before swapping operands
3931         move operand 1 into new rtx and not the target rtx.
3932         Don't swap comparison condition, it is already swapped.
3933         Always check whether we need to create a new TARGET.
3934
3935         * config/i386/i386.md: (sse_comi) Fix typos.
3936         (sse_ucomi): Likewise.
3937         (cvtss2si): Fix operand 0 contraint.
3938         (cvttss2si): Likewise.
3939         (sse_unpckhps): Fix mode for operand 2.
3940         (sse_unpcklps): Likewise.
3941
3942 2001-09-25  Graham Stott  <grahams@redhat.com>
3943
3944         * sibcall.c (skip_copy_to_return_value): Tighten return value
3945         copy check.
3946
3947 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
3948
3949         * rs6000.c (lwa_operand): Address must be word aligned.
3950
3951 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3952
3953         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
3954         number has been set.
3955         (type_hash_mark): Mark type itself.
3956
3957 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
3958
3959         * c-lex.c (cb_def_pragma): Update.
3960         (c_lex): Update, and skip padding.
3961         * cppexp.c (lex, parse_defined): Update, remove unused variable.
3962         * cpphash.h (struct toklist): Delete.
3963         (union utoken): New.
3964         (struct cpp_context): Update.
3965         (struct cpp_reader): New members eof, avoid_paste.
3966         (_cpp_temp_token): New.
3967         * cppinit.c (cpp_create_reader): Update.
3968         * cpplex.c (_cpp_temp_token): New.
3969         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
3970         (cpp_output_token): Don't print leading whitespace.
3971         (cpp_output_line): Update.
3972         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
3973         do_include_common, do_line, do_ident, do_pragma,
3974         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
3975         parse_assertion): Update.
3976         (get_token_no_padding): New.
3977         * cpplib.h (CPP_PADDING): New.
3978         (AVOID_LPASTE): Delete.
3979         (struct cpp_token): New union member source.
3980         (cpp_get_token): Update.
3981         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
3982         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
3983         replace_args, quote_string, stringify_arg, parse_arg, next_context,
3984         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
3985         _cpp_backup_tokens, _cpp_create_definition): Update.
3986         (push_arg_context): Delete.
3987         (padding_token, push_token_context, push_ptoken_context): New.
3988         (make_string_token, make_number_token): Update, rename.
3989         (cpp_get_token): Update to handle tokens as pointers to const,
3990         and insert padding appropriately.
3991         * cppmain.c (struct printer): New member prev.
3992         (check_multiline_token): Constify.
3993         (do_preprocessing, cb_line_change): Update.
3994         (scan_translation_unit): Update to handle spacing.
3995         * scan-decls.c (get_a_token): New.
3996         (skip_to_closing_brace, scan_decls): Update.
3997         * fix-header.c (read_scan_file): Update.
3998
3999         * doc/cpp.texi: Update.
4000
4001 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4002
4003         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
4004         leak by passing malloc'ed pointer to reconcat, not concat.
4005
4006 2001-09-24  DJ Delorie  <dj@redhat.com>
4007
4008         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
4009
4010 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
4011
4012         * flow.c (delete_dead_jumptables): Delete jumptable if the only
4013         reference is from the literal pool.
4014
4015 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
4016
4017         * doc/install.texi (Final install): Request additional information
4018         in mail about successful builds.
4019
4020 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4021
4022         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
4023         initial value of return pointer register instead of value in frame-20.
4024         Revise comments.
4025
4026 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4027
4028         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
4029         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
4030         the libcall if there isn't a referenced identifier for the symbol.
4031
4032 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4033
4034         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
4035         non 64-bit machines.  Use these as a plabel for the trampoline.
4036         (TRAMPOLINE_SIZE): Adjust size for new words.
4037         (INITIALIZE_TRAMPOLINE): Initialize new words.
4038         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
4039         pointer to the plabel in the trampoline.
4040
4041 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4042
4043         * pa.c (function_arg): Pass floating arguments in both general and
4044         floating registers in indirect (dynamic) calls when generating code
4045         for the 32 bit ABI and the HP assembler.
4046
4047 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4048
4049         * doc/install.texi: Markup fixes.
4050         Use Solaris 2, SunOS 4 as appropriate.
4051         (Specific, *-*-solaris2*): Explain this.
4052         Unconditionally warn against /usr/ucb tools.
4053         Remove Sun as warning, obsolete.
4054         Move X11 header bug workaround here, update patches.
4055         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
4056         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
4057
4058 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
4059
4060         * errors.h (warning, error, fatal, internal_error): Don't mark
4061         with ATTRIBUTE_PRINTF_n.
4062         * toplev.h (internal_error, fatal_io_error, warning, error,
4063         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
4064         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
4065         Likewise.
4066
4067 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4068
4069         * function.c (pop_function_context_from): var_refs_queue
4070         and temp slots now in GC memory.
4071         (mark_function_status, free_after_compilation): Likewise;
4072         also struct function now in GC memory.
4073         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
4074         (combine_temp_slots): Likewise.
4075         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
4076         (prepare_function_start): Use GC memory for struct function.
4077         (mark_temp_slot): Deleted.
4078         (gcc_mark_struct_function): struct function now in GC memory.
4079
4080         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
4081         code for division, not modulus.
4082
4083         * rtl.def (MEM): Remove obsolete part of comment.
4084
4085 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
4086
4087         * c-format.c (init_function_format_info): Check __builtin_printf
4088         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
4089         in gnu89 mode.
4090
4091 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4092
4093         * c-common.c (format_attribute_table): Remove decl.
4094         * tree.h (format_attribute_table, lang_attribute_table): New decls.
4095         (lang_attribute_common): Likewise.
4096
4097         * function.c (fix_lexical_address): Use set_mem_alias_set.
4098         (expand_function_start): Likewise.
4099         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
4100
4101         * varasm.c (output_constant): Fix unused variable warning.
4102
4103         * attribs.c: New file, from c-common.c.
4104         (attribute_tables): Now four elements.
4105         (format_attribute_table, lang_attribute_common): New variables.
4106         (init_attributes): Reflect above changes.
4107         (handle_mode_attribute): Delete check for wider than uintmax.
4108         * c-common.c: Delete parts moved to attribs.c.
4109         (enum attrs): Deleted; unused.
4110         (c_format_attribute_table): New variable.
4111         (c_common_lang_init): Initialize format_attribute_table with it.
4112         * c-common.h (decl_attributes): Remove decl.
4113         * tree.h (decl_attribute): Move it to here.
4114         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
4115         (attribs.o): New rule.
4116
4117 2001-09-22  Andreas Jaeger  <aj@suse.de>
4118
4119         * builtins.c (c_getstr): Remove unused variable.
4120
4121 2001-09-21  Richard Henderson  <rth@redhat.com>
4122
4123         * reload1.c (reload): Use delete_insn instead of splatting
4124         NOTE_INSN_DELETED.
4125
4126 2001-09-21  Richard Henderson  <rth@redhat.com>
4127
4128         * reload.c (push_secondary_reload): Don't check for "=" in output
4129         constraint after ""->ALL_REGS check.
4130
4131 2001-09-21  Richard Henderson  <rth@redhat.com>
4132
4133         * predict.c (expected_value_to_br_prob): Use pc_set.
4134
4135         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
4136         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
4137
4138 2001-09-21  Richard Henderson  <rth@redhat.com>
4139
4140         * rtl.h (LCT_RETURNS_TWICE): New.
4141         * calls.c (emit_call_1): Set current_function_calls_setjmp for
4142         ECF_RETURNS_TWICE.
4143         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
4144         to ECF_RETURNS_TWICE.
4145         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
4146         call to setjmp.
4147
4148         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
4149
4150         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
4151         (JMP_BUF_SIZE): New.
4152
4153 2001-09-21  Richard Henderson  <rth@redhat.com>
4154
4155         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
4156         to R8_REGS.
4157
4158 2001-09-21  Richard Henderson  <rth@redhat.com>
4159
4160         * tree.def (FDESC_EXPR): New.
4161         * expr.c (expand_expr): Handle it.
4162         * varasm.c (initializer_constant_valid_p): Likewise.
4163         (output_constant): Likewise.
4164         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
4165         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
4166         (ASM_OUTPUT_FDESC): New.
4167         * doc/tm.texi: Document the new macros.
4168
4169 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
4170
4171         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
4172         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
4173         once merging is complete.
4174
4175 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4176
4177         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
4178
4179 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
4180
4181         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
4182         that would be invalid after a merge.
4183
4184 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
4185
4186         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
4187         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
4188         remove some labels.
4189         (flow_delete_insn): This one.
4190         (delete_insn_chain): Rename from ...; do not care labels.
4191         (flow_delete_insn_chain): ... this one.
4192         (flow_delete_block): Remove the insns one BB has been expunged.
4193         (merge_blocks_nomove): Likewise.
4194         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
4195         updating BB boundaries.
4196         (tidy_fallthru_edge): Likewise.
4197         (commit_one_edge_insertion): Likewise.
4198         * cfgbuild.c (find_basic_block): Likewise.
4199         (find_basic_blocks_1): Likewise.
4200         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
4201         (try_crossjump_to_edge): Likewise.
4202         (try_optimize_cfg): Likewise.
4203         * cse.c (delete_trivially_dead_insns): Likewise.
4204         * df.c (df_insn_delete): Likewise.
4205         * doloop.c (doloop_modify): Use delete_related_insns.
4206         * emit-rtl.c (try_split): Likewise.
4207         (remove_insn): Update BB boundaries.
4208         * expect.c (connect_post_landing_pads): Use delete_related_insns.
4209         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
4210         updating BB boundaries.
4211         (propagate_block_delete_insn): Likewise.
4212         (propagate_block_delete_libcall): Likewise.
4213         * function.c (delete_handlers): Use delete_related_insns.
4214         (thread_prologue_and_epilogue_insns): Likewise.
4215         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
4216         * genpeep.c (gen_peephole): Use delete_related_insns.
4217         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
4218         BB boundaries.
4219         (find_cond_trap): Likewise.
4220         * integrate.c (save_for_inline): Use delete_related_insns.
4221         (copy_insn_list): Likewise.
4222         * jump.c (pruge_linie_number_notes): Likewise.
4223         (duplicate_loop_exit_test): Likewise.
4224         (delete_computation): Likewise.
4225         (delete_related_insn): Rename from ...; use delete_insn
4226         (delete_insn): ... this one.
4227         (redirect_jump): Use delete_related_insns.
4228         * loop.c (scan_loop): Likewise.
4229         (move_movables): Likewise.
4230         (find_and_verify_loops): Likewise.
4231         (check_dbra_loop): Likewise.
4232         * recog.c (peephole2_optimize): Likewise.
4233         * reg-stack.c (delete_insn_for_stacker): Remove.
4234         (move_for_stack_reg): Use delete_insn.
4235         * regmove.c (combine_stack_adjustments_for_block): Likewise.
4236         * reload1.c (delete_address_reloads): Use delete_related_insns.
4237         (fixup_abnormal_edges): Use delete_insn.
4238         * recog.c (emit_delay_sequence): Use delete_related_insns.
4239         (delete_from-delay_slot): Likewise.
4240         (delete_scheduled_jump): likewise.
4241         (optimize_skip): Likewise.
4242         (try_merge_delay_insns): Likewise.
4243         (full_simple_delay_slots): Likewise.
4244         (fill_slots_from_thread): Likewise.
4245         (relax_delay_slots): Likewise.
4246         (make_return_insns): Likewise.
4247         (dbr_schedule): Likewise.
4248         * rtl.h (delete_insn): Rename to delete_related_insns.
4249         (delete_insn, delete_insn_chain): New prototypes.
4250         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
4251         by df_insn_delete already.
4252         * ssa-dce.c (delete_insn_bb): Use delete_insn.
4253         * ssa.c (convert_from_ssa): Use delete_related_insns.
4254         * unroll.c (unroll_loop): Likewise.
4255         (calculate_giv_inc): Likewise.
4256         (copy_loop_body): Likewise.
4257
4258         * i386-protos.h (ix86_libcall_value, ix86_function_value,
4259         ix86_function_arg_regno_p, ix86_function_arg_boundary,
4260         ix86_return_in_memory, ix86_function_value): Declare.
4261         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
4262         new static valurables.
4263         (x86_64_reg_class): New enum
4264         (x86_64_reg_class_name): New array.
4265         (classify_argument, examine_argument, construct_container,
4266          merge_classes): New static functions.
4267         (optimization_options): Enable flag_omit_frame_pointer and disable
4268         flag_pcc_struct_return on 64bit.
4269         (ix86_libcall_value, ix86_function_value,
4270         ix86_function_arg_regno_p, ix86_function_arg_boundary,
4271         ix86_return_in_memory, ix86_function_value): New global functions.
4272         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
4273         (function_arg_advance): Handle x86_64 passing conventions.
4274         (function_arg): Likewise.
4275         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
4276         (RETURN_IN_MEMORY): Move offline.
4277         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
4278         (FUNCTION_VALUE_REGNO_P): New macro.
4279         (FUNCTION_ARG_REGNO_P): Move offline.
4280         (struct ix86_args): Add maybe_vaarg.
4281         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
4282         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
4283
4284 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
4285
4286         * s390.md: Changed attributes for scheduling.
4287         * s390.c: (s390_adjust_cost, s390_adjust_priority)
4288         Changed scheduling
4289
4290 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
4291
4292         Table-driven attributes.
4293         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
4294         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
4295         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
4296         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
4297         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
4298         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
4299         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
4300         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
4301         * tree.h (struct tree_decl): Change machine_attributes to
4302         attributes.
4303         * doc/c-tree.texi: Document that all attributes are now attached
4304         to decls and types.
4305         * c-common.c (add_attribute, attrtab, attrtab_idx,
4306         default_valid_lang_attribute, valid_lang_attribute): Remove.
4307         (attribute_tables, attributes_initialized,
4308         c_common_attribute_table, default_lang_attribute_table): New
4309         variables.
4310         (handle_packed_attribute, handle_nocommon_attribute,
4311         handle_common_attribute, handle_noreturn_attribute,
4312         handle_unused_attribute, handle_const_attribute,
4313         handle_transparent_union_attribute, handle_constructor_attribute,
4314         handle_destructor_attribute, handle_mode_attribute,
4315         handle_section_attribute, handle_aligned_attribute,
4316         handle_weak_attribute, handle_alias_attribute,
4317         handle_no_instrument_function_attribute,
4318         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
4319         handle_no_limit_stack_attribute, handle_pure_attribute): New
4320         functions.
4321         (init_attributes, decl_attributes): Rewrite to implement
4322         table-driven attributes.
4323         * c-common.h (enum attribute_flags): Move to tree.h.
4324         * c-format.c (decl_handle_format_attribute,
4325         decl_handle_format_arg_attribute): Rename to
4326         handle_format_attribute and handle_format_arg_attribute.  Update
4327         for table-driven attributes.
4328         * c-common.h (decl_handle_format_attribute,
4329         decl_handle_format_arg_attribute): Remove prototypes.
4330         (handle_format_attribute, handle_format_arg_attribute): Add
4331         prototypes.
4332         * c-decl.c (grokdeclarator): Handle attributes nested inside
4333         declarators.
4334         * c-parse.in (setattrs, maybe_setattrs): Remove.
4335         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
4336         Update to handle nested attributes properly.
4337         (maybe_resetattrs, after_type_declarator,
4338         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
4339         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
4340         properly.
4341         (make_pointer_declarator): Update to handle nested attributes
4342         properly.
4343         * doc/extend.texi: Update documentation of limits of attributes
4344         syntax.  Warn about problems with attribute semantics in C++.
4345         * target.h (struct target): Remove valid_decl_attribute and
4346         valid_type_attribute.  Add attribute_table and
4347         function_attribute_inlinable_p.
4348         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
4349         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
4350         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
4351         Add.
4352         (TARGET_INITIALIZER): Update.
4353         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
4354         definition.
4355         (function_attribute_inlinable_p): New function.  Check for the
4356         presence of any machine attributes before using
4357         targetm.function_attribute_inlinable_p.
4358         (function_cannot_inline_p): Update.
4359         * Makefile.in (integrate.o): Update dependencies.
4360         * doc/tm.texi: Update documentation of target attributes and
4361         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
4362         * tree.c (default_valid_attribute_p, valid_machine_attribute):
4363         Remove.
4364         (default_target_attribute_table,
4365         default_function_attribute_inlinable_p): New.
4366         (lookup_attribute): Update comment to clarify handling of multiple
4367         attributes with the same name.
4368         (merge_attributes, attribute_list_contained): Allow multiple
4369         attributes with the same name but different arguments to appear in
4370         the same attribute list.
4371         * tree.h (default_valid_attribute_p): Remove prototype.
4372         (struct attribute_spec): New.
4373         (default_target_attribute_table): Declare.
4374         (enum attribute_flags): Move from c-common.h.  Add
4375         ATTR_FLAG_TYPE_IN_PLACE.
4376         (default_function_attribute_inlinable_p): Declare.
4377         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
4378         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4379         (TARGET_ATTRIBUTE_TABLE): Define.
4380         (vms_attribute_table): New.
4381         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
4382         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4383         (TARGET_ATTRIBUTE_TABLE): Define.
4384         (arc_attribute_table, arc_handle_interrupt_attribute): New.
4385         * config/arm/arm.c (arm_valid_type_attribute_p,
4386         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
4387         Remove.
4388         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
4389         define.
4390         (TARGET_ATTRIBUTE_TABLE): Define.
4391         (arm_attribute_table, arm_handle_fndecl_attribute,
4392         arm_handle_isr_attribute): New.
4393         * config/avr/avr.c (avr_valid_type_attribute,
4394         avr_valid_decl_attribute): Remove.
4395         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
4396         define.
4397         (TARGET_ATTRIBUTE_TABLE): Define.
4398         (avr_attribute_table, avr_handle_progmem_attribute,
4399         avr_handle_fndecl_attribute): New.
4400         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
4401         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4402         (TARGET_ATTRIBUTE_TABLE): Define.
4403         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
4404         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
4405         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4406         (TARGET_ATTRIBUTE_TABLE): Define.
4407         (h8300_attribute_table, h8300_handle_fndecl_attribute,
4408         h8300_handle_eightbit_data_attribute,
4409         h8300_handle_tiny_data_attribute): New.
4410         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
4411         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
4412         Remove prototypes.
4413         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
4414         declarations.
4415         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
4416         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
4417         define.
4418         (TARGET_ATTRIBUTE_TABLE): Define.
4419         (ix86_attribute_table, ix86_handle_cdecl_attribute,
4420         ix86_handle_regparm_attribute): New.
4421         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
4422         i386_pe_valid_type_attribute_p): Remove.
4423         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
4424         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
4425         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4426         (TARGET_ATTRIBUTE_TABLE): Define.
4427         (ia64_attribute_table): New.
4428         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
4429         interrupt_ident2, model_ident1, model_ident2): Remove.
4430         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4431         (TARGET_ATTRIBUTE_TABLE): Define.
4432         (init_idents): Update.
4433         (m32r_attribute_table, m32r_handle_model_attribute): New.
4434         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
4435         Remove.
4436         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4437         (TARGET_ATTRIBUTE_TABLE): Define.
4438         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
4439         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
4440         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4441         (TARGET_ATTRIBUTE_TABLE): Define.
4442         (mcore_attribute_table, mcore_handle_naked_attribute): New.
4443         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
4444         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4445         (TARGET_ATTRIBUTE_TABLE): Define.
4446         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
4447         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
4448         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4449         (TARGET_ATTRIBUTE_TABLE): Define.
4450         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
4451         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
4452         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4453         (TARGET_ATTRIBUTE_TABLE): Define.
4454         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
4455         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
4456         New.
4457         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
4458         Remove.
4459         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
4460         (TARGET_ATTRIBUTE_TABLE): Define.
4461         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
4462         New.
4463         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
4464         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4465         (TARGET_ATTRIBUTE_TABLE): Define.
4466         (v850_attribute_table, v850_handle_interrupt_attribute,
4467         v850_handle_data_area_attribute): New.
4468         * config/v850/v850-c.c (mark_current_function_as_interrupt):
4469         Return void.  Call decl_attributes instead of
4470         valid_machine_attribute.
4471
4472 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
4473
4474         * sh-protos.h (sh_pr_n_sets): Declare.
4475         * sh.c (calc_live_regs): If the initial value for PR has been copied,
4476         look at the copy to determine if PR needs to be saved.
4477         sh_pr_n_sets: New function.
4478         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
4479         (ALLOCATE_INITIAL_VALUE): Define.
4480
4481         * sh.c (initial_elimination_offset):
4482         Fix RETURN_ADDRESS_POINTER_REGNUM case.
4483
4484 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
4485
4486         * integrate.c (allocate_initial_values): New function.
4487         * integrate.h (allocate_initial_values): Declare.
4488         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
4489         here...
4490         * reload1.c (reload): And initialization of reg_equiv_memory_loc
4491         from here...
4492         * toplev.c (rest_of_compilation): To here.
4493         Call allocate_initial_values.
4494         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
4495
4496 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4497
4498         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
4499
4500 2001-09-20  DJ Delorie  <dj@redhat.com>
4501
4502         * c-typeck.c (really_start_incremental_init): Discriminate
4503         between zero-length arrays and flexible arrays.
4504         (push_init_level): Detect zero-length arrays and handle them
4505         like fixed-sized arrays.
4506         * expr.c (store_constructor): Handle zero-length arrays and
4507         flexible arrays correctly.
4508         * doc/extend.texi: Update zero-length array notes.
4509
4510 2001-09-20  Jim Wilson  <wilson@redhat.com>
4511
4512         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
4513         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
4514         for issue port conflicts.
4515         (cycle_end_fill_slots): TYPE_L instructions take two slots.
4516
4517 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
4518
4519         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
4520         on ia64.
4521
4522 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4523
4524         * fold-const.c (hashtab.h): Include.
4525         (int_const_binop): Remove FORSIZE arg and compute from type; all
4526         callers changed.
4527         Call size_int_type_wide for all single-word constants.
4528         (size_htab_hash, size_htab_eq): New functions.
4529         (size_int_type_wide): Rework to use hash table.
4530         * ggc-common.c (hashtab.h): Include.
4531         (struct d_htab_root): New struct.
4532         (d_htab_roots): New variable.
4533         (ggc_add_deletable_htab, ggc_htab_delete): New functions
4534         (ggc_mark_roots): Handle deletable htabs.
4535         * ggc-page.c (ggc_marked_p): New function.
4536         * ggc-simple.c (ggc_marked_p): Likewise.
4537         * ggc.h: Reformatting throughout.
4538         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
4539         * tree.c (init_obstacks): Make type_hash_table a deletable root.
4540         (type_hash_add): Allocate struct type_hash from GC memory.
4541         (mark_hash_entry, mark_type_hash): Deleted.
4542         (type_hash_marked_p, type_hash_mark): New functions.
4543         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
4544
4545 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
4546
4547         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
4548         than SImode.
4549
4550 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4551
4552         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
4553         array-too-large test for signed sizetype.
4554
4555 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
4556
4557         * i386.md (indirect_jump): Allow Pmode operand.
4558         (tablejump): LIkewise; perform expansion to 64bit mode.
4559         * i386.c (symbolic_operand): Allow 64bit PIC references.
4560         (pic_symbolic_operand): Likewise.
4561         (ix86_find_base_term): Strip the 64bit PIC references.
4562         (legitimate_pic_address_disp_p): Handle 64bit PIC.
4563         (legitimize_pic_address): Likewise.
4564         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
4565         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
4566
4567 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
4568
4569         * stringpool.c (get_identifier_with_length): New function.
4570         * tree.h (get_identifier_with_length): New prototype.
4571
4572 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
4573             David Edelsohn  <edelsohn@gnu.org>
4574
4575         Revert:
4576         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
4577         already sign-extended.
4578
4579         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
4580         * config/rs6000/rs6000.c (logical_operand): Always compare op as
4581         HOST_WIDE_INT.
4582         (rs6000_emit_set_long_const): Avoid unnecessary shift.
4583         (output_profile_hook): Declare label_name const.
4584         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
4585         to match constraints.
4586
4587 2001-09-19  Stan Shebs  <shebs@apple.com>
4588
4589         * alias.c: Fix typos in comments.
4590         * sched-rgn.c (init_ready_list): Ditto.
4591         * unwind-dw2.c (uw_frame_state_for): Ditto.
4592         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
4593         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
4594         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
4595
4596 2001-09-19  Richard Henderson  <rth@redhat.com>
4597
4598         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
4599         to the exit block.
4600         * Makefile.in (cfg.o): Depend on TM_P_H.
4601
4602 2001-09-19  Richard Henderson  <rth@redhat.com>
4603
4604         * config/alpha/alpha.c (local_symbol_p): Split out from ...
4605         (local_symbolic_operand): ... here.
4606         (small_symbolic_operand): Check mode.
4607         (global_symbolic_operand): New.
4608         (input_operand): Reject symbolics if explicit relocs.
4609         (call_operand): Tidy.
4610         (alpha_legitimize_address): Use movdi_er_high_g.
4611         (alpha_expand_mov): Likewise.
4612         * config/alpha/alpha-protos.h: Update.
4613         * config/alpha/alpha.h (PREDICATE_CODES): Update.
4614         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
4615         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
4616         (UNSPECV_LDGP2): Remove.
4617         (all call patterns): Use 's' not 'i' for symbolic constraint.
4618         (call_osf call_value_osf): Use call_operand.
4619         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
4620         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
4621         (prologue_ldgp_1_er): Remove.
4622         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
4623         (builtin_setjmp_receiver_er patterns): Use them.
4624         (exception_receiver_er): Likewise.
4625
4626 2001-09-19  Richard Henderson  <rth@redhat.com>
4627
4628         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
4629
4630         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
4631         and NON_LOCAL_GOTO notes.
4632         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
4633         copy over CALL_INSN_FUNCTION_USAGE.
4634
4635 2001-09-18  Catherine Moore  <clm@redhat.com>
4636
4637         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
4638         Define as 0.
4639
4640 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
4641
4642         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
4643         new-style tm_file specification.  Specify correct tm_p_file,
4644         md_file, and out_file for s390x.
4645
4646         * config/s390/linux.h, linux64.h:  Don't include other target
4647         macro header files.  Now handled via tm_file.
4648
4649         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
4650         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
4651         are defined before use.
4652
4653 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
4654
4655         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
4656         code generation only for Gnu assembler.
4657
4658 2001-09-18  Catherine Moore  <clm@redhat.com>
4659
4660         * config/stormy16 (LIB_SPEC): Remove -lnosys.
4661
4662 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
4663
4664         * config/mips/mips.c (mips_frame_set): New.
4665         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
4666         a parallel frame-related expression with a set for each register.
4667
4668 2001-09-18  Philip Blundell  <philb@gnu.org>
4669
4670         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
4671         header files.
4672
4673 2001-09-17  Dale Johannesen  <dalej@apple.com>
4674
4675         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
4676         * config/rs6000/aix.h (FIXED_R2): Define.
4677         * config/rs6000/darwin.h (FIXED_R2): Define.
4678         * config/rs6000/sysv4.h (FIXED_R2): Define.
4679
4680 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
4681
4682         * except.c (dw2_build_landing_pads): New local
4683         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
4684         barrier after clobbers.  Fixes c++/4012.
4685
4686 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4687
4688         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
4689
4690 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
4691
4692         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
4693         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
4694
4695 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4696
4697         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
4698         alloca/strcpy.
4699
4700 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4701
4702         * cpphash.h (_cpp_lex_direct): New.
4703         * cpplex.c (_cpp_lex_token): Update.
4704         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
4705         and increment that pointer.
4706         * cppmacro.c (alloc_expansion_token): New.
4707         (lex_expansion_token): Lex macro expansion directly into
4708         macro storage.
4709
4710 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
4711
4712         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
4713
4714 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
4715
4716         * basic-block.h (free_bb_for_insn): Declare.
4717         * bb-reorder.c (label_for_bb): Use block_label.
4718         (emit_jump_to_block_after): Remove.
4719         (insert_intra_1): Do not update block_for_insn.
4720         (insert_inter_bb_scope_notes): Likewise; update bb->end
4721         * cfg.c (free_bb_for_insn): New.
4722         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
4723         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
4724         (commit_one_edge_insertion): Likewise.
4725         (commit_one_edge_insertion): Do not update BB boundary.
4726         (commit_edge_insertions): Do not call compute_bb_for_insn.
4727         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
4728         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
4729         (merge_blocks_move_successor_nojumps): Likewise.
4730         (try_crossjump_to_edge): Do not update block_for_insn.
4731         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
4732         * df.c (df_pattern_emit_later): Do not update BB boundary.
4733         (df_jump_pattern_emit_after): Likewise.
4734         (df_insn_move_before): Use emit_insn_before.
4735         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
4736          properly.
4737         (add_insn_after, add_insn_before, emit_insns_after): Update BB
4738         boundaries and basic_block_for_insn.
4739         (reorder_insns_nobb): Rename from reorder_insns.
4740         (reorder_insns): New.
4741         (emit_block_insn_before, emit_block_insn_after): Kill.
4742         * flow.c (check_function_return_warnings): Do not call
4743         compute_bb_for_insn; Do not free basic_block_for_insn.
4744         (attempt_auto_inc): Do not update basic_block_for_insn.
4745         * function.c (emit_return_into_block): Likewise;
4746         do not update BB boundaries.
4747         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
4748         (insert_insn_end_bb): Use emit_insn_before; Likewise.
4749         (pre_insert_copy_insn): Likewise.
4750         (update_ld_motion_notes): Likewise.
4751         (insert_insn_start_bb): Likewise.
4752         (replace_store_insn): Likewise.
4753         * ifcvt.c (noce_process_if_block): Likewise.
4754         (if_convert): Do not call compute_bb_for_insn.
4755         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
4756         Use emit_insn_before and emit_insn_after.
4757         * recog.c (split_all_insns): Do not update BB boundaries;
4758         Do not call compute_bb_for_insn.
4759         (peephole2_optimize): Do not update BB boundaries.
4760         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
4761         emit_insn_before.
4762         (emit_swap_insn): Likewise.
4763         (convert_regs_1): Likewise.
4764         * reload1.c (reload): Call compute_bb_for_insn.
4765         * rtl.h (reorder_insns_nobb): Declare.
4766         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
4767         * toplev.c (rest_of_compilation): Call free_bb_for_insn
4768         at places CFG is invalidated; do not call compute_bb_for_insn.
4769
4770         * cfg.c (expunge_block): Invalidate BB structure.
4771
4772         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
4773         array.
4774
4775         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
4776
4777 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4778
4779         * cpphash.h (_cpp_lex_token): Update prototype.
4780         * cpplex.c (_cpp_lex_token): New prototype.
4781         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
4782         lex_macro_node, read_flag, do_pragma_poison): Update.
4783         * cppmacro.c (cpp_get_token, parse_params,
4784         lex_expansion_token): Update.
4785
4786 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4787
4788         * cppmain.c (scan_translation_unit): Don't worry about
4789         putting a space after hashes.
4790         * cpplib.c (directive_diagnostics): New.
4791         (_cpp_handle_directive): Update to use directive_diagnostics.
4792         (run_directive): Don't toggle prevent_expansion.
4793         (do_line): Backup in case of the line extension.
4794         * cpplib.h (cpp_lexer_pos): Remove.
4795         * cppmacro.c (_cpp_create_definition): Precede a leading #
4796         with whitespace.
4797
4798 2001-09-15  Richard Henderson  <rth@redhat.com>
4799
4800         * c-typeck.c (comptypes): Handle zero-length arrays properly.
4801
4802 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4803
4804         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
4805
4806 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4807
4808         PR preprocessor/3571
4809         * tradcpp.c (handle_directive): Skip non-vertical space.
4810
4811 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4812
4813         * cppmain.c (setup_callbacks): Set line callback only
4814         if outputting preprocessed source.
4815
4816 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4817
4818         * collect2.c (main): Const-ification.
4819         * gcc.c (translate_options, process_command): Use xstrdup in
4820         lieu of xmalloc/strcpy.
4821         (main): Use concat in lieu of xmalloc/strcpy/strcat.
4822
4823 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4824
4825         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
4826         example.
4827
4828 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4829
4830         * scan-decls.c (scan_decls): Fix typo.
4831
4832 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4833
4834         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
4835         Split mlstring_pos into mls_line and mls_col.
4836         * cppinit.c (cpp_create_reader): Initialize line to 1.
4837         (cpp_destroy): Free tokenruns.
4838         (push_include): Don't update lexer_pos.
4839         * cpplex.c (unterminated, parse_string): Update.
4840         (lex_token): Don't update lexer_pos, update.
4841         * cpplib.c (if_stack): Save line instead of line + col.
4842         (start_directive, _cpp_do__Pragma, do_else, do_elif,
4843         push_conditional, _cpp_pop_buffer): Update.
4844         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
4845         (_cpp_create_definition): Update.
4846
4847 2001-09-15  Eric Christopher  <echristo@redhat.com>
4848
4849         * config/mips/abi64.h: Add support for MEABI.
4850
4851 2001-09-15  Eric Christopher  <echristo@redhat.com>
4852
4853         * config/mips/mips.md: Add unspec #2.
4854         (reload_indi): Use.
4855         (reload_outdi): Ditto.
4856         (reload_outsi): Ditto.
4857         (HILO_delay): New.
4858
4859 2001-09-15  Eric Christopher  <echristo@redhat.com>
4860             Jason Eckhardt  <jle@redhat.com>
4861
4862         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
4863         * config/mips/isa32-linux.h: New file.
4864         * config/mips/isa3264.h: Ditto.
4865         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
4866         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
4867         (output_block_mode): Support MEABI.
4868         (function_arg): Ditto. Fix floating point arg passing.
4869         (mips_va_start): Ditto.
4870         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
4871         processors.
4872         (mips_asm_file_start): Add new section to pass abi to gdb.
4873         (function_arg_pass_by_reference): Support MEABI.
4874         (mips_parse_cpu): Support mips32 and mips64 processors.
4875         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
4876         TARGET_MIPS5KC.  Support isa32 and isa64.
4877         (processor_type): Add r4kc, r5kc, r20kc.
4878         (GENERATE_MULT3_SI): New.
4879         (GENERATE_MULT3_DI): Ditto.
4880         (GENERATE_MULT3): Remove.
4881         (ISA_HAS_64BIT_REGS): Add isa == 64.
4882         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
4883         (ISA_HAS_MADD_MSUB): New.
4884         (ISA_HAS_CLZ_CLO): Ditto.
4885         (ISA_HAS_DCLZ_DCLO): Ditto.
4886         (ABI_GAS_ASM_SPEC): New.
4887         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
4888         (ASM_SPEC): Ditto.
4889         (LINK_SPEC): Ditto.
4890         (SUBTARGET_CC1_SPEC): Ditto.
4891         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
4892         (PAD_VARARGS_DOWN): Support MEABI.
4893         (HARD_REGNO_NREGS): Move to mips.c.
4894         (ASM_OUTPUT_IDENT): Add #undef.
4895         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
4896         (mulsi3): Use GENERATE_MULT3_SI.
4897         (mulsi3_mult3): Ditto.  Support mips32, mips64.
4898         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
4899         (mul_sub_si): New pattern.
4900         (unnamed splitters): New.
4901         (muldi3): Use GENERATE_MULT3_DI.
4902         (muldi3_internal2): Ditto.
4903         (movdicc): Support mips32.
4904         * config/mips/t-isa3264: New file.
4905
4906 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
4907
4908         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
4909         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
4910         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
4911
4912         * reorg.c (fill_slots_from_thread): After call to
4913         steal_delay_list_from_target, update own_thread as new_thread may
4914         have branched.
4915
4916 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4917
4918         * cpperror.c (print_location): Take line and column, for
4919         default positioning use the previously lexed token.
4920         (_cpp_begin_message): Take line and column.
4921         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
4922         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
4923         * cpphash.h (_cpp_begin_message): Update prototype.
4924         * cppinit.c (push_include): Don't set output line.
4925         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
4926         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
4927         (do_pragma): Kludge for front ends.  Don't expand macros at all.
4928         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
4929         (struct cpp_token): Remove output_line.
4930         (struct cpp_callbacks): New member line_change.
4931         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
4932         cpp_get_token): Preserve BOL flag.
4933         (cpp_get_line): Remove.
4934         (_cpp_backup_tokens): Remove useless abort().
4935         * cppmain.c (cb_line_change): New.
4936         (scan_translation_unit): Don't worry about starting new lines here.
4937         * scan-decls.c (scan_decls): Update.
4938         * c-lex.c (c_lex, init_c_lex): Update.
4939         (cb_line_change, src_lineno): New.
4940
4941 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
4942
4943         * tree.c (append_random_chars): Generate the random
4944         characters in a reproducable fashion.
4945
4946 2001-09-14  Richard Henderson  <rth@redhat.com>
4947
4948         * config/i386/i386.c (internal_label_prefix): New.
4949         (internal_label_prefix_len): New.
4950         (override_options): Set them.
4951         (local_symbolic_operand): New.
4952         (legitimate_pic_address_disp_p): Use it.
4953         (legitimize_pic_address): Likewise.
4954
4955 2001-09-14  Marc Espie <espie@openbsd.org>
4956
4957         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
4958         correctly.
4959
4960 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4961
4962         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
4963         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
4964
4965 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
4966
4967         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
4968         invocation of SUBREG_REGNO_OFFSET.
4969
4970         * haifa-sched.c: Fix typo in FSF copyright statement.
4971         * sched-deps.c: Fix typo in FSF copyright statement.
4972         * sched-ebb.c: Fix typo in FSF copyright statement.
4973         * sched-rgn.c: Fix typo in FSF copyright statement.
4974         * sched-vis.c: Fix typo in FSF copyright statement.
4975
4976         * config.gcc: Move inclusion of arm elf specific header files
4977         from the files themselves into the tm_file variable.  Make
4978         sure that elfos.h is included before target specific elf
4979         headers.
4980         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
4981         already defined.
4982         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
4983         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
4984         ASM_OUTPUT_CASE_LABEL): Protect definition.
4985         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
4986         not already defined.
4987         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
4988         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
4989         Remove duplicate definition.
4990         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
4991         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
4992         (RDATA_SECTION_FUNCTION): Remove redundant definition.
4993         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
4994         Remove inclusion of arm/elf.h.
4995         * config/arm/unknown-elf.h: as for conix-elf.h.
4996         (STARTFILE_SPEC): Include crti.o and crtn.o.
4997         * config/arm/linux-elf.h: as for conix-elf.h.
4998         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
4999         * config/arm/strongarm-elf.h: Remove inclusion of
5000         unknown-elf.h.
5001         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
5002         * config/arm/unknown-elf-oabi.h: Remove inclusion of
5003         unknown-elf.h and elf.h.
5004         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
5005         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
5006         ASM_WEAKEN_LABEL): Remove redundant definition.
5007         * config/arm/elf.h: Test for inclusion of elfos.h
5008         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
5009         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
5010         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
5011         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
5012         redundant definition.
5013         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
5014         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
5015         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
5016         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
5017         Add rules to build crti.o and crtn.o
5018         * crti.asm: New file.
5019         * crtn.asm: New file.
5020
5021 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5022
5023         * c-parse.in (_yylex): Use _cpp_backup_tokens.
5024         * cpphash.h (struct tokenrun): Add prev.
5025         (struct lexer_state): Remove bol.
5026         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
5027         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
5028         : Remove.
5029         * cppinit.c (cpp_create_reader): Don't set bol.
5030         (cpp_destroy): Don't free lookaheads.
5031         * cpplex.c (lex_directive): Remove.
5032         (next_tokenrun): Update.
5033         (_cpp_lex_token): Clean up logic.
5034         (lex_token): Update to return a pointer to lexed token, since it
5035         can move to the start of the buffer.  Simpify newline handling.
5036         * cpplib.c (SEEN_EOL): Update.
5037         (skip_rest_of_line): Remove lookahead stuff.
5038         (end_directive): Line numbers are already incremented.  Revert
5039         to start of lexed token buffer if we can.
5040         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
5041         parse_answer): Use _cpp_backup_tokens.
5042         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
5043         instead.  Don't check for EOL.
5044         (do_include_common, do_line, do_pragma_system_header): Use
5045         skip_rest_of_line.
5046         * cpplib.h (BOL, _cpp_backup_tokens): New.
5047         * cppmacro.c (save_lookahead_token, take_lookahead_token,
5048         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
5049         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
5050         (builtin_macro): Don't use cpp_get_line.
5051         (cpp_get_line): Short term kludge.
5052         (parse_arg): Handle directives in arguments here.  Back up when
5053         appropriate.  Store EOF at end of argument list.
5054         (funlike_invocation_p): Use _cpp_backup_tokens.
5055         (push_arg_context): Account for EOF at end of list.
5056         (cpp_get_token): Remove lookahead stuff.  Update.
5057
5058 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5059
5060         * c-parse.in (yyerror): Const-ification and/or static-ization.
5061         * c-typeck.c (push_member_name): Likewise.
5062         * collect2.c (main): Likewise.
5063         * dbxout.c (dbxout_parms): Likewise.
5064         * diagnostic.c (format_with_decl): Likewise.
5065         * dwarf2out.c (output_ranges): Likewise.
5066         * dwarfout.c (fundamental_type_code): Likewise.
5067         * except.c (dw2_output_call_site_table): Likewise.
5068         * gcc.c (do_spec_1): Likewise.
5069         * genopinit.c (optabs): Likewise.
5070         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
5071         gen_declaration_1, handle_impent): Likewise.
5072         * protoize.c (default_include, in_system_include_dir, abspath):
5073         Likewise.
5074         * sched-vis.c (visualize_stall_cycles): Likewise.
5075         * sdbout.c (plain_type_1, sdbout_end_function,
5076         sdbout_end_epilogue): Likewise.
5077         * varasm.c (decode_reg_name): Likewise.
5078
5079         * 1750a.c (mod_regno_adjust): Likewise.
5080         * alpha.c (alpha_write_one_linkage,
5081         unicosmk_output_default_externs): Likewise.
5082         * arm.c (arm_condition_codes): Likewise.
5083         * arm.h (arm_condition_codes): Likewise.
5084         * avr.c (output_movsisf, encode_section_info): Likewise.
5085         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
5086         Likewise.
5087         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
5088         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
5089         * m88k.c (output_function_profiler): Likewise.
5090         * mips.c (mips_output_conditional_branch): Likewise.
5091         * ns32k.c (ns32k_out_reg_names): Likewise.
5092         * ns32k.h (ns32k_out_reg_names): Likewise.
5093         * pj.c (pj_output_rval): Likewise.
5094         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
5095         * sparc.c (sparc_flat_function_prologue,
5096         sparc_flat_function_epilogue): Likewise.
5097
5098 2001-09-13  Markus Werle <numerical.simulation@web.de>
5099             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5100
5101         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
5102         Aachen University of Technology".
5103
5104 2001-09-13  Andreas Schwab  <schwab@suse.de>
5105
5106         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
5107         C99.
5108
5109 2001-09-13  Richard Henderson  <rth@redhat.com>
5110
5111         * config/alpha/alpha.c (small_symbolic_operand): New.
5112         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
5113         (some_operand, input_operand): Don't handle HIGH.
5114         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
5115         (alpha_expand_mov): Likewise.
5116         (print_operand) [H]: Just print HIGH symbol.
5117         (print_operand_address): Handle small data.
5118         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
5119         (TARGET_SWITCHES): Add -msmall-data/large-data.
5120         (PIC_OFFSET_TABLE_REGNUM): New.
5121         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
5122         (PREDICATE_COES): Update.
5123         * config/alpha/alpha.md (adddi_er_high): New.
5124         (adddi_er_low): Handle small data.
5125         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
5126         prefer .sdata to .rodata.
5127         (SELECT_RTX_SECTION): Likewise.
5128
5129 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
5130
5131         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
5132         defining __size_t and leaving size_t undefined.
5133
5134 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
5135
5136         * basic-block.h (expunge_block): Declare.
5137         * cfg.c (expunge_block): Remove static declaration.
5138
5139 2001-09-12  Richard Henderson  <rth@redhat.com>
5140
5141         * integrate.c (copy_insn_list): Copy label name from
5142         NOTE_INSN_DELETED_LABEL.
5143
5144 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5145
5146         * c-common.c (c_tree_code_name): Const-ification.
5147         * c-decl.c (c_decode_option): Likewise.
5148         * c-typeck.c (warn_for_assignment): Likewise.
5149         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
5150         Likewise.
5151         * cppinit.c (output_deps): Likewise.
5152         * dependence.c (dependence_string, direction_string): Likewise.
5153         * dwarf2out.c (output_ranges): Likewise.
5154         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
5155         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
5156         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
5157         standard_startfile_prefix, standard_startfile_prefix_1,
5158         standard_startfile_prefix_2, tooldir_base_prefix,
5159         standard_bindir_prefix, find_a_file): Likewise.
5160         * genattrtab.c (make_length_attrs): Likewise.
5161         * gencheck.c (tree_codes): Likewise.
5162         * genemit.c (gen_split): Likewise.
5163         * genrecog.c (special_mode_pred_table): Likewise.
5164         * graph.c (graph_ext): Likewise.
5165         * protoize (default_include): Likewise.
5166         * reload.c (reload_when_needed_name): Likewise.
5167         * sched-vis.c (visualize_stall_cycles): Likewise.
5168         * tlink.c (recompile_files): Likewise.
5169         * toplev.c (decode_g_option): Likewise.
5170         * tradcpp.c (output_deps): Likewise.
5171         * varasm.c (decode_reg_name): Likewise.
5172
5173         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
5174         Const-ification.
5175         * arm.md: Likewise.
5176         * avr.c (avr_regnames, encode_section_info): Likewise.
5177         * c4x.c (float_reg_names): Likewise.
5178         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
5179         * elfos.h (const_section): Likewise.
5180         * i386.c (ix86_comp_type_attributes): Likewise.
5181         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
5182         * ia64/aix.h (UNIQUE_SECTION): Likewise.
5183         * ia64.c (type_names): Likewise.
5184         * m68hc11.c (reg_class_names): Likewise.
5185         * m88k.c (m_options): Likewise.
5186         * mips.c (mips_output_conditional_branch, mips_unique_section):
5187         Likewise.
5188         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5189         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
5190         ultra_code_names): Likewise.
5191         * sparc.h (OVERRIDE_OPTIONS): Likewise.
5192
5193 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
5194
5195         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
5196         Use --fatal-warnings option for gas.
5197         * configure: Rebuilt.
5198
5199 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5200
5201         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
5202
5203 2001-09-11  Jim Wilson  <wilson@redhat.com>
5204
5205         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
5206
5207 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5208
5209         * builtins.c (c_strlen): Treat an offset too large for a
5210         HOST_WIDE_INT as out of range.
5211
5212 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
5213
5214         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
5215         (EDGE_CRITICAL_P): New predicate.
5216         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
5217         handling.
5218         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
5219         (dump_edge_info): Remove "crit".
5220         * cfganal.c (mark_critical_edges): Kill.
5221         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
5222         * cfgcleanup.c (cleanup_cfg): Likewise.
5223         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
5224         (find_spanning_tree): Likewise.
5225         * reg-stack.c (convert_regs_1): Likewise.
5226         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
5227
5228         * basic-block.h (create_basic_block_structure): New.
5229         (create_basic_block): Update prototype.
5230         (force_nonfallthru): New.
5231         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
5232         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
5233         handle updating of block_for_insn, creating of empty BBs and BBs at
5234         the end of INSN chain.
5235         (create_basic_block): New function.
5236         (split_block): Use create_basic_block.
5237         (force_nonfallthru_and_redirect): Break out from ...; cleanup
5238         (redirect_edge_and_branch_force): ... here.
5239         (force_nonfallthru): New.
5240         (split_edge): Rewrite to use force_nonfallthru and create_block.
5241         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
5242         (find_basic_blocks): Free basic_block_for_insn.
5243         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
5244
5245         * cfg.c: Fix formating.
5246         * cfgcleanup.c: Fix formating.
5247         (merge_blocks, tail_recursion_label_p): Return bool.
5248         (merge_blocks_move_predecessor_nojumps,
5249          merge_blocks_move_successor_nojumps): Return void.
5250
5251 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
5252
5253         * configure.in: Check whether assembler supports section merging.
5254         * config.in: Rebuilt.
5255         * configure: Rebuilt.
5256         * varasm.c (variable_section, output_constant_pool): Pass alignment
5257         to SELECT_SECTION and SELECT_RTX_SECTION.
5258         (mergeable_string_section): New.
5259         (mergeable_constant_section): New.
5260         (default_elf_asm_named_section): Output SECTION_MERGE and
5261         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
5262         * output.h (mergeable_string_section): New.
5263         (mergeable_constant_section): New.
5264         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
5265         * toplev.c (flag_merge_constants): New.
5266         (f_options): Add -fmerge-constants and -fmerge-all-constants
5267         options.
5268         (toplev_main): Default to -fno-merge-constants if not optimizing.
5269         * flags.h (flag_merge_constants): Add extern.
5270         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
5271         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
5272         argument.
5273         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
5274         Define if assembler has working .subsection -1 support.
5275         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
5276         Put constant into special SHF_MERGE sections if the linker should
5277         attempt to merge duplicates.
5278         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
5279         macro argument.
5280         Put constant into special SHF_MERGE sections if the linker should
5281         attempt to merge duplicates.
5282         * config/alpha/elf.h: Likewise.
5283         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
5284         has working .subsection -1 support.
5285         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
5286         SELECT_SECTION.
5287         * config/svr3.h: Likewise.
5288         * config/darwin.h: Likewise.
5289         * config/arm/aof.h: Likewise.
5290         * config/arm/linux-elf.h: Likewise.
5291         * config/avr/avr.h: Likewise.
5292         * config/c4x/c4x.h: Likewise.
5293         * config/d30v/d30v.h: Likewise.
5294         * config/i386/dgux.h: Likewise.
5295         * config/i386/osfrose.h: Likewise.
5296         * config/i386/sco5.h: Likewise.
5297         * config/i386/svr3gas.h: Likewise.
5298         * config/ia64/aix.h: Likewise.
5299         * config/m32r/m32r.h: Likewise.
5300         * config/m68k/m68k.h: Likewise.
5301         * config/m88k/dgux.h: Likewise.
5302         * config/m88k/m88k.h: Likewise.
5303         * config/mcore/mcore-pe.h: Likewise.
5304         * config/mips/mips.h: Likewise.
5305         * config/pa/pa.h: Likewise.
5306         * config/pa/pa-linux.h: Likewise.
5307         * config/romp/romp.h: Likewise.
5308         * config/rs6000/sysv4.h: Likewise.
5309         * config/rs6000/xcoff.h: Likewise.
5310         * config/s390/linux.h: Likewise.
5311         * config/sparc/sparc.h: Likewise.
5312         * config/sparc/sysv4.h: Likewise.
5313         * config/stormy16/stormy16.h: Likewise.
5314         * config/v850/v850.h: Likewise.
5315         * config/vax/vms.h: Likewise.
5316         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
5317         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
5318         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
5319         default_elf_asm_named_section for SHF_MERGE sections.
5320
5321 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
5322
5323         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
5324         is OK.
5325
5326 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
5327
5328         * c-common.c (split_specs_attrs): Allow for empty attributes with
5329         empty TREE_PURPOSE.  Fixes PR c/4294.
5330
5331 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
5332
5333         * basic-block.h (cached_make_edge, make_single_succ): New.
5334         (make_edge): Remove first parameter.
5335         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
5336         * cfg.c (cached_make_edge): Rename from make_edge; return newly
5337         created edge; use obstack allocation.
5338         (make_edge, make_single_succ_edge): New.
5339         (first_removed_edge): New static variable.
5340         (init_flow): Initialize first_removed_edge and n_edges.
5341         (clear_edges): Use remove_edge.
5342         (flow_delete_block): Likewise.
5343         (remove_edge): Add removed edges to the removed edges list.
5344         (split_block, redirect_edge_and_branch_force, split_edge):
5345         Use make_edge.
5346         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
5347         (add_noreturn_fake_exit_edges): Likewise.
5348         (connect_infinite_loops_to_exit): Liekwise.
5349         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
5350         Use cached_make_edge.
5351         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
5352         * profile.c (branch_prob): Update make_edge call.
5353         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
5354
5355 2001-09-11  Richard Henderson  <rth@redhat.com>
5356
5357         * config/alpha/alpha.c: Tidy formatting.
5358         (local_symbolic_operand): Verify mode.
5359         (alpha_sa_mask): Ignore unicos for eh_return.
5360         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
5361         * config/alpha/alpha.md (umk divsi patterns): Remove.
5362         (extendsfdf2): Remove unicos check.
5363         (tablejump): Merge vms and unicos code; always use direct set
5364         plus label_ref use.
5365
5366 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5367
5368         * config.gcc (alpha*-*-unicosmk*): New target.
5369
5370         * config/alpha/alpha-protos.h (symbolic_operand,
5371         unicosmk_add_call_info_word, unicosmk_add_extern,
5372         unicosmk_defer_case_vector, unicosmk_unique_section,
5373         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
5374         unicosmk_asm_file_start, unicosmk_asm_file_end,
5375         unicosmk_output_common): Declare.
5376
5377         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
5378         direct_return, function_arg, alpha_va_start, alpha_va_arg,
5379         alpha_does_function_need_gp, alpha_end_function): Support Cray
5380         Unicos/Mk.
5381         (alpha_init_machine_status, alpha_mark_machine_status,
5382         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
5383         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
5384         unicosmk_asm_named_section, unicosmk_insert_attributes,
5385         unicosmk_section_type_flags, symbolic_operand,
5386         unicosmk_output_module_name, unicosmk_output_default_externs,
5387         unicosmk_output_dex, unicosmk_output_externs,
5388         unicosmk_output_addr_vec, unicosmk_ssib_name,
5389         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
5390         unicosmk_asm_file_end, unicosmk_output_common,
5391         unicosmk_section_type_flags, unicosmk_unique_section,
5392         unicosmk_add_call_info_word, unicosmk_text_section,
5393         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
5394         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
5395         unicosmk_dex_count, unicosmk_special_name): New.
5396         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
5397         TARGET_ABI_UNICOSMK.
5398         (get_aligned_mem, alpha_expand_unaligned_load,
5399         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
5400         alpha_expand_unaligned_store_words): Support big-endian mode.
5401         (print_operand): Likewise. New format specifier 't'. Use
5402         TARGET_AS_SLASH_BEFORE_SUFFIX.
5403         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
5404         (alpha_pv_save_size): Update with above change.
5405         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
5406         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
5407         Unicos/Mk.
5408
5409         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
5410         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
5411         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
5412         (EXTRA_CONSTRAINT): New constraint 'U'.
5413         (PREDICATE_CODES): Add symbolic_operand.
5414
5415         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
5416         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
5417         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
5418         (integer division and modulus patterns): Split in default and
5419         Unicos/Mk versions.
5420         (*divmodsi_internal, *divmoddi_internal): Disable for
5421         TARGET_ABI_UNICOSMK.
5422         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
5423         little-endian and big-endian versions.
5424         (ext, ins, msk): Likewise.
5425         (extv, extzv, insv): Support big-endian mode.
5426         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
5427         (call_umk, call_value_umk, *call_umk, tablejump_umk,
5428         *tablejump_umk_internal, *call_value_umk): New.
5429         (*movdi_nofix): Add pattern for loading an address into a register on
5430         TARGET_ABI_UNICOSMK.
5431         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
5432         (umk_mismatch_args, arg_home_umk): New.
5433         (various insns): Don't use mov, fmov, nop, fnop and unop.
5434         (realign): Support TARGET_ABI_UNICOSMK.
5435
5436         * config/alpha/unicosmk.h: New file.
5437         * config/alpha/t-unicosmk: New file.
5438
5439         * fixinc/inclhack.def (unicosmk_restrict): New.
5440         * fixinc/fixincl.x: Regenerate.
5441
5442         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
5443         (wchar_t): Check for and define __WCHAR_T__.
5444
5445 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
5446
5447         * combine.c (simplify_shift_const): Treat shifts by the mode
5448         size as undefined.
5449
5450 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5451
5452         * cpphash.h (struct tokenrun): New.
5453         (struct cpp_context): New member bol.
5454         (struct cpp_reader): New members.
5455         (_cpp_init_tokenrun): New.
5456         * cppinit.c (cpp_create_reader): Set up the token runs.
5457         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
5458         (lex_token): New internalised version of _cpp_lex_token.  Don't
5459         handle directives or the multiple include opimisation here any
5460         more.  Simply lex a token.
5461         * cpplib.c (run_directive): Clear bol.
5462         (_cpp_pop_buffer): Set bol.
5463         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
5464         arguments.
5465
5466 2001-09-11  Michael Meissner  <meissner@redhat.com>
5467
5468         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
5469         give an error if the user uses -mfp32.
5470         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
5471         default options.
5472         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
5473         floating point register size.
5474         (EXTRA_SPECS): Add CPP_FPR_SPEC.
5475
5476         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
5477         HOST_WIDE_INT_PRINT_DEC to properly print the result of
5478         int_size_in_bytes.
5479         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
5480         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
5481
5482 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
5483
5484         * dbxout.c (dbxout_parms): Fix typo in comment.
5485         * unroll.c (loop_find_equiv_value): Ditto.
5486         * toplev.c (rest_of_compilation): Ditto.
5487         * loop.c (scan_loop): Ditto.
5488         * dwarf2out.c (struct dw_fde_struct): Ditto.
5489
5490 2001-09-10  Zack Weinberg  <zackw@panix.com>
5491
5492         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
5493         copying identifier when we're just going to throw it away.
5494         (parse_identifier_slow): New routine to handle abnormal cases.
5495         (_cpp_lex_token): Update call site.
5496
5497         * hashtable.c (ht_lookup): Don't assume that the string we've
5498         been given is NUL-terminated.
5499         * system.h: #define __builtin_expect(a, b) to (a) if not
5500         GCC >=3.0.
5501
5502 2001-09-10  Michael Meissner  <meissner@redhat.com>
5503
5504         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
5505         binutils, gdb.
5506
5507 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
5508
5509         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
5510
5511 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5512
5513         * builtins.c (c_getstr): Correct thinko in last change and further
5514         cleanup.
5515
5516 2001-09-10  Tim Freeman <tim@fungibole.com>
5517
5518         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
5519         into varray's and register them as roots with the garbage
5520         collector so they are not collected too soon.
5521
5522 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
5523
5524         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
5525         New.
5526         * basic-block.h (flow_obstack, label_value_list,
5527         tail_recursion_label_list): Declare
5528         (tidy_fallthru_edges): Declare.
5529         (expunge_block, last_loop_beg_note): Delete.
5530         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
5531         * cfg.c: New file
5532         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
5533         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
5534         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
5535         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
5536         expunge_block, flow_delete_block, compute_bb_for_insn,
5537         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
5538         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
5539         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
5540         try_redirect_by_replacing_jump, last_loop_beg_note,
5541         redirect_edge_and_branch, redirect_edge_and_branch_force,
5542         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
5543         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
5544         commit_edge_insertions, dump_flow_info, debug_flow_info,
5545         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
5546         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
5547         Move here from flow.c
5548         * cfganal.c: New file.
5549         (forwarder_block_p, can_fallthru, mark_critical_edges,
5550          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
5551          find_unreachable_blocks, create_edge_list, free_edge_list,
5552          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
5553          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
5554          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
5555          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
5556          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
5557          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
5558         Move here from flow.c
5559         * cfgbuild.c: New file
5560         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
5561          make_edges, find_basic_blocks_1, find_basic_blocks,
5562          find_sub_basic_blocks): Move here from flow.c
5563         * cfgcleanup.c: New file.
5564         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
5565          merge_blocks_move_predecessor_nojumps,
5566          merge_blocks_move_successor_nojumps, merge_blocks,
5567          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
5568          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
5569         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
5570         if succeeded.
5571         * cfgloop.c: New file
5572         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
5573          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
5574          flow_loop_exit_edges_find, flow_loop_nodes_find,
5575          flow_loop_pre_header_scan, flow_loop_pre_header_find,
5576          flow_loop_tree_node_add, flow_loops_tree_build,
5577          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
5578          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
5579         Move here from flow.c
5580         * flow.c: Remove everything moved elsewhere
5581         * output.h (cleanup_cfg): Return bool.
5582
5583         * bb-reorder.c (reorder_block_def): Remove 'index'.
5584         (insert_intra_1): Add argument BB, set block for new note.
5585         (make_reorder_chain): Do not depdent on BB indexes.
5586         (make_reorder_chain_1): Do not use BB indexes.
5587         (label_for_bb): Likewise; set BB for new insn.
5588         (emit_jump_to_block_after): Likewise.
5589         (fixup_reoder_chain): Sanity check that all basic blocks
5590         are chained; verify newly created insn chain; remove
5591         undocnitional jump simplifying; Do not use BB indexes;
5592         properly initialize count and frequency information;
5593         dump reordered sequence.
5594         (insert_intra_bb_scope_notes): update call of insert_intra_1.
5595         (insert_inter_bb_scope_notes): Set block for new insn.
5596         (reorder_basic_blocks): Dump flow info before reoredering.
5597
5598 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5599
5600         * alias.c (clear_reg_alias_info): Use K&R format definition.
5601         Avoid unsigned warning.
5602         * builtins.c: Use "unsigned int", not "unsigned".
5603         (target_char_cast): Use host_integerp and tree_low_cst.
5604         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
5605         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
5606         (c_getstr): Likewise.
5607         (std_expand_builtin_va_arg): Use int_size_in_bytes.
5608         (builtin_memcpy_read_str): Avoid unsigned warning.
5609         (expand_builtin_memcpy): Alignments are unsigned.
5610         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
5611         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
5612         * predict.c (expensive_function_p): LIMIT now unsigned.
5613         * resource.c (mark_target_live_regs): Make some vars unsigned.
5614         * sdbout.c: Use "unsigned int", not "unsigned".
5615         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
5616         (sdbout_source_line): Likewise.
5617         (sdbout_record_type_name): Remove "const" for NAME declaration.
5618         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
5619
5620 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
5621
5622         * calls.c (store_one_arg): Expand comment.
5623
5624 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5625
5626         * calls.c (store_one_arg): Make sure that the entire argument is
5627         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
5628
5629 2001-09-09  Richard Henderson  <rth@redhat.com>
5630
5631         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
5632
5633 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
5634
5635         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
5636
5637 2001-09-09  Richard Henderson  <rth@redhat.com>
5638
5639         * config/alpha/alpha.c (alpha_next_sequence_number): New.
5640         (alpha_this_literal_sequence_number): New.
5641         (alpha_this_gpdisp_sequence_number): New.
5642         (some_operand, input_operand): Add HIGH.
5643         (local_symbolic_operand): New.
5644         (alpha_encode_section_info): New.
5645         (alpha_legitimate_address_p): Allow LO_SUM.
5646         (alpha_legitimize_address): Generate HIGH+LO_SUM.
5647         (alpha_expand_mov): Likewise.
5648         (secondary_reload_class): Check memory_operand not general_operand
5649         for FP_REGS test.
5650         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
5651         (alpha_expand_unaligned_store): Likewise.
5652         (alpha_expand_unaligned_load_words): Likewise.
5653         (alpha_expand_unaligned_store_words): Likewise.
5654         (alpha_expand_block_clear): Likewise.
5655         (print_operand): Handle %#, %*, %H.
5656         (print_operand_address): Handle LO_SUM.
5657         (find_lo_sum): New.
5658         (alpha_does_function_need_gp): Use it.
5659         (alpha_expand_block_move): Fix signed compare warnings.
5660         (alpha_sa_mask, alpha_align_insns): Likewise.
5661         * config/alpha/alpha-protos.h: Update.
5662         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
5663         (MASK_EXPLICIT_RELOCS): New.
5664         (TARGET_SWITCHES): Add -mexplicit-relocs.
5665         (EXTRA_CONSTRAINT): Add 'T'.
5666         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
5667         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
5668         (ENCODE_SECTION_INFO): Out line.
5669         (REDO_SECTION_INFO_P): New.
5670         (STRIP_NAME_ENCODING): New.
5671         (ASM_OUTPUT_LABELREF): New.
5672         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
5673         (PREDICATE_CODES): Update.
5674         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
5675         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
5676         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
5677         builtin_setjmp_receiver_er, exception_receiver_1_er,
5678         call_value_osf_1_er): New patterns.
5679         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
5680         (movqi, movhi, movsi): Add explicit $31 base register to lda.
5681         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
5682         (FINAL_PRESCAN_INSN): New.
5683
5684 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
5685
5686         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
5687
5688 2001-09-08  Andreas Jaeger  <aj@suse.de>
5689
5690         * i386.h (TARGET_SWITCHES): Fix description.
5691
5692 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
5693
5694         * rs6000.c (num_insns_constant): Compute number of instructions
5695         more accurately.
5696
5697         * doc/install.texi: Explain AIX exception handling work-around.
5698         Update URL for AIX fixes.
5699
5700 2001-09-07  Jim Wilson  <wilson@redhat.com>
5701
5702         * alias.c (clear_reg_alias_info): New.
5703         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
5704         * rtl.h (clear_reg_alias_info): Declare.
5705
5706 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5707
5708         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
5709         available.
5710         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
5711         (m16m,edivm,emulm): Change declaration to match definition.
5712
5713 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
5714
5715         * reload.c (push_reload): Check for subreg_lowpart_p instead of
5716         SUBREG_BYTE being 0 when determining if the inner part of a subreg
5717         can be reloaded.
5718
5719 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5720
5721         * c-common.c (signed_or_unsigned_type): Handle machine mode types
5722         which have no corresponding C type.
5723         * fold_const.c (target_isinf,target_isnan,target_negative): Update
5724         the representation of 64-bit doubles to work with 64-bit ints.
5725
5726 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
5727
5728         * config/mips/mips.c (override_options): Do not override ISA when ABI
5729         specified if MIPS_CPU_STRING_DEFAULT was specified.
5730
5731 2001-09-07  Richard Henderson  <rth@redhat.com>
5732
5733         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
5734         (express_from_1): Wrap lines.
5735         * rtlanal.c (commutative_operand_precedence): Rename from
5736         operand_preference; export.
5737         * rtl.h: Declare it.
5738         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
5739         (simplify_binary_operation): Invoke simplify_plus_minus on
5740         (CONST (PLUS ...)) as well.
5741         (struct simplify_plus_minus_op_data): New.
5742         (simplify_plus_minus_op_data_cmp): New.
5743         (simplify_plus_minus): Use them.  Avoid infinite recursion with
5744         simplify_binary_operation wrt CONST.
5745
5746 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
5747
5748         * h8300-protos.h (general_operand_dst_push): Remove.
5749         * h8300.c (general_operand_dst_push): Likewise.
5750         * h8300.h (OK_FOR_T): Likewise.
5751         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
5752         * h8300.md (pushqi_h8300): New.
5753         (pushqi_h8300hs): Likewise.
5754         (pushqi): Likewise.
5755         (pushhi_h8300): Likewise.
5756         (pushhi_h8300hs): Likewise.
5757         (pushhi): Likewise.
5758
5759 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5760
5761         * genattrtab.c (attr_printf): First arg is unsigned.
5762         Clean up formatting of callers.
5763
5764 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
5765
5766         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
5767         registers.
5768
5769 2001-09-07  Andreas Jaeger  <aj@suse.de>
5770
5771         * i386.h (TARGET_SWITCHES): Fix descriptions.
5772
5773 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5774
5775         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
5776
5777 2001-09-06  Ira Ruben  <ira@apple.com>
5778
5779         Remove OP_IDENTIFIER.
5780         * tree.def (OP_IDENTIFIER): Remove.
5781         * tree.c (tree_node_kind enum): Remove op_id_kind.
5782         (tree_node_kind_names): Remove "op_identifiers".
5783         (make_node): Remove OP_IDENTIFIER test.
5784         (build_op_identifier): Removed because it isn't being used.
5785         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
5786         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
5787
5788 2001-09-06  Richard Henderson  <rth@redhat.com>
5789
5790         * simplify-rtx.c (simplify_binary_operation): Revert last change.
5791
5792 2001-09-06  Richard Henderson  <rth@redhat.com>
5793
5794         * simplify-rtx.c (simplify_binary_operation): Simplify contents
5795         of CONST.
5796
5797 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5798
5799         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
5800         number used for CR register.
5801
5802 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
5803                           Joern Rennecke (amylaar@cygnus.com)
5804
5805         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
5806         * h8300.c (initial_offset): Handle offset between RP and FP.
5807         (h8300_return_addr_rtx): New function.
5808         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
5809         return register.
5810         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
5811         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
5812         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
5813         (CAN_ELIMINATE, REGISTER_NAMES):
5814         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
5815
5816 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
5817
5818         Remove TYPE_NONCOPIED_PARTS.
5819         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
5820         (struct tree_type): Remove noncopied_parts.
5821         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
5822         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
5823         (fixed_type_p): Remove.
5824         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
5825         (expand_expr, MODIFY_EXPR): Likewise.
5826         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
5827         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
5828
5829 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
5830
5831         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
5832         compiler warnings.
5833         (mask64_operand): Likewise.
5834         (includes_rldic_lshift_p): Likewise.
5835         (includes_rldicr_lshift_p): Likewise.
5836
5837 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
5838
5839         * objc/objc-act.c (build_message_expr): If a class method cannot
5840         be found, do not issue a warning if a corresponding instance
5841         method exists in the root class.
5842
5843 2001-09-05  Richard Henderson  <rth@redhat.com>
5844
5845         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
5846
5847 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
5848
5849         * function.c (ggc_mark_struct_function): Mark f->outer.
5850         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
5851         * integrate.c (output_inline_function): ... not here.
5852
5853 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
5854
5855         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
5856
5857         * i386.c (size_cost): New static variable.
5858         (override_function): Use size_cost when -Os is specified.
5859
5860         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
5861         properly;  Use current_function_calls_eh_return.
5862         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
5863         use leave to avoid dependency chain.
5864
5865         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
5866         get BB loop_depth instead of computing it from LOOP notes.
5867
5868         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
5869
5870 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5871
5872         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5873         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5874         UNALIGNED_DOUBLE_INT_ASM_OP): Define
5875
5876 2001-09-05  Jeffrey A Law  (law@cygnus.com)
5877             Jason Merrill (jason@redhat.com)
5878
5879         * stor-layout.c (layout_type): Complain if an array's size can
5880         not be represented in a size_t.
5881
5882         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
5883
5884 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
5885
5886         * gcc.c: (process_command) Add parentheses around assignment
5887         used as truth value.
5888
5889 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
5890
5891         * config/mips/mips.c (save_restore_insns): Don't mark any register
5892         save slots as unchanging if current_function_calls_eh_return.
5893
5894 2001-09-05  Richard Henderson  <rth@redhat.com>
5895
5896         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
5897         * config/alpha/alpha-protos.h: Declare it.
5898         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
5899         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
5900         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
5901         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
5902         (REG_OK_FOR_BASE_P): Select one of the above.
5903
5904 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
5905
5906         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
5907         (crti.o): Prefix name of object file with $(T).
5908         (crtn.o): Likewise.
5909
5910 2001-09-05  David S. Miller  <davem@redhat.com>
5911
5912         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
5913         * config/sparc/linux64.h: Likewise.
5914
5915 2001-09-05  Andreas Jaeger  <aj@suse.de>
5916
5917         * doc/invoke.texi (i386 Options): -mwide-multiply is not
5918         available anymore, remove the documentation.
5919         (i386 Options): Fix typo, cleanup index entries.
5920
5921         * prefix.c (concat): Remove, we can use the version from liberty.
5922
5923 2001-09-05  Richard Henderson  <rth@redhat.com>
5924
5925         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
5926         New functions split out of md file expanders.
5927         * config/alpha/alpha-protos.h: Declare them.
5928         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
5929
5930 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
5931
5932         * cppmacro.c (funlike_invocation_p): No need to restore context.
5933
5934 2001-09-04  Richard Henderson  <rth@redhat.com>
5935
5936         * reload.c (push_reload): Export.
5937         * reload.h (push_reload): Declare it.
5938
5939         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
5940         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
5941         * config/alpha/alpha.c (alpha_legitimize_address): New.
5942         (alpha_legitimize_reload_address): Likewise.
5943         * config/alpha/alpha-protos.h: Declare them.
5944
5945 2001-09-04  Stan Shebs  <shebs@apple.com>
5946
5947         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
5948         * config/darwin.c (machopic_stub_name): Account for internally
5949         generated lib calls such as memcpy.
5950
5951 2001-09-04  Richard Henderson  <rth@redhat.com>
5952
5953         * unwind.h (_UA_END_OF_STACK): New flag.
5954         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
5955
5956 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
5957
5958         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
5959
5960 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
5961
5962         * config/mips/mips.c (save_restore_insns): Change base_offset to
5963         fp_offset in second call to mips_emit_frame_related_store.
5964
5965 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
5966
5967         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
5968         sometimes be represented as a NOTE of type
5969         NOTE_INSN_DELETED_LABEL.
5970         (Insns): Document NOTE_INSN_DELETED_LABEL.
5971
5972 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
5973
5974         * c-common.h (tree_dump_index): Add more comments.
5975         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
5976         (dump_option_value_info): New struct.
5977         (dump_options): New array.
5978         (dump_switch_p): Parse switch options symbolically.
5979         * doc/invoke.texi (-fdump-ast): Rename to ...
5980         (-fdump-tree): ... here. Document that options are symbolic, and
5981         not all are applicable.
5982
5983 2001-09-04  David S. Miller  <davem@redhat.com>
5984
5985         * config/sparc/sparc.md (define_splits): Kill constraints.
5986
5987         Cleanup redundant and unused insn attributes.
5988         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
5989         binary, and move.  Mark ialu as default.
5990         (commented out define_function_unit "alu"): Kill.
5991         (define_attr "use_clobbered"): Kill.
5992         (whole file): Kill address insn type references.  Replace
5993         all unary/binary/move references with ialu.
5994         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
5995         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
5996         TYPE_IALU.
5997
5998         Simplify length insn attribute and make more judicious use
5999         of insn attribute defaulting.
6000         * config/sparc/sparc.md (all insns with length > one): Mark as
6001         insn type multi if real instructions, else use default if
6002         it is a forced splitter.
6003         (all insns with length == one): Use default insn length.
6004         (all insns of type ialu): Use default insn type.
6005
6006         Fix erroneous insn attribute settings.
6007         (addx): Set insn type to misc.
6008         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
6009         const_umulsidi3_sp64): Set insn type to imul.
6010
6011         Track SFmode vs DFmode insns according to UltraSPARC
6012         scheduling rules.
6013         * config/sparc/sparc.md ("fptype"): New attribute, default
6014         to "single".
6015         (all DFmode single insns): Mark as fptype "double".
6016
6017 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
6018
6019         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
6020
6021 2001-09-03  Richard Henderson  <rth@redhat.com>
6022
6023         * function.h (struct function): Add arg_pointer_save_area_init.
6024         * function.c (expand_function_end): Init arg_pointer_save_area.
6025         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
6026         when called from a nested function.
6027
6028 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
6029
6030         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
6031         is enabled.
6032
6033 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
6034
6035         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
6036
6037 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
6038
6039         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
6040         (emit_push_insn): Use specified padding direction when
6041         STACK_PUSH_CODE is POST_INC.
6042
6043         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
6044
6045 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6046
6047         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
6048
6049 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6050
6051         * cppinit.c (cpp_start_read): Free the imacros list as we
6052         traverse it.  Don't free the chains before returning.
6053         (_cpp_push_next_buffer): Only try pushing buffers if we've
6054         completed -imacros handling.
6055
6056 2001-08-31  Eric Christopher  <echristo@redhat.com>
6057
6058         * gcc.c (handle_braces): Add explaination for abort.
6059
6060 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
6061
6062         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
6063         move adjustment of bitpos instead.
6064
6065 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
6066
6067         * function.c: Remove all_functions.  Make outer_function_chain
6068         static.
6069         (init_function_start): Don't add new function structure to
6070         all_functions.
6071         (find_function_data, push_function_context_to,
6072         pop_function_context_from, put_var_into_stack,
6073         trampoline_address): Update for changed structure element names.
6074         (push_function_context_to): Disentangle.
6075         (free_after_compilation): Also free F.
6076         (expand_dummy_function_end): Don't free cfun here.
6077         (put_var_into_stack): Comment why we can't use find_function_data here.
6078         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
6079         (mark_function_chain): Split into maybe_mark_struct_function and
6080         ggc_mark_struct_function.  Export the latter.
6081         (init_function_once): Mark from cfun and outer_function_chain;
6082         not all_functions.
6083
6084         * function.h (struct function): Kill next_global.  Rename next
6085         to outer.  All users updated to match.
6086         (all_functions, outer_function_chain): Don't declare.
6087
6088         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
6089         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
6090         don't touch f->inlinable, after calling rest_of_compilation.
6091
6092         * tree.h: Forward-declare struct function.  Prototype
6093         ggc_mark_struct_function.
6094
6095 2001-08-31  Kazu Hirata  <kazu@hxi.com>
6096
6097         * config/h8300/h8300.md (*andorhi3): Fix typos.
6098
6099 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6100
6101         * calls.c (emit_library_call_value): Don't use a fixed
6102         argument after VA_CLOSE, i.e. out of scope in traditional C.
6103
6104         * emit-rtl.c (gen_rtvec): Likewise.
6105
6106 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6107
6108         * Makefile.in (c-pragma.o): Depend on output.h.
6109         (reorg.o): Depend on except.h.
6110
6111         * c-pragma.c: Include output.h.
6112
6113         * reorg.c: Include except.h.
6114
6115         * unwind-dw2.c: Call __builtin_alloca, not alloca.
6116
6117 2001-08-31  Richard Henderson  <rth@redhat.com>
6118
6119         * sched-deps.c (add_dependence): Don't elide dependency if the
6120         conditional used by insn is modified in elem.
6121
6122 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
6123
6124         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
6125
6126 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
6127
6128         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
6129         dump_switch_p.
6130
6131 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
6132
6133         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
6134         function.
6135         (stormy16_asm_out_constructor): New function.
6136         (TARGET_ASM_CONSTRUCTOR): Define.
6137         (TARGET_ASM_DESTRUCTOR): Define.
6138
6139 2001-08-31  Andreas Jaeger  <aj@suse.de>
6140
6141         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
6142         * loop.c (add_label_notes): Likewise.
6143         * reload.c (find_reloads): Likewise.
6144         * config/sh/sh.c (machine_dependent_reorg): Likewise.
6145
6146 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
6147
6148         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
6149         code here.  Take _Unwind_{W,Sw}ord*.
6150         (read_encoded_value_with_base): Use them.
6151         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
6152         words.
6153         (extract_cie_info): Simplify read_?leb128 handling.
6154         (execute_stack_op, execute_cfa_program): Likewise.
6155         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
6156
6157 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
6158
6159         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
6160         the frame pointer to pop the stack if convenient.
6161
6162         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
6163         Don't use post-increment before combine.
6164         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
6165         a call-saved register.
6166
6167 2001-08-31  Andreas Jaeger  <aj@suse.de>
6168
6169         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
6170         code was correct.
6171
6172 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
6173
6174         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
6175         not DIV/MOD, of course.
6176
6177 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
6178
6179         * rtl.def: Undo my patch commited 2001-08-27.
6180
6181         * genattrtab.c: Ditto.
6182
6183         * rtl.h: Ditto.
6184
6185         * sched-int.h: Ditto.
6186
6187         * target-def.h: Ditto.
6188
6189         * target.h: Ditto.
6190
6191         * haifa-sched.c: Ditto.
6192
6193         * sched-rgn.c: Ditto.
6194
6195         * sched-vis.c: Ditto.
6196
6197         * Makefile.in: Ditto.
6198
6199         * doc/md.texi: Ditto.
6200
6201         * doc/tm.texi: Ditto.
6202
6203         * doc/contrib.texi: Ditto.
6204
6205         * doc/gcc.texi: Ditto.
6206
6207         * genattrtab.h: Remove it.
6208
6209         * genautomata.c: Remove it.
6210
6211         * genattr.c: Undo my patch and Richard Henderson's patch commited
6212         2001-08-27.
6213
6214 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
6215
6216         * config.gcc (h8300-*-elf*): New case.
6217         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
6218         (SUBTARGET_CPP_SPEC): Define.
6219         (EXTRA_SPECS): Define.
6220         (SUBTARGET_EXTRA_SPECS): Define.
6221         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
6222         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
6223
6224 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
6225
6226         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
6227         (LIB2FUNCS_EXTRA): Define.
6228         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
6229         config/h8300/fixunssfsi.c: New file.
6230
6231 2001-08-30  Kazu Hirata  <kazu@hxi.com>
6232
6233         * config/h8300/h8300.md (zero_extendqihi2): Changes to
6234         define_expand to accommodate target-specific attributes.
6235         (anonymous zero_extendqihi2 patterns): New.
6236
6237 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
6238
6239         * h8300.md (*andorhi3): New pattern.
6240
6241 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
6242
6243         * h8300.c (dosize): Fix test for "sub".
6244
6245 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
6246
6247         * c-typeck.c (pointer_diff): Try to eliminate common term before
6248         doing conversions.
6249
6250 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
6251
6252         * config/arm/arm.c (arm_compute_initial_elimination_offset):
6253         Account for the saves of the FP registers.
6254
6255         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
6256         (TEXT_SECTION_ASM_OP): Define.
6257         (INIT_SECTION_ASM_OP): Define.
6258         (FINI_SECTION_ASM_OP): Define.
6259         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
6260         (RDATA_SECTION_FUNCITON): Provide prototype.
6261
6262 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
6263
6264         * reload1.c (move2add_note_store): Correct typo checking for
6265         argument pushes.
6266
6267 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
6268
6269         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
6270         note should not be considered outside the libcall block.
6271
6272 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6273
6274         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
6275
6276 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6277
6278         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
6279
6280 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6281
6282         * config/h8300/h8300-protos.h: Add a prototype for
6283         emit_logical_op.
6284         * config/h8300/h8300.c (emit_logical_op): New.
6285         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
6286         (andsi3): Likewise.
6287         (iorhi3): Likewise.
6288         (iorsi3): Likewise.
6289         (xorhi3): Likewise.
6290         (xorsi3): Likewise.
6291
6292 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6293
6294         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
6295         comparison with rtx INTVAL.
6296         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
6297         expression.
6298         * pa.h (FUNCTION_ARG_SIZE): Likewise.
6299
6300 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6301
6302         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
6303         comment typos.
6304
6305 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6306
6307         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
6308         (reg n) to (mem (pre_dec (reg n))
6309         (anonymous movsi pattern): Likewise.
6310
6311 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6312
6313         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
6314
6315 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6316
6317         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
6318         several special constants.
6319
6320 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6321
6322         * config/h8300/lib1funcs.asm: Fix comment typos.
6323
6324 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6325
6326         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
6327         Fix format specifier warnings.
6328
6329         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
6330         inet_makeaddr, semctl): Prototype.
6331
6332         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
6333         (save_restore_insns): Use base_offset, not gp_offset.
6334
6335         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
6336         (ASM_OUTPUT_BYTE): Fix format specifier warning.
6337
6338 2001-08-29  Richard Henderson  <rth@redhat.com>
6339
6340         * bb-reorder.c (function_tail_eff_head): New.
6341         (record_effective_endpoints): Set it.
6342         (fixup_reorder_chain): Use it.
6343
6344 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6345
6346         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
6347
6348 2001-08-28  Dale Johannesen  <dalej@apple.com>
6349
6350         * config/darwin.c (machopic_function_base_name): Add const
6351         qualifier to a string.
6352         (darwin_encode_section_info): Ditto.
6353
6354 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6355
6356         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
6357         function definition.
6358
6359 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
6360
6361         * df.h (struct df): Add rts_order variable.
6362
6363         * df.c (df_visit_next_rts): New function.
6364         (df_visit_next): Renamed to df_visit_next_rc
6365         (df_analyse_1): Allocate/compute/free rts_order as well.
6366         (df_rd_global_compute): Use df_visit_next_rc instead of
6367         df_visit_next.
6368         (df_ru_global_compute): Use df_visit_next_rts instead of
6369         df_visit_next.
6370
6371         * flow.c (flow_reverse_top_sort_order_compute): New function.
6372
6373         * basic-block.h: Add prototype.
6374
6375 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
6376
6377         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
6378         blocks, the BB_REACHABLE is now set, rather than aux being
6379         non-NULL. Update the test to reflect this.
6380
6381 2001-08-28  Eric Christopher  <echristo@redhat.com>
6382
6383         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
6384         config/mips/crti.asm: Ditto.
6385
6386 2001-08-28  Eric Christopher <echristo@redhat.com>
6387             Richard Henderson <rth@redhat.com>
6388
6389         * c-pragma.h (add_weak): Move prototype from here...
6390         * output.h (add_weak): ... to here.
6391         * varasm.c (add_weak): Fix typo.
6392         * config/mips/crti.asm: New file.
6393         * config/mips/crtn.asm: Ditto.
6394         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
6395         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
6396         (INVOKE__main): Ditto.
6397         (INIT_SECTION_ASM_OP): New.
6398         (FINI_SECTION_ASM_OP): Ditto.
6399         (STARTFILE_SPEC): Add crti.
6400         (ENDFILE_SPEC): Add crtn.
6401         * config/mips/elf64.h: Same.
6402         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
6403         Remove.
6404         * config/mips/vxworks.h: Ditto.
6405         * config/mips/t-elf: Support crti and crtn.
6406
6407 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
6408
6409         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
6410         INSN_LIST.
6411
6412 2001-08-28  Richard Henderson  <rth@redhat.com>
6413
6414         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
6415         (one_cmplbi2 splitter): Remove redundant test.
6416
6417 2001-08-28  Dale Johannesen  <dalej@apple.com>
6418
6419         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
6420
6421 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
6422
6423         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
6424
6425 2001-08-28  Stan Shebs  <shebs@apple.com>
6426
6427         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
6428         (UNALIGNED_SHORT_ASM_OP): Define.
6429         (UNALIGNED_INT_ASM_OP): Define.
6430
6431 2001-08-28  Will Cohen  <wcohen@redhat.com>
6432
6433         * config/rs6000/rs6000.md (store_multiple): Correct RTL
6434         generation for first set.
6435
6436 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
6437
6438         * flow.c (redirect_edge_succ_nodup): Return new edge.
6439         (try_simplify_condjump): Use new edge.
6440         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
6441
6442         * cse.c (cse_basic_block): Skip note instructions.
6443
6444 2001-08-27  Richard Henderson  <rth@redhat.com>
6445
6446         * combine.c (combine_simplify_rtx): Don't reverse condition
6447         if there is no reverse for the condition.
6448         (simplify_comparison): Don't simplify subregs from INT to FP.
6449
6450         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
6451         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
6452         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
6453         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
6454         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
6455         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
6456
6457 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
6458
6459         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
6460         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
6461         (pushqi1): New.
6462         (adddi_dilshr32, adddi_dishl32): Only data register can be
6463         source for mem destination.
6464
6465         * expmed.c (store_bit_field): Ignore adjustment to bitpos
6466         and use bitnum to decide about register move.
6467
6468 2001-08-27  Richard Henderson  <rth@redhat.com>
6469
6470         * genattr.c (main): Emit state_t even when not doing scheduling.
6471
6472 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
6473             Richard Henderson  <rth@redhat.com>
6474
6475         * gcse.c (reg_first_set, reg_last_set): Replace with ...
6476         (reg_avail_info, current_bb): ... these.
6477         (oprs_unchanged_p, record_last_reg_set_info): Use them.
6478         (compute_hash_table): Likewise.
6479
6480 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
6481
6482         * flow.c (verify_flow_info): Use checksums to verify edges.
6483
6484 2001-08-27  Richard Henderson  <rth@redhat.com>
6485
6486         * genautomata.c (expand_automata): Always create a description.
6487
6488 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
6489
6490         * optabs.c (expand_binop): Correctly handle the carry in multiword
6491         add/subtract operations.
6492
6493 2001-08-27  Fred Fish  <fnf@be.com>
6494
6495         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
6496         __SIZE_TYPE__.
6497
6498 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
6499
6500         * reload.c (find_reloads_toplev): Back out this change:
6501
6502         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
6503
6504         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
6505         mem if the address is a mode_dependent_address_p.
6506
6507 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
6508
6509         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
6510         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
6511         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
6512         RTL constructions.
6513
6514         * genattr.c (main): New variable num_insn_reservations.  Increase
6515         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
6516         pipeline hazard recognizer interface.
6517
6518         * genattrtab.h: New file.
6519
6520         * genattrtab.c: Include genattrtab.h.
6521         (attr_printf, check_attr_test, make_internal_attr,
6522         make_numeric_value): Move protypes into genattrtab.h.  Define them
6523         as external.
6524         (num_dfa_decls): New global variable.
6525         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
6526         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
6527         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
6528         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
6529
6530         * genautomata.c: New file.
6531
6532         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
6533
6534         * sched-int.h: (curr_state): Add the external definition for
6535         automaton pipeline interface.
6536         (haifa_insn_data): Add comments for members blockage and units.
6537
6538         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6539         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6540         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6541         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6542         TARGET_SCHED_DFA_POST_CYCLE_INSN,
6543         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6544         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
6545         macros.
6546         (TARGET_SCHED): Use the new macros.
6547
6548         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
6549         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
6550         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
6551         dfa_bubble): New members in gcc_target.sched.
6552
6553         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
6554         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
6555         (insn_queue): Redefine it as pointer to array.
6556         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
6557         INSN_QUEUE_SIZE.
6558         (max_insn_queue_index_macro_value): New variable.
6559         (curr_state, dfa_state_size, ready_try): New varaibles for
6560         automaton interface.
6561         (ready_element, ready_remove, max_issue): New function prototypes
6562         for automaton interface.
6563         (choose_ready): New function prototype.
6564         (insn_unit, blockage_range): Add comments.
6565         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
6566         FUNCTION_UNITS_SIZE == 0.
6567         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
6568         actual_hazard, potential_hazard): Add comments.
6569         (insn_cost): Use cost -1 as undefined value.  Remove
6570         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
6571         pipeline interface.
6572         (ready_element, ready_remove): New functions for automaton
6573         interface.
6574         (schedule_insn): Add new code for automaton pipeline interface.
6575         (queue_to_ready): Add new code for automaton pipeline interface.
6576         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
6577         (debug_ready_list): Print newline when the queue is empty.
6578         (max_issue): New function for automaton pipeline interface.
6579         (choose_ready): New function.
6580         (schedule_block): Add new code for automaton pipeline interface.
6581         Print ready list before scheduling each insn.
6582         (sched_init): Add new code for automaton pipeline interface.
6583         Initiate insn cost by -1.
6584         (sched_finish): Free the current automaton state and finalize
6585         automaton pipeline interface.
6586
6587         * sched-rgn.c: Include target.h.
6588         (init_ready_list, new_ready, debug_dependencies): Add new code for
6589         automaton pipeline interface.
6590
6591         * sched-vis.c: Include target.h.
6592         (get_visual_tbl_length): Add code for automaton interface.
6593         (target_units, print_block_visualization):  Add comments.
6594
6595         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
6596         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
6597         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
6598         (getruntime.o, genautomata.o): New entries.
6599         (genattrtab.o): Add new dependency file genattrtab.h.
6600         (genattrtab): Add new dependencies.  Link it with `libm.a'.
6601         (getruntime.o, hashtab.o): New entries for canadian cross.
6602
6603         * doc/md.texi: Description of automaton based model.
6604
6605         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
6606         Add comments.
6607         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6608         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6609         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6610         TARGET_SCHED_DFA_POST_CYCLE_INSN,
6611         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6612         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6613         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
6614         hook descriptions.
6615         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
6616         MAX_DFA_ISSUE_RATE): New macro descriptions.
6617
6618         * doc/contrib.texi: Add dfa based scheduler contribution.
6619
6620         * doc/gcc.texi: Add more information about genattrtab.
6621
6622 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
6623
6624         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
6625         an RTL basic block.
6626
6627 2001-08-27  Richard Henderson  <rth@redhat.com>
6628
6629         * function.c (expand_function_end): Don't init arg_pointer_save_area.
6630         (get_arg_pointer_save_area): New.  Create an init it here.
6631         (fix_lexical_addr): Use it.
6632         * function.h: Declare it.
6633         * builtins.c (expand_builtin_setjmp_receiver): Use it.
6634         * stmt.c (expand_nl_goto_receiver): Use it.
6635
6636 2001-08-27  Richard Henderson  <rth@redhat.com>
6637
6638         * final.c (final_scan_insn): Don't enter APP_ON mode for
6639         empty asm strings.
6640
6641         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
6642         alignment for assemble_integer for DW_EH_PE_aligned.
6643         * except.c (output_function_exception_table): Likewise.
6644
6645 2001-08-26  Andreas Jaeger  <aj@suse.de>
6646
6647         * c-tree.h: Add prototyp for c_sizeof_nowarn.
6648
6649 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
6650
6651         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
6652
6653 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
6654
6655         * config/rs6000/rs6000.c (mask_operand): Rewrite without
6656         bit-shifting loop.
6657         (mask64_operand): Likewise.
6658         (rldic_operand): Delete.
6659         (includes_lshift64_p): Delete.
6660         (includes_rldic_lshift_p): New function.
6661         (includes_rldicr_lshift_p): New function.
6662         (print_operand): Don't call rldic_operand in case 'W'.
6663         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
6664         (includes_lshift64_p): Remove.
6665         (includes_rldic_lshift_p): Declare.
6666         (includes_rldicr_lshift_p): Declare.
6667         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
6668         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
6669         Replace match_operand rldic_operand predicate with
6670         const_int_operand.  Replace includes_lshift64_p condition with
6671         includes_rldic_lshift_p.
6672         <ashldi3_internal 64 bit rldicr patterns>: New.
6673
6674 2001-08-27  Andreas Jaeger  <aj@suse.de>
6675
6676         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
6677         * errors.c: Likewise.
6678         * final.c: Likewise.
6679         * dwarf2asm.c: Likewise.
6680         * doprint.c (checkit): Likewise.
6681         * diagnostic.c: Likewise.
6682         * collect2.c: Likewise.
6683         * calls.c: Likewise.
6684         * c-semantics.c (build_stmt): Likewise.
6685         * c-format.c (status_warning): Likewise.
6686         * c-errors.c (pedwarn_c99): Likewise.
6687         * builtins.c (validate_arglist): Likewise.
6688         * config/pj/pj.c (pj_printf): Likewise.
6689         * fix-header.c: Likewise.
6690         * gcc.c: Likewise.
6691         * gcov.c (fnotice): Likewise.
6692         * gensupport.c (message_with_line): Likewise.
6693         * mips-tfile.c: Likewise.
6694         * protoize.c (notice): Likewise.
6695         * read-rtl.c (fatal_with_file_and_line): Likewise.
6696         * rtl-error.c: Likewise.
6697         * tradcpp.c: Likewise.
6698         * tree.c: Likewise.
6699         * cp/tree.c (build_min_nt): Likewise.
6700         (build_min): Likewise.
6701         * cp/lex.c: Likewise.
6702         * cp/errfn.c: Likewise.
6703         * cp/rtti.c (create_pseudo_type_info): Likewise.
6704
6705 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
6706
6707         * df.c (df_uses_record): Return after recording all uses
6708         in ASM_OPERANDS.
6709
6710 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
6711
6712         * df.c (df_insn_modify): Realloc the INSN table here, if
6713         necessary, here, too.
6714
6715 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
6716
6717         * config/mips/mips.c (mips_function_value): Handle complex return
6718         values.
6719
6720 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
6721
6722         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
6723         unshared.
6724         * reload.c (make_memloc): Copy result if it is still
6725         reg_equiv_memory_loc[regno] on return.
6726         (subst_reloads) [ENABLE_CHECKING]: Check that none of
6727         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
6728         reg_equiv_mem are modified by the substitutions.
6729
6730 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
6731
6732         * predict.c (expensive_function_p): New.
6733         * rtl.h (expensive_function_p): Declare.
6734         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
6735         (use_fast_prologue_epilogue): New static variable.
6736         (expand_prologue): Set it; emit short prologues if unset.
6737         (expand_epilogue): Likewise.
6738
6739 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
6740
6741         * config.gcc: Add stormy16-*-elf case.
6742         * config/stormy16/stormy-abi: New file.
6743         * config/stormy16/stormy16-lib2.c: New file.
6744         * config/stormy16/stormy16-protos.h: New file.
6745         * config/stormy16/stormy16.c: New file.
6746         * config/stormy16/stormy16.h: New file.
6747         * config/stormy16/stormy16.md: New file.
6748         * config/stormy16/t-stormy16: New file.
6749
6750 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
6751
6752         * i386.h (no-accumulate-outgoing-args): Use proper mask.
6753
6754 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
6755
6756         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
6757         descriptor members are pointer size, not constant 4.
6758         * config/rs6000/rs6000.md (define_splits): Remove more unused
6759         constraints.
6760
6761 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6762
6763         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
6764
6765 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
6766
6767         * cp/rtti.c (VPARAMS): Fix parameter.
6768
6769 2001-08-24  Zack Weinberg  <zackw@panix.com>
6770
6771         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
6772         to zero.
6773         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
6774         to switch.
6775         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
6776         in if controlling use of insv.
6777         (extract_bit_field): Likewise, for extv and extzv.
6778
6779 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
6780
6781         * i386.md (movcc peep2): Fix load of 0.
6782
6783 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6784
6785         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
6786         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
6787
6788 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
6789
6790         * c-pragma.h: Move weak_syms and weak_decls...
6791         * varasm.c: ...here.  Now static.
6792         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
6793         depend on HANDLE_PRAGMA_WEAK.
6794
6795         * c-common.c (c_alignof, c_alignof_expr): Move here...
6796         * c-typeck.c: ...from here.
6797         * c-tree.h, c-common.h: Adjust.
6798
6799 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
6800
6801         * config/ia64/ia64.c (rws_update): If !pred, set write_count
6802         instead of incrementing it.
6803
6804         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
6805         asm ready, don't try to move them all into the same array element.
6806
6807 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
6808
6809         * function.c (thread_prologue_and_epilogue_insns): Avoid
6810         fallthru flag on edge to exit.
6811
6812         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
6813
6814         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
6815         dead edges.
6816
6817 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
6818
6819         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
6820         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
6821         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
6822         Remove prototype.
6823
6824 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
6825
6826         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
6827         replace "GNU CC" with "GCC".
6828
6829 2001-08-23  Richard Henderson  <rth@redhat.com>
6830
6831         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
6832         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
6833         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
6834         Need GR between FR and not GR_AND_FR.
6835         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
6836         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
6837         AR regs before GR regs.
6838         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
6839         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
6840         (REGISTER_MOVE_COST): Update.
6841         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
6842
6843 2001-08-23  Richard Henderson  <rth@redhat.com>
6844
6845         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
6846         a register class.
6847
6848 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
6849
6850         * reload1.c (emit_reload_insns): Don't look for notes
6851         on a NULL store_insn.
6852
6853 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6854
6855         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
6856         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
6857         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
6858         format specifier warnings.
6859         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
6860
6861 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
6862
6863         * config/i386/i386-protos.h: Correct declaration of
6864         i386_pe_asm_named_section.
6865
6866 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6867
6868         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
6869         variable i.
6870         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
6871
6872 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
6873
6874         * cpperror.c (print_location): Don't show _Pragma.
6875         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
6876         and file change callback generation here.
6877         (stack_include_file): Update use of cpp_push_buffer.
6878         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
6879         (struct cpp_buffer): Remove type, pfile members.
6880         * cppinit.c (cpp_handle_option): Use free_chain.
6881         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
6882         (skip_escaped_newlines, get_effective_char, lex_percent): Take
6883         a cpp_reader rather than a cpp_buffer.
6884         (skip_escaped_newlines, get_effective_char, skip_block_comment,
6885         skip_line_comment, parse_string, lex_percent, lex_dot,
6886         _cpp_lex_token): Update accordingly.
6887         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
6888         generation here.
6889         (cpp_push_buffer): Update prototype.
6890         (run_directive): Update use of cpp_push_buffer.
6891         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
6892         handle_assertion): Update use of run_directive.
6893         * cpplib.h (enum cpp_buffer_type): Remove.
6894         (cpp_push_buffer): Update prototype.
6895         * fix-header.c (read_scan_file): Update.
6896
6897 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6898
6899         * gcc.c (struct prefix_list): Change prefix to const char *.
6900
6901 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6902
6903         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
6904
6905 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
6906
6907         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
6908         from a new MEM.
6909
6910         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
6911         a squeezable note.
6912         * rtl.h: Adjust.
6913         * ifcvt.c (dead_or_predicable): Adjust.
6914         * loop.c (find_and_verify_loops): Adjust.
6915         * stmt.c (expand_end_case): Adjust.
6916         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
6917         head and end insn pointers in the basic block, not just local copies.
6918         (merge_blocks_move_predecessor_nojumps): Likewise.
6919
6920 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
6921
6922         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
6923         bitmap.h, builtin-types.def, builtins.c, builtins.def,
6924         c-aux-info.c, c-common.c, c-common.def, c-common.h,
6925         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
6926         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
6927         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
6928         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
6929         conditions.h, config.gcc, configure.frag, configure.in,
6930         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
6931         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
6932         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
6933         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
6934         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
6935         emit-rtl.c, errors.c, errors.h, except.c, except.h,
6936         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
6937         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
6938         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
6939         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
6940         gencheck.c, gencodes.c, genconfig.c, genemit.c,
6941         genextract.c, genflags.c, gengenrtl.c, genmultilib,
6942         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
6943         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
6944         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
6945         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
6946         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
6947         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
6948         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
6949         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
6950         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
6951         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
6952         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
6953         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
6954         params.h, predict.c, predict.def, predict.h, prefix.c,
6955         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
6956         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
6957         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
6958         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
6959         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
6960         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
6961         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
6962         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
6963         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
6964         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
6965         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
6966         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
6967         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
6968         xcoffout.h: replace "GNU CC" with "GCC".
6969
6970 2001-08-21  Richard Henderson  <rth@redhat.com>
6971
6972         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
6973         (final_scan_insn): Consider jump tables data even if we have no
6974         independent text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
6975         ADDR_VEC_ALIGN.
6976         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
6977         (ASM_OUTPUT_CASE_END): Remove.
6978         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
6979         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
6980         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
6981
6982 2001-08-21  Richard Henderson  <rth@redhat.com>
6983
6984         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
6985         at barrier insns.  Emit stop bits before barriers.
6986
6987         * flow.c (flow_find_cross_jump): Don't consider unconditional
6988         return insns for commoning.
6989
6990         * final.c (compute_alignments): Fix typo.
6991
6992         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
6993         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
6994         (store_bit_field): Use mode_for_extraction more places.
6995         (extract_bit_field): Likewise.
6996
6997 2001-08-21  Zack Weinberg  <zackw@panix.com>
6998
6999         * caller-save.c: Don't include insn-codes.h.
7000         (reg_save_code, reg_restore_code): Make arrays of int.
7001         All uses updated to match.
7002         (insert_save, insert_restore): No need to initialize "code"
7003         variable upon declaration.
7004         * Makefile.in: update dependencies; fix typo in clean rule.
7005
7006 2001-08-21  Richard Henderson  <rth@redhat.com>
7007
7008         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
7009         (merge_if_block): Handle fallout from same.
7010
7011 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7012
7013         * builtins.c (type_to_class): Fix typo in last change.
7014
7015 2001-08-21  Richard Henderson  <rth@redhat.com>
7016
7017         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
7018         ia64_asm_output_label.
7019
7020         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
7021         copy of gp while the real gp register contains garbage.
7022
7023 2001-08-21  Zack Weinberg  <zackw@panix.com>
7024
7025         * expmed.c (mode_for_extraction): New function.
7026         (store_bit_field, extract_bit_field): Use it.
7027         * expr.h: Prototype it and provide an enum for its first argument.
7028
7029         * combine.c, function.c, recog.c: Don't include insn-codes.h.
7030         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
7031         and digging through the insn_data tables.
7032         * Makefile.in: Update dependencies.
7033
7034 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7035
7036         * cppfiles.c (stack_include_file): line-map.c now handles include
7037         depth.
7038         (handle_missing_handler): Similarly.
7039         (_cpp_execute_include): Similarly.
7040         (_cpp_pop_file_buffer): Similarly.
7041         * cpphash.h (struct cpp_reader): Remove system_include_depth,
7042         buffer_stack_depth and include_depth.
7043         * cpplib.c (do_include_common): line-map.c now handles include depth.
7044         (cpp_push_buffer): Similarly.
7045         (_cpp_pop_buffer): Similarly.
7046         * cppmacro.c (builtin_macro): Update.
7047         * line-map.c (init_line_maps): Set depth.
7048         (add_line_map): Increment "used" earlier.  Update and use the
7049         include depth.
7050         (trace_include): Use the include depth.
7051         * line-map.h (struct line_maps): New member depth.
7052
7053 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7054
7055         * cppfiles.c (stack_include_file): Don't handle -H here.
7056         * cppinit.c (cpp_start_read): Set include tracing after
7057         cpp_post_options and after stacking the main file.
7058         * line-map.c (trace_include): New.
7059         (init_line_maps, add_line_map): Update.
7060         * line-map.h (struct line_maps): New member trace_includes.
7061
7062 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7063
7064         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
7065         * cppfiles.c (stack_include_file): Only stack a file if there
7066         is something to do.  Return a boolean indicating whether a
7067         buffer was stacked or not.
7068         (_cpp_execute_include): Similarly.
7069         (_cpp_read_file): Similarly.
7070         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
7071
7072 2001-08-21  Sam Steingold  <sds@gnu.org>
7073
7074         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
7075         (RECACHE): keep obufp_before_macroname up to date
7076
7077 2001-08-21  Zack Weinberg  <zackw@panix.com>
7078
7079         * stmt.c: Don't include insn-codes.h.
7080         (expand_end_case): Machine specific logic moved to expr.c.
7081         No need to worry about __builtin_classify_type.
7082         (check_for_full_enumeration_handling, emit_case_nodes):
7083         Kill #if 0 blocks.
7084
7085         * builtins.o (expand_builtin_classify_type): Split up so code
7086         can be shared with fold_builtin_classify_type.
7087         (type_to_class, fold_builtin_classify_type): New functions.
7088         (fold_builtins): Handle __builtin_classify_type.
7089
7090         * expr.c (do_tablejump): Now static.
7091         (case_values_threshold, try_casesi, try_tablejump): New;
7092         code mostly from stmt.c (expand_end_case).
7093         (expr.h): Update prototypes.
7094
7095         * Makefile.in (stmt.o): Update dependencies.
7096
7097 2001-08-21  Will Cohen  <wcohen@redhat.com>
7098
7099         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
7100         declaration of variable i.
7101         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
7102         declaration of variable i.
7103
7104 2001-08-21  Richard Henderson  <rth@redhat.com>
7105
7106         * crtstuff.c: Fix thinko last change.  Move list tails to start
7107         of CRT_END section.  Tidy ifdefs.
7108         (__EH_FRAME_BEGIN__): Always static for ELF.
7109         (__do_global_ctors_1): Rename from __frame_dummy.
7110         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
7111         name change; don't hide __EH_FRAME_BEGIN__.
7112
7113 2001-08-21  Richard Henderson  <rth@redhat.com>
7114
7115         * gdbinit.in: Move break on exit after break on fancy_abort.
7116
7117         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
7118         sized types.
7119
7120 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7121
7122         * cpphash.h (_cpp_push_next_buffer): New.
7123         * cppinit.c (do_includes): Remove.
7124         (push_include, free_chain, _cpp_push_next_buffer): New.
7125         (cpp_start_read): Use them to rework command line option handling.
7126         (cpp_handle_option): Combine handling of -include and -imacros.
7127         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
7128         appropriate.  Always insert missing \n at EOF.
7129         * cpplib.c (start_directive): Get the directive position right.
7130         * cppmain.c (cb_file_change): Always print the first line, unless
7131         preprocessed.
7132
7133 2001-08-20  Andreas Jaeger  <aj@suse.de>
7134
7135         * profile.c (compute_branch_probabilities): Remove extra new-line
7136         in error message.
7137         * flow.c (verify_flow_info): Likewise.
7138
7139 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
7140
7141         * basic-block.h (basic_block): Add new field 'flags'.
7142         (BB_REACHABLE): Define.
7143         (expunge_block): Declare.
7144         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
7145         (EXIT_BLOCK_PTR): Ditto.
7146         (expunge_block): Remove static declaration.
7147         (cleanup_cfg): Clear bb->aux on every basic block.
7148         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
7149         computing reachability.
7150         (delete_unreachable_blocks): Delete block b if b->flags has
7151         BB_REACHABLE unset.
7152
7153 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
7154
7155         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
7156
7157 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7158
7159         * sparc.c (sparc_variable_issue): Fix typo in last change.
7160
7161 2001-08-20  Richard Henderson  <rth@redhat.com>
7162
7163         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
7164
7165 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7166
7167         * pa.h (RETURN_IN_MEMORY): Improve comment.
7168
7169 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
7170
7171         * doc/invoke.texi (Profiling options): Clarify the interactions
7172         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
7173
7174 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
7175
7176         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
7177         command.
7178
7179 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7180
7181         * gcc.c (make_relative_prefix): Allocate a sufficiently large
7182         buffer.
7183
7184 2001-08-20  Richard Henderson  <rth@redhat.com>
7185
7186         * final.c (end_final): Fix typo last change.
7187
7188 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7189
7190         * cppinit.c (init_standard_includes): The returned buffer
7191         is already malloc-ed.
7192         * gcc.c (add_prefix): Similarly.
7193         * prefix.c (translate_name): Update to support clear buffer
7194         ownership rules.
7195         (update_path): Similarly.  Be sure to free any newly allocated
7196         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
7197         (tr): New function.
7198         * prefix.h (update_path): Update prototype and document.
7199         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
7200         up and update to new buffer ownership rules.
7201         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
7202
7203 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
7204
7205         * final.c (compute_alignments): New function.
7206         (init_insn_lengths): Do not care label_align.
7207         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
7208         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
7209         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
7210         (shorted_branches): Realloc label_align array; do
7211         not call init_insn_lengths; Do not care about loop alignments.
7212         * output.h (compute_alignments): Declare.
7213         * toplev.c (rest_of_compilation): Call compute_alignments.
7214         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
7215
7216         * predict.c (block_info_def): Add npredecesors, remove nvisited;
7217         change visited to tovisit.
7218         (propagate_freq): Use faster traversing algorithm.
7219         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
7220         to tovisit; reverse meaning.
7221
7222         * predict.c (struct block_info_def): Remove nvisited.
7223         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
7224         (estimate_bb_frequencies): Call mark_dfs_back_edges.
7225
7226 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
7227
7228         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
7229         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
7230         (TARGET_FUSED_MADD): New.
7231         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
7232         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
7233         the multiply-add instructions.
7234
7235 2001-08-19  Richard Henderson  <rth@redhat.com>
7236
7237         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
7238         is aligned to pointer size.
7239
7240 2001-08-19  Richard Henderson  <rth@redhat.com>
7241
7242         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
7243         display markers during final schedule.
7244
7245 2001-08-19  Richard Henderson  <rth@redhat.com>
7246
7247         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
7248
7249 2001-08-19  Richard Henderson  <rth@redhat.com>
7250
7251         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
7252         in the same string.
7253         (ASM_NAME_TO_STRING): Remove.
7254         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
7255         in the same string.  Remove support for expressions.
7256
7257 2001-08-19  Richard Henderson  <rth@redhat.com>
7258
7259         * config/i386/i386.md (tablejump): Make an expander; handle
7260         pic relative addressing here.
7261         (tablejump_1): Rename from tablejump_pic.
7262         (casesi): Remove.
7263
7264 2001-08-19  Richard Henderson  <rth@redhat.com>
7265
7266         * regclass.c (fix_register): Fix typo.
7267
7268 2001-08-18  Richard Henderson  <rth@redhat.com>
7269
7270         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
7271         (struct _Unwind_Context): Expand br_loc to hold it.
7272         (uw_frame_state_for): Handle leaf functions better.
7273         (uw_update_reg_address): Update for br_loc change.
7274
7275 2001-08-18  Richard Henderson  <rth@redhat.com>
7276
7277         * crtstuff.c: Move list heads before code that uses them.
7278         (__JCR_LIST__): Remove initial null.
7279         (frame_dummy, __frame_dummy): Do java registration here ...
7280         (__do_global_ctors_aux): ... not here.
7281
7282         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
7283         (__do_global_dtors_aux): Update to match.
7284         (__JCR_LIST__, __do_jv_register_classes): New.
7285         (.init): Call it.
7286         * config/ia64/crtend.asm (__JCR_END__): New.
7287         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
7288         instead of an indirect LTOFF22 reloc.
7289
7290 2001-08-18  Richard Henderson  <rth@redhat.com>
7291
7292         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
7293         * regclass.c (init_reg_sets_1): Fix typo.
7294         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
7295         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
7296         (ia64_compute_frame_size): Make ar.unat live when in use.
7297         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
7298         for ar.pfs; remove ar.unat handling.
7299         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
7300         call-saved.
7301         (PREDICATE_CODES): Add ar_pfs_reg_operand.
7302         * config/ia64/ia64-protos.h: Update decls.
7303         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
7304         (sibcall_pic): Likewise.
7305
7306 2001-08-18  Richard Henderson  <rth@redhat.com>
7307
7308         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
7309         pred_rel_mutex when searching for insn_group_barrier.
7310         * config/ia64/ia64.md (cycle_display): Combine the expander
7311         and insn patterns.
7312
7313         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
7314         bit before asm as needed.
7315
7316 2001-08-18  Richard Henderson  <rth@redhat.com>
7317
7318         * timevar.def (TV_MACH_DEP): New.
7319         * toplev.c (rest_of_compilation): Use it.
7320         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
7321
7322 2001-08-18  Zack Weinberg  <zackw@panix.com>
7323
7324         * unwind-dw2.c (execute_stack_op): Add default aborts to
7325         the inner switches to prevent warnings.
7326
7327 2001-08-18  Richard Henderson  <rth@redhat.com>
7328
7329         * timevar.h (struct timevar_time_def): Change element type to float.
7330         (ticks_to_msec, clocks_to_msec): Likewise.
7331         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
7332         (get_time): Likewise.
7333         (timevar_print): Adjust zero check and printing to match.
7334
7335 2001-08-18  Zack Weinberg  <zackw@panix.com>
7336
7337         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
7338         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
7339         Eliminate overfull or underfull hboxes.
7340
7341 2001-08-18  Zack Weinberg  <zackw@panix.com>
7342
7343         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
7344
7345 2001-08-18  Zack Weinberg  <zackw@panix.com>
7346
7347         * haifa-sched.c: Convert to target hooks.  Macros replaced
7348         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
7349         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
7350         MD_SCHED_FINISH, and HAVE_cycle_display.
7351         * target-def.h (TARGET_SCHED_ADJUST_COST,
7352         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
7353         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
7354         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
7355         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
7356         New hook #defines to be overridden.
7357         (TARGET_SCHED): Bring them all together.
7358         (TARGET_INITIALIZER): Update.
7359         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
7360         instead of 'struct rtx_def *' throughout.
7361         (struct sched): New set of hooks for the scheduler.
7362         * Makefile.in (haifa-sched.o): Depend on target.h.
7363         * doc/tm.texi: Document the new scheduler hooks, together in
7364         their own section, instead of scattered around.
7365         Fix a bunch of underfull/overfull hboxes.
7366
7367         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
7368         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
7369         sparc.h: Don't define any of the old scheduler macros.
7370
7371         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
7372         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
7373         sparc.c: Create hook functions from code extracted from
7374         corresponding target header, or make existing hooks static, as
7375         appropriate.  Set the appropriate entries in targetm.
7376
7377         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
7378         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
7379         rs6000-protos.h, s390-protos.h, sparc-protos.h:
7380         Remove prototypes for functions which are now static.
7381
7382         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
7383         related gunk; the Haifa scheduler is now the only choice.
7384
7385 2001-08-18  Zack Weinberg  <zackw@panix.com>
7386
7387         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
7388         * genopinit.c: Put floating point divide insns in sdiv_optab.
7389         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
7390         * config/gofast.h, config/c4x/c4x.h,
7391         config/ia64/hpux_longdouble.h, config/mips/mips.h,
7392         config/pa/long_double.h, config/rs6000/sysv4.h,
7393         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
7394         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
7395         (init_optabs): Use init_optabv for overflow-trapping optabs.
7396         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
7397         cmp_optab RTX codes so have_insn_for can find them.
7398
7399         * optabs.c (expand_simple_binop, expand_simple_unop,
7400         have_insn_for, gen_sub3_insn): New interfaces.
7401         * expr.h: Prototype new functions.
7402         (enum optab_methods): Move here from optabs.h.
7403
7404         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
7405         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
7406         Use new functions instead of working directly with optabs.
7407         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
7408         unroll.c: Don't include optabs.h.
7409         * caller-save.c, combine.c, function.c, stmt.c: Just include
7410         insn-codes.h, not optabs.h.
7411         * Makefile.in: Update dependencies.
7412
7413         * combine.c (make_compound_operation, simplify_comparison):
7414         Fix typos testing for this or that instruction.
7415
7416 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
7417
7418         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
7419         generating libgcc.a.
7420
7421 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7422
7423         * except.c (TYPE_HASH): Delete.
7424
7425         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
7426         HOST_WIDE_INT.
7427
7428         * tree.c (TYPE_HASH): Delete.
7429
7430         * tree.h (TYPE_HASH): Define.
7431
7432 2001-08-18  Graham Stott  <grahams@redhat.com>
7433
7434         * config/mips/mips.md (adddi3_internal_2+1): Remove constraints from
7435         define_split.
7436         (adddi3_internal_2+2): Likewise.
7437         (eh_set_lr_di+1): Likewise.
7438
7439 2001-08-17  Richard Henderson  <rth@redhat.com>
7440
7441         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7442         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
7443         * dwarf2asm.c: ... here.
7444         * dwarfout.c: Remove them.
7445
7446         * varasm.c (assemble_integer): Add align parameter.
7447         (assemble_real, output_constant, output_constructor): Likewise.
7448         * output.h: Update decls.
7449         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
7450         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
7451         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
7452         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
7453         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
7454         Update all callers.
7455
7456         * final.c (end_final): Abort profile block generation if we
7457         havn't layed it out properly.
7458         * output.h (assemble_eh_integer): Remove stale decl.
7459         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
7460         (min_align): New.
7461         (assemble_integer): Handle unaligned data.
7462         (assemble_real): Abort on unaligned data.
7463         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
7464         anything useful.
7465         (default_dtor_section_asm_out_destructor): Use assemble_align.
7466         (default_named_section_asm_out_constructor): Likewise.
7467         (default_ctor_section_asm_out_constructor): Likewise.
7468         * config/darwin.c (machopic_asm_out_constructor): Likewise.
7469         (machopic_asm_out_destructor): Likewise.
7470         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
7471         (nextstep_asm_out_destructor): Likewise.
7472         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
7473         (vms_asm_out_destructor): Likewise.
7474
7475 2001-08-17  Richard Henderson  <rth@redhat.com>
7476
7477         * config/mips/iris6.h (TARGET_IRIX6): New.
7478         (current_section_name, current_section_flags): New.
7479         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
7480         (MAX_OFILE_ALIGNMENT): New.
7481         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
7482         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
7483         (copy_file_data): Split out from
7484         (mips_asm_file_end): ... here.
7485         (mips_asm_file_start): Remove extra .section directive.  Use
7486         tmpfile instead of mips_make_temp_file.
7487         (mips_unique_section): Use const char * as needed for warnings.
7488         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
7489         re-add align parameter.
7490         (iris6_asm_named_section): New.
7491         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
7492         (iris6_asm_output_align, iris6_section_align_1): New.
7493         (iris6_asm_file_start, iris6_asm_file_end): New.
7494         * config/mips/mips-protos.h: Update decls.
7495
7496 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
7497
7498         * doc/install.texi (Install GCC): Add links to build status pages.
7499         (Specific): Ditto.
7500         (Final install): Ditto; request updates for specific info
7501
7502 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
7503
7504         * cpperror.c (print_location):  Don't take a file name; use the
7505         line map instead.
7506         (_cpp_begin_message): Similarly.
7507         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
7508         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
7509         (cpp_pedwarn_with_file_and_line): Remove.
7510         * cppfiles.c (stack_include_file): Update; set filename to stdin
7511         here when appropriate.
7512         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
7513         (_cpp_begin_message): Don't take a file name.
7514         * cppinit.c: Add comment.
7515         * cpplex.c: Fix end-of-directive indicator.
7516         * cpplib.c: Don't include intl.h.
7517         (run_directive, do_diagnostic): Update.
7518         (do_line): Update to not use nominal_fname.
7519         (cpp_push_buffer): Don't take a filename.
7520         * cpplib.h (struct ht): Remove.
7521         (cpp_push_buffer): Don't take a filename.
7522         (cpp_pedwarn_with_file_and_line): Remove.
7523         * cppmacro.c (struct cpp_macro): Remove file.
7524         (builtin_macro): Update.
7525         (_cpp_create_definition): Update.
7526         * cppmain.c: Correct comment.
7527         * fix-header.c (read_scan_file): Update.
7528
7529 2001-08-17  Kazu Hirata  <kazu@hxi.com>
7530
7531         * sbitmap.c: Fix comment formatting.
7532         * sched-deps.c: Likewise.
7533         * sibcall.c: Likewise.
7534         * simplify-rtx.c: Likewise.
7535         * ssa.c: Likewise.
7536         * ssa-ccp.c: Likewise.
7537         * stor-layout.c: Likewise.
7538         * timevar.c: Likewise.
7539         * toplev.c: Likewise.
7540         * unwind-dw2.c: Likewise.
7541         * unwind-dw2-fde.c: Likewise.
7542         * varasm.c: Likewise.
7543
7544 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7545
7546         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
7547         or larger than an integer in memory.
7548
7549 2001-08-17  Zack Weinberg  <zackw@panix.com>
7550
7551         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
7552         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
7553         * rtl.h: Don't forward-declare union tree_node here.  Don't
7554         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
7555         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
7556         and tree respectively.
7557         * tree.h: Don't forward-declare struct rtx_def here.  Don't
7558         typedef tree here.  Change all uses of struct rtx_def *,
7559         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
7560         and tree respectively.
7561
7562 2001-08-17  Richard Henderson  <rth@redhat.com>
7563
7564         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
7565         config/mips/openbsd.h: Fix typos last change.
7566
7567 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7568
7569         * doc/invoke.texi (Optimize Options): The default for
7570         -finline-limit is 600.
7571
7572 2001-08-17  Richard Henderson  <rth@redhat.com>
7573
7574         * varasm.c (text_section): Allow TEXT_SECTION to override the
7575         printing of TEXT_SECTION_ASM_OP.
7576         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
7577         (DATA_SECTION, BSS_SECTION): Remove.
7578         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
7579         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
7580         Rename from s/_NAME//.
7581         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
7582         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
7583         (TEXT_SECTION): ... here.  New.
7584         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
7585         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
7586         * config/mips/openbsd.h: Likewise.
7587         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
7588         (mips_asm_file_end): Likewise test.
7589         (mips_output_function_epilogue): Likewise.  Switch back to data
7590         section after emitting the function.
7591
7592         * doc/tm.texi (Sections): Document TEXT_SECTION.
7593
7594 2001-08-17  Richard Henderson  <rth@redhat.com>
7595
7596         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
7597         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
7598
7599 2001-08-17  Richard Henderson  <rth@redhat.com>
7600
7601         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
7602         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
7603         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
7604         Add aligned attribute.
7605
7606 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
7607
7608         * config/sh/sh.md: Add modes to unspecs in first insn to match
7609         those in the second.
7610
7611         * Makefile.in: Fix collect2 copy for Cygwin.
7612
7613 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
7614
7615         Install the proper patch.
7616         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
7617         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
7618         (expand_function_start): Likewise.
7619         * stmt.c (expand_decl): Likewise.
7620         * varasm.c (make_decl_rtx): Likewise.
7621
7622 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
7623
7624         * final.c: Undo my previous accidental checkin.
7625         * output.h: Likewise.
7626         * tm.texi: Likewise.
7627
7628 2001-08-16  Richard Henderson  <rth@redhat.com>
7629
7630         * varasm.c (named_section_flags): Remove align parameter.
7631         * varasm.c, dwarf2out.c: Update all callers.
7632         * output.h: Update prototypes.
7633
7634         * target.h (target.asm_out.named_section): Remove align parameter.
7635         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
7636         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
7637         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
7638         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
7639         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
7640
7641         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
7642         (get_named_section_flags, set_named_section_flags): New.
7643         (named_section_flags): Use them.
7644         (named_section): Do decl vs section flags check here...
7645         (default_section_type_flags): ... not here.
7646         (init_varasm_once): Create in_named_htab.
7647         (resolve_unique_section): Mark reloc unused.
7648
7649 2001-08-16  Richard Henderson  <rth@redhat.com>
7650
7651         * varasm.c (force_const_mem): Keep pool alignment in bits.
7652         (output_constant_pool): Use assemble_align.
7653
7654 2001-08-16  Zack Weinberg  <zackw@panix.com>
7655
7656         * doc/tm.texi: Remove extra @table command.
7657
7658 2001-08-16  Zack Weinberg  <zackw@panix.com>
7659
7660         * final.c (shorten_branches): Clear the end of the label_align
7661         array only if we made it larger.  Break up messy expressions
7662         for clarity.
7663
7664         * diagnostic.c (internal_error): Check for error recursion
7665         before doing ICE suppression.
7666
7667         * timevar.c: Timing variables now count in milliseconds.
7668         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
7669         (get_time): Not here.
7670         (timevar_print): Don't print any timer whose user, cpu, and
7671         wall times are all zero as displayed.
7672         * timevar.h: Update comment aboout units.  Make timevar
7673         counters unsigned.
7674
7675 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
7676
7677         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
7678         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
7679         (expand_function_start): Likewise.
7680         * stmt.c (expand_decl): Likewise.
7681         * varasm.c (make_decl_rtx): Likewise.
7682
7683 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
7684
7685         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
7686         (finalize_record_size): Don't set TYPE_USER_ALIGN.
7687
7688 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7689
7690         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
7691         variables.
7692
7693 2001-08-16  Andreas Jaeger  <aj@suse.de>
7694
7695         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
7696         prototype.
7697
7698 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
7699
7700         * rtl.h (only_sets_cc0_p): New prototype.
7701         * jump.c (sets_cc0_p): Handle INSN.
7702         (only_sets_cc0_p): New function.
7703         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
7704         (tidy_fallthru_edge): Likewise.
7705         * integrate.c (copy_insn_list): Likewise.
7706         * unroll.c (unroll_loop): Likewise.
7707         (copy_loop_body): Likewise.
7708
7709 2001-08-15  Jason Eckhardt  <jle@redhat.com>
7710
7711         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
7712
7713 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
7714
7715         * predict.c (struct block_info_def): Remove nvisited.
7716         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
7717         (estimate_bb_frequencies): Call mark_dfs_back_edges.
7718
7719         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
7720         (ix86_adjust_cost): Teach scheduler that latency to load operand can
7721         be masked.
7722
7723 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
7724
7725         * predict.def: Update hitrates.
7726
7727 2001-08-15  Richard Henderson  <rth@redhat.com>
7728
7729         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
7730
7731 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
7732
7733         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
7734         note from its associated jump.
7735
7736 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
7737
7738         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
7739         also on 64-bit s390x targets.
7740
7741 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
7742
7743         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
7744         function.
7745         (arm_expand_prologue): Handled nested functions which take a
7746         variable argument list.
7747         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
7748         macro with an invocation of
7749         arm_compute_initial_elimination_offset.
7750         * config/arm/arm-protos.h: Prototype
7751         arm_compute_initial_elimination_offset.
7752
7753 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7754
7755         * doc/install.texi (Specific, avr): Fix markup.
7756         (Specific, c4x): Ditto.
7757
7758 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7759
7760         * predict.c (dump_prediction): Change `bool' parameter to `int'.
7761
7762 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
7763
7764         * Makefile.in (OBJS): Add rtl-error.o
7765         (rtl-error.o): New rule.
7766         (diagnostic.o): Adjust dependency.
7767         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
7768         error_for_asm, _fatal_insn, _fatal_insn_not_found,
7769         warning_for_asm): Move to...
7770         rtl-error.c: ...here.  New file.
7771
7772 2001-08-14  Richard Henderson  <rth@redhat.com>
7773
7774         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
7775         if USING_SJLJ_EXCEPTIONS.
7776
7777 2001-08-14  Steve Ellcey <sje@cup.hp.com>
7778
7779         * tlink.c (scan_linker_output): Check string for unsatisfied in
7780         addition to undefined and unresolved.
7781
7782 2001-08-14  Graham Stott  <grahams@redhat.com>
7783
7784         * libgcc2.c (*): Replace EH_FRAME_SECTION with
7785         EH_FRAME_SECTION_NAME.
7786
7787 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
7788
7789         * genattrtab.c (simplify_test_exp_in_temp): New function.
7790         (simplify_test_exp): Avoid explicit use of temporary obstack.
7791         (simplify_cond, insert_right_side, evaluate_eq_attr,
7792         simplify_and_tree, simplify_or_tree, eliminate_known_true):
7793         Use simplify_test_exp_in_temp.
7794         (optimize_attrs): Iterate until expression stabilizes.
7795
7796 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
7797
7798         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
7799         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
7800
7801 2001-08-13  Richard Henderson  <rth@redhat.com>
7802
7803         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
7804         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
7805         * config/arm/conix-elf.h: Likewise.
7806
7807 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
7808
7809         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
7810         in gcc.c.
7811         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
7812
7813         * gcse.c (hash_scan_set): Expressions that are set as part of
7814         jump instructions are not available.
7815
7816 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
7817
7818         * config/s390/s390.c (print_operand, s390_function_prologue,
7819         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
7820
7821 2001-08-13  Richard Henderson  <rth@redhat.com>
7822
7823         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
7824         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
7825         * doc/tm.texi (Exception Region Output): Document it.
7826
7827 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
7828
7829         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
7830         DWARF2 instead of stabs by default.
7831
7832 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
7833
7834         * config/rs6000/rs6000.c: Include optabs.h.
7835
7836 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
7837
7838         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
7839         save/restore routines.
7840         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
7841
7842 2001-08-13  Andreas Jaeger  <aj@suse.de>
7843
7844         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
7845         the english is correct.
7846
7847 2001-08-13  Zack Weinberg  <zackw@panix.com>
7848
7849         * expr.h: Split out optab- and libfunc-related code to...
7850         * optabs.h, libfuncs.h: ... these new headers.
7851
7852         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
7853         (OPTABS_H): New.
7854         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
7855         dependencies.
7856         * mkconfig.sh: Don't include insn-codes.h from config.h.
7857
7858         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
7859         enum insn_code is available.  Move reload_in_optab and
7860         reload_out_optab array declarations to optabs.h.
7861         * regmove.c (gen_add3_insn): Move to optabs.c, export from
7862         there, prototype in expr.h.
7863         * gencodes.c: Cleanup: zap global variables, don't use
7864         printf where puts will do, don't bother defining MAX_INSN_CODE
7865         which nothing uses, let CODE_FOR_nothing get its value implicitly.
7866
7867         * genemit.c, genopinit.c: Include optabs.h in generated file.
7868         * genoutput.c: Include insn-codes.h in generated file.
7869         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
7870         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
7871         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
7872         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
7873         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
7874         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
7875         Include optabs.h.
7876         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
7877         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
7878         config/m88k/m88k.c, config/sparc/sparc.c:
7879         Include libfuncs.h.
7880         * reload.c: Include expr.h and optabs.h before reload.h.
7881         * config/alpha/alpha.c: Include tree.h before reload.h.
7882         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
7883         and reload.h in that order.
7884         * config/sparc/sparc.c: Include debug.h.
7885         * recog.c: Include insn-codes.h.
7886
7887 2001-08-13  Andreas Jaeger  <aj@suse.de>
7888
7889         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
7890         s390*linux.
7891
7892 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7893
7894         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
7895         * gcc.c (init_spec): Fix typo in comment.
7896         * varasm.c (data_section): Fix typo in comment.
7897
7898 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
7899
7900         * predict.c (dump_prediction): New argument "USED".
7901         (combine_predictions_for_insn): Determine the used heuristics,
7902         output the case no heuristic applied.
7903         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
7904
7905 2001-08-13  Andreas Jaeger  <aj@suse.de>
7906
7907         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
7908         register %rip.
7909
7910 2001-08-13  Kazu Hirata  <kazu@hxi.com>
7911
7912         * jump.c: Fix formatting.
7913
7914 2001-08-13  Kazu Hirata  <kazu@hxi.com>
7915
7916         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
7917         length.
7918
7919 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
7920
7921         * loop.c (check_dbra_loop): Use condjump_label to compute
7922         jump_label.
7923
7924         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
7925         to better document the files they're in.
7926
7927 2001-08-12  Zack Weinberg  <zackw@panix.com>
7928
7929         * recog.h (struct insn_operand_data): Shrink 'mode' field
7930         to 16 bits.
7931
7932 2001-08-12  Kazu Hirata  <kazu@hxi.com>
7933
7934         * gcc.c: Fix comment formatting.
7935         * gccspec.c: Likewise.
7936         * gcov.c: Likewise.
7937         * gcse.c: Likewise.
7938         * genemit.c: Likewise.
7939         * gengenrtl.c: Likewise.
7940         * genrecog.c: Likewise.
7941         * gensupport.c: Likewise.
7942         * ggc-page.c: Likewise.
7943         * global.c: Likewise.
7944         * graph.c: Likewise.
7945         * ifcvt.c: Likewise.
7946         * integrate.c: Likewise.
7947         * lcm.c: Likewise.
7948         * libgcc2.c: Likewise.
7949         * loop.c: Likewise.
7950         * mbchar.c: Likewise.
7951         * optabs.c: Likewise.
7952         * predict.c: Likewise.
7953         * prefix.c: Likewise.
7954         * profile.c: Likewise.
7955         * protoize.c: Likewise.
7956         * real.c: Likewise.
7957         * recog.c: Likewise.
7958         * regclass.c: Likewise.
7959         * regmove.c: Likewise.
7960         * reg-stack.c: Likewise.
7961         * reload1.c: Likewise.
7962         * resource.c: Likewise.
7963         * rtlanal.c: Likewise.
7964         * rtl.c: Likewise.
7965
7966 2001-08-12  Kazu Hirata  <kazu@hxi.com>
7967
7968         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
7969         a tree representing a constant is passed to the macro.
7970
7971 2001-08-12  Richard Henderson  <rth@redhat.com>
7972
7973         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
7974         (rs6000_elf_asm_out_destructor): New.
7975         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
7976         (DTORS_SECTION_ASM_OP): Remove.
7977         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7978         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
7979
7980 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
7981
7982         Revert:
7983         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7984         * gcc.c (set_collect_gcc_options): New function, split out from
7985         main.
7986         Ignore elided switches.
7987         (do_spec_1): Invoke before executing command.
7988         (set_input): Export.
7989         Move declaration ...
7990         * gcc.h (set_input): ... here.
7991         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
7992         file.
7993
7994 2001-08-12  Richard Henderson  <rth@redhat.com>
7995
7996         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
7997         thinko wrt TARGET_RELOCATABLE.
7998
7999 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
8000
8001         * fix-header.c (cb_file_change): Update prototype.
8002
8003 2001-08-11  Zack Weinberg  <zackw@panix.com>
8004
8005         * toplev.c (set_float_handler): Make static.
8006         * toplev.h: Don't prototype set_float_handler.
8007
8008         * simplify-rtx.c: Don't include setjmp.h.
8009         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
8010         New functions.
8011         (simplify_unary_operation, simplify_binary_operation): Use them,
8012         via do_float_handler.
8013
8014         * fold-const.c: Don't include setjmp.h.
8015         (exact_real_inverse_1): New function.
8016         (exact_real_inverse): Use it, via do_float_handler.
8017
8018         * varasm.c: Don't include setjmp.h.
8019         (assemble_real_1): New function.
8020         (assemble_real): Use it, via do_float_handler.
8021         Call internal_error if we get a trap here.
8022
8023         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
8024         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
8025
8026 2001-08-11  Zack Weinberg  <zackw@panix.com>
8027
8028         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
8029         STACK_BOUNDARY if not already defined.
8030
8031         * calls.c, function.c, reload1.c, explow.c: Don't default
8032         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
8033         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
8034
8035         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
8036         to run-time test.
8037
8038         * doc/tm.texi: Document that STACK_BOUNDARY is required;
8039         clarify difference between it and PREFERRED_STACK_BOUNDARY.
8040
8041 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8042
8043         * cppmacro.c (enter_macro_context): Push macro expansions even
8044         if empty.
8045
8046 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8047
8048         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
8049         (rs6000_elf_section_type_flags): Actually return a value.
8050
8051 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
8052
8053         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
8054         Clean up code: add missing comments and prototypes, fix warnings,
8055         remove obsolete code, fix spacing to conform to coding style.
8056
8057 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
8058
8059         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
8060         and TARGET_ASM_CLOSE_PAREN.
8061         (regclass_map): CC register belongs to class NO_REGS.
8062         (legitimize_pic_address): Don't generate unnecessary moves
8063         (to avoid confusing loop optimization).
8064         (check_and_change_labels): Replace jump_long by indirect_jump.
8065         (s390_final_chunkify): Don't start a new literal pool on section
8066         switch in 64-bit code.
8067         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
8068
8069         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
8070         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
8071         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
8072         modes correctly.
8073         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
8074         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
8075         (CONST_COSTS): Fixed incorrect costs.
8076
8077         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
8078         Use emit_jump instead of emit_jump_insn (gen_jump).
8079         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
8080         (to avoid confusing flow analysis).
8081         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
8082         (casesi, casesi_jump): New.
8083         (jump_long): Removed.  Functionality merged into indirect_jump.
8084         (indirect_jump): Accept address_operand, not just register_operand.
8085         (cjump_long, icjump_long): Use same logic as indirect_jump.
8086         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
8087         Fixed broken setjmp/longjmp handling.
8088         (do_builtin_setjmp_setup): Removed.
8089
8090         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
8091         broken GNU as versions that don't accept .quad with large
8092         negative values.  Use hexadecimal output instead.
8093         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
8094         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
8095         FUNCTION_EPILOGUE): Removed.  Now in targetm.
8096
8097         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
8098
8099         * config/s390/fixdfdi.h: Add missing copyright statement.
8100         Fix type conflicts on 64-bit.  Add missing SFmode routines.
8101
8102         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
8103         email address.
8104
8105 2001-08-11  Richard Henderson  <rth@redhat.com>
8106
8107         * rtl.h (REG_EH_RETHROW): Remove.
8108         * rtl.c (reg_note_name): Update.
8109         * combine.c (distribute_notes): Don't check for it.
8110
8111 2001-08-11  Richard Henderson  <rth@redhat.com>
8112
8113         * combine.c (distribute_notes): Place REG_SETJMP.
8114
8115 2001-08-11  Richard Henderson  <rth@redhat.com>
8116
8117         * doc/extend.texi (Arrays and pointers implementation): Discourage
8118         relying on sign-extension of pointers.
8119
8120 2001-08-11  H.J. Lu <hjl@gnu.org>
8121
8122         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
8123         in_dtors.
8124         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
8125         RDATA_SECTION_ASM_OP.
8126
8127 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8128
8129         * doc/install.texi (Specific, c4x): Fix cross-reference to the
8130         main manual to work both for info and HTML versions.
8131
8132 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8133             Matt Kraai <kraai@alumni.carnegiemellon.edu>
8134
8135         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
8136         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
8137         (struct cpp_pool): New member first.
8138         * cppinit.c (append_include_chain): Plug memory leaks.
8139         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
8140         Allocate pragma structures from the (aligned) macro pool to
8141         avoid leaking memory.
8142         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
8143         so we don't leak memory.
8144         * hashtable.c (ht_destroy): New.
8145         * hashtable.h (ht_destroy): New.
8146
8147 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8148             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8149
8150         * c-lex.c (map): Make const.
8151         (cb_file_change): Update for callback passing a line map.
8152         Don't assume we have a previous map.  Remove sanity check
8153         about popping too many files.
8154         * cpperror.c (print_location): Make map const.
8155         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
8156         (cpp_make_system_header): Similarly.
8157         (search_from): Similarly.
8158         (_cpp_execute_include): Don't remember where we came from.
8159         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
8160         (struct cpp_reader): Make map const.
8161         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
8162         * cpplib.c (do_line): Update; line maps now hold sysp.
8163         (cpp_push_buffer): Similarly.
8164         (_cpp_do_file_change): Similarly; callback with map instead.
8165         (cpp_get_line_maps): Constify return value.
8166         (_cpp_pop_buffer): Update.
8167         * cpplib.h (struct cpp_file_change): Remove.
8168         (struct cpp_callbacks): Update.
8169         (cpp_get_line_maps): Constify return value.
8170         * cppmacro.c (_cpp_create_definition): Update.
8171         * cppmain.c (struct printer): Constify map.
8172         (maybe_print_line): Similarly.
8173         (print_line): Similarly.  Deduce flags 1 and 2 here.
8174         (cb_file_change): Update.
8175         * line-map.c (free_line_maps): Warn regardless.
8176         (add_line_map): Return pointer to const.  When passed NULL to_file
8177         with LC_LEAVE, use the obvious values for the return point so the
8178         caller doesn't have to figure them out.
8179         (lookup_line): Return pointer to const.
8180         (print_containing_files): Take pointer to const.
8181         * line-map.h (struct line_map): New members reason, sysp.
8182         (add_line_map): Return pointer to const.
8183         (lookup_line): Similarly.
8184         (print_containing_files): Take pointer to const.
8185
8186 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
8187             Richard Henderson  <rth@redhat.com>
8188
8189         * regmove.c (regmove_optimize): Avoid setting a register twice in
8190         a parallel set.
8191
8192 2001-08-10  Richard Henderson  <rth@redhat.com>
8193
8194         * doc/extend.texi (Arrays and pointers implementation): Document
8195         behavior of pointer/integer conversion.
8196
8197 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
8198
8199         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
8200
8201 2001-08-10  Richard Henderson  <rth@redhat.com>
8202
8203         * doc/extend.texi (C Implementation): New chapter.
8204         * doc/gcc.texi (Top): Link it in.
8205
8206 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
8207
8208         * doc/install.texi (Specific): Fix CVS merge botch.
8209
8210 2001-08-10  Richard Henderson  <rth@redhat.com>
8211
8212         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
8213         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
8214
8215 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
8216
8217         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
8218         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
8219         this macro is now required.
8220
8221         * cselib.c (cselib_process_insn), flow.c (propagate_block),
8222         loop.c (find_and_verify_loops), reload.c (reload): Check
8223         for rtx code of CALL_INSN, not CALL, when deciding if we
8224         need to check for REG_SETJMP note.
8225
8226         * gcse.c (compute_hash_table, compute_store_table): Update
8227         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
8228         logic.
8229
8230         * config/avr/avr.c: Fix typo.
8231         * config/convex/convex.c (expand_movstr): Use adjust_address.
8232         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
8233         variable.
8234         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
8235         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
8236         Fix typo.
8237         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
8238         Do define STACK_BOUNDARY.
8239         * config/i370/i370.c: Include expr.h.
8240         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
8241         config/pa/som.h, config/v850/v850.h: Take in_ctors and
8242         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
8243         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
8244         * config/m88k/m88k.c: Include c-tree.h after expr.h.
8245         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
8246         * config/romp/romp.c: Include expr.h after tree.h.
8247         Include toplev.h.
8248         (output_fpop): Use xmalloc, not oballoc.
8249         * config/we32k/we32k.c: Include expr.h.
8250
8251 2001-08-10  Kazu Hirata  <kazu@hxi.com>
8252
8253         * config/h8300/h8300.h: Fix formatting.
8254
8255 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
8256
8257         * c-common.h (RETURN_NULLIFIED_P): Lose.
8258         * c-semantics.c (genrtl_return_stmt): Don't check it.
8259
8260 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
8261
8262         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
8263         (mips_annotate_frame_insn): New function.
8264         (mips_emit_frame_related_store): New function.
8265         (save_restore_insns): Don't mark instructions that set up the base
8266         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
8267         the store instructions instead.
8268         (mips_expand_prologue): If the stack size is moved into a temporary
8269         register, do not mark that move as frame-related.  Add a
8270         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
8271
8272 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
8273
8274         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
8275         stack slot as unchanging if current_function_calls_eh_return.
8276
8277 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
8278
8279         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
8280         access the second half of the TFmode scratch operand.
8281
8282 2001-08-10  Anthony Green  <green@redhat.com>
8283
8284         * java/class.c (emit_register_classes): Conditionalize code on
8285         JCR_SECTION_NAME.
8286
8287 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8288
8289         * doc/install.texi (Specific, avr): Fix cross-reference to the
8290         main manual to work both for info and HTML versions.
8291
8292 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8293
8294         * stmt.c (expand_null_return_1): Remove code to generate simple returns
8295         and "use_goto" argument.
8296         (expand_null_return, expand_value_return): Update all callers.
8297         * function.c (expand_function_end): Remove code to generate simple
8298         return.
8299         * config/vax/vax.md (epilogue): New expander for function return.
8300         * doc/md.texi (epilogue): Remove "if defined".
8301
8302 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
8303
8304         * Makefile.in: Partially revert my previous change:
8305         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
8306         of the hashtab.o and safe-ctype.o rules.
8307
8308 2001-08-09  Richard Henderson  <rth@redhat.com>
8309
8310         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
8311         (USE_COLLECT2): Remove duplicate definition.
8312         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
8313         (use_collect2): Remove dead code.
8314         * configure.in (use_collect2): Remove will_use_collect2 and
8315         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
8316         * configure: Rebuild.
8317
8318         * target.h (targetm.asm_out.constructor): New.
8319         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
8320         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
8321         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
8322         * varasm.c (in_ctors, in_dtors): New.
8323         (assemble_constructor, assemble_destructor): Remove.
8324         (default_stabs_asm_out_destructor): New.
8325         (default_named_section_asm_out_destructor): New.
8326         (dtors_section, default_dtor_section_asm_out_destructor): New.
8327         (default_stabs_asm_out_constructor): New.
8328         (default_named_section_asm_out_constructor): New.
8329         (ctors_section, default_ctor_section_asm_out_constructor): New.
8330         * output.h: Update declarations.
8331         * c-decl.c (c_expand_body): Use target hooks instead of
8332         assemble_constructor and assemble_destructor.
8333         * profile.c (output_func_start_profiler): Likewise.
8334         * objc/objc-act.c (finish_objc): Likewise.
8335         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
8336         for the constructor.
8337         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
8338
8339         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
8340         (DTORS_SECTION_ASM_OP): Likewise.
8341         (__CTOR_LIST__): Use attribute section when possible.
8342         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
8343
8344         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
8345         ASM_OUTPUT_CONSTRUCTOR.
8346
8347         * config/darwin.c (machopic_asm_out_constructor): New.
8348         (machopic_asm_out_destructor): New.
8349         * config/darwin-protos.h: Update declarations.
8350         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8351         (ASM_OUTPUT_DESTRUCTOR): Remove.
8352         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8353         * config/nextstep.c (nextstep_asm_out_constructor): New.
8354         (nextstep_asm_out_destructor): New.
8355         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8356         (ASM_OUTPUT_DESTRUCTOR): Remove.
8357         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8358         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
8359         ASM_OUTPUT_*STRUCTOR.
8360         * config/i386/aix386ng.h: Likewise.
8361
8362         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
8363         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
8364         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
8365         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8366         * config/lynx.h: Likewise.
8367         * config/netware.h: Likewise.
8368         * config/psos.h: Likewise.
8369         * config/alpha/alpha-interix.h: Likewise.
8370         * config/alpha/elf.h: Likewise.
8371         * config/arc/arc.h: Likewise.
8372         * config/arm/aof.h: Likewise.
8373         * config/arm/coff.h: Likewise.
8374         * config/arm/elf.h: Likewise.
8375         * config/c4x/c4x.h: Likewise.
8376         * config/h8300/h8300.h: Likewise.
8377         * config/i386/cygwin.h: Likewise.
8378         * config/i386/djgpp.h: Likewise.
8379         * config/i386/i386-coff.h: Likewise.
8380         * config/i386/i386-interix.h: Likewise.
8381         * config/i386/sco5.h: Likewise.
8382         * config/i386/vsta.h: Likewise.
8383         * config/i386/win32.h: Likewise.
8384         * config/i960/i960-coff.h: Likewise.
8385         * config/ia64/sysv4.h: Likewise.
8386         * config/m68hc11/m68hc11.h: Likewise.
8387         * config/m68k/coff.h: Likewise.
8388         * config/m68k/mot3300.h: Likewise.
8389         * config/m88k/m88k.h: Likewise.
8390         * config/mcore/mcore-pe.h: Likewise.
8391         * config/mcore/mcore.h: Likewise.
8392         * config/mips/elf.h: Likewise.
8393         * config/mips/elf64.h: Likewise.
8394         * config/mips/iris6.h: Likewise.
8395         * config/pa/pa64-hpux.h: Likewise.
8396         * config/rs6000/sysv4.h: Likewise.
8397         * config/sh/sh.h: Likewise.
8398         * config/sparc/litecoff.h: Likewise.
8399
8400         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
8401         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
8402         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8403         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8404         (ASM_OUTPUT_DESTRUCTOR): Remove.
8405         * config/a29k/a29k.c: Move include of tree.h.
8406         * config/a29k/udi.h: Delete file.
8407         * config/alpha/alpha.c (vms_asm_out_constructor): New.
8408         (vms_asm_out_destructor): New.
8409         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
8410         (EXTRA_SECTION_FUNCTIONS): Likewise.
8411         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8412         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8413         * config/c4x/c4x.c: Move include of tree.h.
8414         * config/clipper/clipper.c (clix_asm_out_constructor): New.
8415         (clix_asm_out_destructor): New.
8416         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8417         (ASM_OUTPUT_DESTRUCTOR): Remove.
8418         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8419         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8420         (TARGET_ASM_CONSTRUCTOR): New.
8421         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
8422         (sco_asm_out_constructor): New.
8423         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
8424         * config/i386/svr3gas.h: Remove stack grows up code.
8425         Remove code duplicated from i386/sysv3.h.
8426         (TARGET_ASM_CONSTRUCTOR): New.
8427         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8428         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
8429         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8430         (TARGET_ASM_CONSTRUCTOR): New.
8431         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
8432         (m68hc11_asm_out_destructor): New.
8433         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
8434         (TARGET_ASM_DESTRUCTOR): New.
8435         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
8436         * config/m68k/dpx2.h: Properly undef all the bits inherited from
8437         config/svr3.h pertaining to section manipulation.
8438         * config/m68k/dpx2g.h: Remove #if 0 code.
8439         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
8440         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
8441         (ASM_OUTPUT_CONSTRUCTOR): Remove.
8442         (TARGET_ASM_CONSTRUCTOR): New.
8443         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
8444         (m88k_svr3_asm_out_constructor): New.
8445         (m88k_svr3_asm_out_destructor): New.
8446         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8447         (ASM_OUTPUT_DESTRUCTOR): Remove.
8448         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8449         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
8450         * config/rs6000/aix.h: Likewise.
8451         * config/mips/rtems64.h: Don't undef removed constructor related bits.
8452         * config/mips/vxworks.h: Likewise.
8453         * config/rs6000/lynx.h: Likewise.
8454         * config/sh/elf.h: Likewise.
8455         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
8456         (DTORS_SECTION_ASM_OP): New.
8457         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8458         (ASM_OUTPUT_DESTRUCTOR): Remove.
8459         * config/sparc/sol2-sld-64.h: Likewise.
8460         * config/vax/vax.c (vms_asm_out_constructor): New.
8461         (vms_asm_out_destructor): New.
8462         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8463         (ASM_OUTPUT_DESTRUCTOR): Remove.
8464         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8465
8466         * doc/tm.texi (@node Initialization): Update.
8467
8468 2001-08-09  Richard Henderson  <rth@redhat.com>
8469
8470         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
8471         (__do_global_dtors_aux): Use gp-relative static data to avoid
8472         one dynamic relocation.
8473         (__do_frame_setup): Register Java classes.
8474         * config/alpha/crtend.asm (__JCR_END__): New.
8475
8476 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
8477
8478         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
8479         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
8480         (GEN, STAGESTUFF): Add new files.
8481         (insn-constants.h, s-constants, tm-preds.h, s-preds,
8482         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
8483         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
8484         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
8485         as well as insn-codes.h and insn-flags.h in config.h; and no
8486         extra headers in tconfig.h and hconfig.h.
8487
8488         * gencodes.c: Eliminate code to generate predicate declarations
8489         or #defines for md-file constants.
8490         * genconstants.c, genpreds.c: New files.
8491
8492         * i386.md: Re-order guard expressions such that TARGET_64BIT
8493         comes first, when this permits better optimization.  Add
8494         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
8495         why this is desirable.
8496
8497 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
8498
8499         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
8500         (find_fde_for_dso): Remove.
8501         (_Unwind_IteratePhdrCallback): New.
8502         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
8503         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
8504
8505 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8506
8507         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
8508         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
8509
8510 2001-08-09  Graham Stott  <grahams@redhat.com>
8511
8512         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
8513         (vis_no_unit): Use it.
8514         (visualize_no_unit): Add the insn only if room exists.
8515
8516 2001-08-09  Graham Stott  <grahams@redhat.com>
8517
8518         * predict.c (estimate_probability): Replace magic numbers with
8519         appropriate enumeration.
8520
8521 2001-08-09  Graham Stott  <grahams@redhat.com>
8522
8523         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
8524         parameter.
8525         (EXTRACT_FLAGS): Likewise.
8526
8527 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
8528
8529         * config/mips/mips.c    (mips_legitimate_address_p): Check for
8530         CONST_INT in last patch.
8531
8532 2001-08-08  Anthony Green  <green@redhat.com>
8533
8534         * java/class.c (emit_register_classes): Use assemble_jcr if
8535         possible.  Keep the original mechanism as a fallback.
8536         * defaults.h (JCR_SECTION_NAME): Define if we have named section
8537         and weak symbol support.
8538         * crtstuff.c (__JCR_LIST__): Define.
8539         (__JCR_END__): Define.
8540         (_Jv_RegiserClasses): Define weak symbol if possible.
8541         (__do_global_ctors_aux): Register classes for ELF targets with
8542         weak symbol support.
8543
8544 2001-08-08  Kazu Hirata  <kazu@hxi.com>
8545
8546         * dbxout.c: Fix comment formatting.
8547         * dependence.c: Likewise.
8548         * df.c: Likewise.
8549         * diagnostic.c: Likewise.
8550         * dominance.c: Likewise.
8551         * doprint.c: Likewise.
8552         * dwarf2out.c: Likewise.
8553         * dwarfout.c: Likewise.
8554         * emit-rtl.c: Likewise.
8555         * except.c: Likewise.
8556         * explow.c: Likewise.
8557         * expmed.c: Likewise.
8558         * expr.c: Likewise.
8559         * flow.c: Likewise.
8560         * fold-const.c: Likewise.
8561         * function.c: Likewise.
8562
8563 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8564
8565         * global.c (retry_global_alloc): Avoid shadowing allocno.
8566
8567 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
8568
8569         * except.c (remove_fixup_regions): Fix typo.
8570
8571 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
8572
8573         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
8574         unsigned HOST_WIDE_INT to avoid warning.
8575         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
8576         * flow.c (set_block_for_new_insns): Likewise.
8577
8578 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
8579
8580         * sibcall.c (return_value_pseudo): New static variable.
8581         (skip_copy_to_return_value): Handle return_value_pseudo.
8582         (call_ends_block_p): Ensure that return_value_pseudo is set.
8583         (optimize_sibling_and_tail_recursive_call): Discover the
8584         load of pseudo return value in alternate exit block.
8585
8586 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
8587
8588         * calls.c (ECF_ALWAYS_RETURN): New constant.
8589         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
8590         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
8591         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
8592         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
8593         * rtl.c (reg_note_name): New name.
8594         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
8595
8596 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
8597
8598         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
8599
8600 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
8601
8602         * alias.c (get_alias_set): Return a previously calculated
8603         alias set for a VAR_DECL.
8604         * function.c (gen_mem_addressof): Calculate the alias set before
8605         touching the RTL.
8606
8607 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
8608
8609         * predict.def: Set hitrates according our experimental run.
8610
8611 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
8612
8613         * i386.h (HARD_REGNO_RENAME_OK): New macro.
8614
8615 2001-08-08  H.J. Lu <hjl@gnu.org>
8616
8617         * config/mips/mips.c (mips_unique_section): New. Copied from
8618         config/mips/elf.h.
8619
8620         * config/mips/mips-protos.h (mips_unique_section): New
8621         prototype.
8622
8623         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
8624
8625         * config/mips/little.h: New. Generic little endian mips
8626         targets. Only mips*-*-linux* is converted to use it so far.
8627
8628         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
8629         (WCHAR_TYPE): Defined
8630         (WCHAR_TYPE_SIZE): Likewise.
8631         (INIT_SUBTARGET_OPTABS): Likewise.
8632         (BSS_SECTION_ASM_OP): Likewise.
8633         (SBSS_SECTION_ASM_OP): Likewise.
8634         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8635         (ASM_DECLARE_OBJECT_NAME): Likewise.
8636         (UNIQUE_SECTION): Likewise.
8637         (EXTRA_SECTIONS): Likewise.
8638         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
8639         (ASM_OUTPUT_DESTRUCTOR): Likewise.
8640         (ASM_OUTPUT_DEF): Likewise.
8641         (HANDLE_SYSV_PRAGMA): Removed.
8642         (NO_IMPLICIT_EXTERN_C): Likewise.
8643         (TARGET_MEM_FUNCTIONS): Likewise.
8644         (STARTFILE_SPEC): Likewise.
8645         (ENDFILE_SPEC): Likewise.
8646         (LIB_SPEC): Likewise.
8647         (INVOKE__main): Likewise.
8648         (CTOR_LIST_BEGIN): Likewise.
8649         (CTOR_LIST_END): Likewise.
8650         (DTOR_LIST_BEGIN): Likewise.
8651         (DTOR_LIST_END): Likewise.
8652         (SET_ASM_OP): Likewise.
8653         (ASM_OUTPUT_SOURCE_LINE): Likewise.
8654         (ASM_OUTPUT_DEF): Likewise.
8655         (ASM_OUTPUT_IDENT): Likewise.
8656
8657         * config/mips/mips.h (ASM_SPEC): Undefine before define.
8658         (CPLUSPLUS_CPP_SPEC): Likewise.
8659         (ASM_APP_ON) Redefine only if not defined.
8660         (ASM_APP_OFF): Likewise.
8661         (ASM_OUTPUT_SOURCE_LINE): Likewise.
8662         (ASM_OUTPUT_IDENT): Likewise.
8663
8664         * config.gcc: Update tm_file for Linux/mips.
8665
8666 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
8667
8668         * cselib.c (cselib_record_sets): If insn is predicated, turn
8669         sources into IF_THEN_ELSEs.
8670
8671         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
8672         Turn into define_insn_and_split.
8673
8674         * sched-deps.c: Include "cselib.h".
8675         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
8676         Use cselib to turn memory addresses into VALUEs.
8677         (sched_analyze): Call cselib_init/cselib_finish if necessary.
8678         * sched-int.h (struct sched_info): New member USE_CSELIB.
8679         * sched-ebb.c (ebb_sched_info): Initialize it.
8680         * sched-rgn.c (rgn_sched_info): Likewise.
8681         * Makefile.in (sched-deps.o): Update dependencies.
8682
8683         * cselib.h (cselib_subst_to_values): Declare.
8684         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
8685         that have no value and autoincs to be handled by generating a new
8686         dummy value.
8687
8688 2001-08-08  Graham Stott  <grahams@redhat.com>
8689
8690         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
8691         within fixed length SEQUENCE.
8692
8693 2001-08-08  Graham Stott  <grahams@redhat.com>
8694
8695         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
8696         (diagnostic_prefixing_rule): Likewise.
8697         (diagnostic_line_cutoff): Likewise.
8698         (diagnostic_kind_count): Likewise.
8699
8700 2001-08-08  Graham Stott  <grahams@redhat.com>
8701
8702         * alias.c (find_base_decl): Delete redundent assignment.
8703
8704 2001-08-08  Graham Stott  <grahams@redhat.com>
8705
8706         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
8707         (abs): Uppercase and paranthesize macro parameter.
8708         (MEM_DEPENDENCY): Add whitespace.
8709
8710 2001-08-08  Graham Stott  <grahams@redhat.com>
8711
8712         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
8713         failure check for CONST_INT
8714
8715 2001-08-08  Graham Stott  <grahams@redhat.com>
8716
8717         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
8718         (libcall_dead_p): Likewise.
8719
8720         (mark_used_regs): Constify fmt.
8721         (find_use_as_address): Likewise.
8722
8723 2001-08-08  Graham Stott  <grahams@redhat.com>
8724
8725         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
8726          parameter.
8727
8728 2001-08-08  Graham Stott  <grahams@redhat.com>
8729
8730         * combine.c (combine_simplify_rtx): Update comment and
8731         remove erroneous test.
8732
8733 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8734
8735         * cppinit.c (cpp_finish): Pop the final buffer without comment.
8736         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
8737         take care to avoid multiple no-newline at EOF warnings in that
8738         case.
8739
8740 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
8741
8742         * calls.c (expand_call): Do not emit INSN_SETJMP note.
8743         (emit_library_call_value_1): Likewise.
8744         (emit_call_1): Emit REG_SETJMP note.
8745         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
8746         of INSN_SETJMP
8747         * cselib.c (cselib_process_insn): Likewise.
8748         * flow.c (propagate_block): Likewise.
8749         * loop.c (find_and_verify_loops): Likewise.
8750         * reload.c (find_equiv_regs): Likewise.
8751         * reload1.c (reload): Likewise.
8752         * resource.c (mark_referenced_resources,
8753         mark_set_resources): Likewise.
8754         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
8755         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
8756         * haifa-sched.c (unlink_other_notes): Likewise.
8757         (reemit_notes): Likewise.
8758         * sched-ebb.c (sched_ebb): Likewise.
8759         * sched-rgc.c (sched_region): Likewise.
8760         * rtl.c (note_insn_name): Likewise.
8761         (reg_note_name): Add REG_SETJMP
8762         * rtl.h (reg_note): Add REG_SETJMP.
8763         (insn_note): Remove NOTE_INSN_SETJMP.
8764
8765         * profile.c (branch_prob): Add fake edges for setjmp.
8766
8767 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
8768
8769         * config.gcc: Quote target_cpu_default2 correctly for
8770         powerpc*-*-* targets.
8771
8772 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8773
8774         * cpplib.h, line-map.h: Update comments.
8775         * cppmain.c (printer_init): Move inline.
8776         (maybe_print_line, print_line): Take a map pointer.
8777         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
8778         (cb_file_change): Don't use prior value of print.map.
8779
8780 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
8781
8782         * doc/install.texi: Document fine-grained multilib configuration.
8783
8784 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
8785
8786         * rtlanal.c (find_first_parameter_load): Call note_stores
8787         only on the instructions.
8788
8789 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
8790
8791         * alias.c (nonlocal_mentioned_p):
8792         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
8793         * calls.c (emit_call_1): Likewise.
8794         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
8795         * cselib.c (cselib_process_insn): Likewise.
8796         * df.c (df_insns_modify): Likewise.
8797         * flow.c (need_fake_edge_p): Likewise.
8798         (propagate_one_insn): Likewise.
8799         * haifa-sched.c (reemit_notes): Likewise.
8800         * integrate.c (copy_insn_list): Likewise.
8801         * jump.c (delete_prior_computation): Likewise.
8802         * local-alloc.c (validate_equiv_mem): Likewise.
8803         * loop.c (scan_loop): Likewise.
8804         * predict.c (estimate_probability): Likewise.
8805         * reload.c (reload): Likewise.
8806         * sched-deps (sched_analyze): Likewise.
8807         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
8808         * gcse.c (compute_hash_table): Likewise.
8809         (mark_call): Likewise.
8810         (store_killed_in_insn): Likewise.
8811
8812 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
8813
8814         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
8815
8816 2001-08-06  Richard Henderson  <rth@redhat.com>
8817
8818         * varasm.c (assemble_gc_entry): Remove.
8819         * output.h: Likewise.
8820
8821 2001-08-06  Richard Henderson  <rth@redhat.com>
8822
8823         * varasm.c (assemble_constructor): Take a symbol_ref and a
8824         priority instead of a bare string.  Move priority handling
8825         here from cp/decl2.c.
8826         * output.h: Update decls.
8827
8828         * c-decl.c (c_expand_body): Update calls to assemble_constructor
8829         and assemble_destructor.
8830         * profile.c (output_func_start_profiler): Likewise.
8831         * objc/objc-act.c (finish_objc): Likewise.
8832         (build_module_descriptor): Return the symbol not the symbol name.
8833
8834 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
8835
8836         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
8837         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
8838         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
8839         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
8840         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
8841         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
8842
8843 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8844
8845         * cpperror.c (print_containing_files): Moved to line-map.c.
8846         (print_location): line-map.c handles re-listing or otherwise.
8847         * cpphash.h (struct lexer_state): Remove next_bol.
8848         (struct cpp_buffer): Remove include_stack_listed.
8849         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
8850         Remove faked buffer handling.
8851         (_cpp_do_file_change): Tweak.
8852         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
8853         * cppmain.c (struct printer): Remove filename.
8854         (print_line, cb_file_change): Update accordingly.
8855         * line-map.c: Include intl.h.
8856         (init_line_maps): Initialize last_listed.
8857         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
8858         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
8859         (print_containing_files): New.
8860         * line-map.h (struct line_maps): New member last_listed.
8861         (print_containing_files, INCLUDED_FROM): New.
8862         * Makefile.in: Update.
8863         * po/POTFILES.in: Add line-map.c.
8864
8865 2001-08-06  Richard Henderson  <rth@redhat.com>
8866
8867         * except.c (convert_from_eh_region_ranges_1): Never mark
8868         USE or CLOBBER insns as throwing.
8869
8870         * expr.c (store_constructor): Don't clobber memory targets.
8871
8872 2001-08-06  Andreas Jaeger  <aj@suse.de>
8873
8874         * profile.c (branch_prob): Remove unused variable insn.
8875
8876         * Makefile.in (local-alloc.o): Add dependency on except.h.
8877
8878         * local-alloc.c: Include except.h for can_throw_internal prototype.
8879
8880 2001-08-06  Richard Henderson  <rth@redhat.com>
8881
8882         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
8883         * function.c (expand_main_function): Implement it.
8884         * doc/tm.texi: Document it.
8885
8886 2001-08-06  Stan Shebs  <shebs@apple.com>
8887
8888         * doc/install.texi: Document powerpc-*-darwin* details.
8889
8890 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
8891
8892         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
8893         (ASM_CPU_SPEC): Move back to rs6000.h
8894         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
8895
8896         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
8897
8898         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
8899         readded.
8900
8901         * config/rs6000/linux64.h: Ditto.
8902
8903         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
8904         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
8905         nothing.
8906
8907         Remove accidently readded definitions of FUNCTION_PROLOGUE,
8908         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
8909
8910         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
8911         to rs6000.h
8912
8913 2001-08-05  Richard Henderson  <rth@redhat.com>
8914
8915         * local-alloc.c (update_equiv_regs): Do not move insns that
8916         can throw.
8917
8918 2001-08-05  Jan Hubicka  <jh@suse.cz>
8919
8920         * Makefile.in (reload1.o): Add dedendancy on except.h
8921         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
8922         prototypes.
8923         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
8924         indicating wehther edges has been cleaned up.
8925         * reload1.c: Inlucde except.h
8926         (fixup_abnormal_edges): Accept deleted insns.
8927         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
8928         after combine.
8929
8930 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8931
8932         * cpplib.c (do_line): Correct line number after pop_buffer.
8933
8934 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
8935
8936         PR preprocessor/3824
8937         * line-map.c: Update comments.
8938         * line-map.h: Update comments.
8939         * tradcif.y: Don't consider large numbers unsigned.
8940
8941 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
8942
8943         PR preprocessor/3081
8944         * c-lex.c (map): New.
8945         (cb_file_change): Update map and use it.
8946         (cb_def_pragma, cb_define, cb_undef): Use map and line.
8947         (c_lex): Update to use map.
8948         * cpperror.c (print_location): Move to using logical line numbers.
8949         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
8950         (cpp_make_system_header): Similarly.
8951         (_cpp_execute_include): Stop line numbering hacks.  Store the
8952         line we will return to.
8953         * cpphash.h (CPP_BUF_LINE): Remove.
8954         (struct cpp_buffer): Remove lineno and pseudo_newlines.
8955         Add map and return_to_line.
8956         (_cpp_do_file_change): Update.
8957         * cppinit.c (cpp_start_read): Update line kludge.
8958         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
8959         (trigraph_ok): Use logical line numbers for diagnostics.
8960         (skip_block_comment): Likewise.
8961         (skip_whitespace): Likewise.
8962         (skip_line_comment): Use pfile->line instead.
8963         (_cpp_lex_token): Update to use logical line numbering exclusively.
8964         Handle BOL locally.  Accept new lines in directives, but keep
8965         pfile->line decremented.  Diagnostics use logical lines.  Update
8966         directive handling.
8967         * cpplib.c (SEEN_EOL): New.
8968         (skip_rest_of_line, check_eol): Use it.
8969         (end_directive): Increase line number when accepting the newline
8970         at the end of a directive.
8971         (run_directive): Simplify.
8972         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
8973         (_cpp_do_file_change): Update to take buffer line number as an
8974         argument, and store the current map in the cpp_reader.  Remove
8975         line number kludges.
8976         (_cpp_do__Pragma): Restore output position after a _Pragma.
8977         (cpp_push_buffer): Don't set output line or lineno.
8978         (_cpp_pop_buffer): Transfer more info from a faked buffer.
8979         Remove line kludge.  Set output_line.
8980         * cppmacro.c (builtin_macro): Update handling of __LINE__.
8981         (parse_arg): Use logical lines.
8982         (save_lookahead_token): Save EOFs too now.
8983         * cppmain.c (struct printer): Fix comments.
8984         (printer_init): Simplify, let caller do errors.
8985         (scan_translation_unit, check_multiline_token, dump_macro): Update.
8986         (maybe_print_line): Simplify.
8987         (print_line): Don't print a linemarker if -P.
8988         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
8989         (cb_file_change): Simplify.
8990         * line-map.h (LAST_SOURCE_LINE): Fix.
8991         (CURRENT_LINE_MAP): New.
8992
8993 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
8994
8995         * doloop.c (doloop_modify_runtime): Properly compute number of
8996         iterations if loop was unrolled.
8997
8998         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
8999         if their CSELIB_VAL_PTRs are.
9000
9001         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
9002         (setup_spill_pointers): Initialize it.
9003         (spill_restore_mem): Set it.
9004         (do_spill, do_restore): Use it to add REG_INC note.
9005         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
9006
9007         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
9008         asms if other insns are available.
9009
9010         * config/ia64/ia64.c (condop_operator): New predicate.
9011         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
9012         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
9013         patterns.
9014
9015         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
9016         temporary register than directly using a MEM.
9017
9018 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
9019
9020         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
9021         parameter in last change.
9022
9023 2001-08-04  Zack Weinberg  <zackw@panix.com>
9024
9025         * sparc.md: Don't use #if inside C test expression.
9026
9027 2001-08-04  Richard Henderson  <rth@redhat.com>
9028
9029         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
9030
9031 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9032
9033         * cpphash.h (struct cpp_reader): New member directive_line.
9034         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
9035         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
9036         do_pragma): Pass line to callbacks.
9037         (start_directive): Record line of directive.
9038         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
9039         cb_include): Similarly.
9040         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
9041         Similarly.
9042
9043 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
9044
9045         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
9046         comment.
9047
9048 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
9049
9050         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
9051
9052         * reload1.c (fixup_abnormal_edges): New static function.
9053         (reload): Use it.
9054
9055         * flow.c (need_fake_edge_p): New function.
9056         (flow_call_edges_add): Fix handling of noreturn and sibling calls;
9057         avoid call insn to be very last insn in the insn stream.
9058
9059         * profile.c (branch_prob): Call flow_call_edges_add instead of
9060         doing that by hand; cleanup cfg to re-merge basic blocks once
9061         we are done.
9062
9063 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9064
9065         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
9066         are also on line-map.h.
9067         * cppfiles.c (stack_include_file): Update.
9068         * cpphash.h (struct cpp_buffer): New member return_at_eof.
9069         (_cpp_pop_buffer): New.
9070         * cppinit.c (cpp_destroy, cpp_finish): Update.
9071         (do_includes): Mark each buffer to return at EOF.
9072         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
9073         return as requested.
9074         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
9075         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
9076         * cpplib.h (cpp_pop_buffer): Remove.
9077         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
9078         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
9079         buffers.
9080         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
9081         to pop buffers.
9082         (do_preprocessing): Update.
9083         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
9084         * c-parse.in (_yylex): Similarly.
9085         * scan-decls.c (scan_decls): Similarly.
9086         * line-map.h: Update comments.
9087
9088         * objc/Make-lang.in (objc-act.o): Update dependencies.
9089
9090 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9091
9092         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
9093         and soft register for operand 0.
9094         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
9095
9096 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9097
9098         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
9099         register for operand 0.
9100         ("bitcmpqi_z_used"): Allow memory for operand 0.
9101         (split "bitcmpqi"): New split to handle address reg as operand 1.
9102
9103 2001-08-04  Andreas Jaeger  <aj@suse.de>
9104
9105         * gcse.c: Revert Daniel's last patch.
9106
9107 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
9108
9109         * sparc-protos.h: Add prototypes for fp_zero_operand and
9110         reg_or_0_operand.
9111         * sh-protos.h: Add prototype for fpul_operand.
9112
9113 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
9114
9115         * doc/extend.texi (Other Builtins): Fix typo in last change.
9116
9117 2001-08-03  Richard Henderson  <rth@redhat.com>
9118
9119         * target.h (gcc_target): Add asm_out.named_section,
9120         section_type_flags, have_named_sections.
9121         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
9122         (TARGET_HAVE_NAMED_SECTIONS): New.
9123         (TARGET_SECTION_TYPE_FLAGS): New.
9124
9125         * Makefile.in (toplev.o): Depend on TARGET_H.
9126         (varasm.o, dbxout.o): Likewise.
9127         * c-common.c (decl_attributes): Check targetm.have_named_sections
9128         instead of ifdef ASM_OUTPUT_SECTION_NAME.
9129         * dbxout.c (dbxout_function_decl): Likewise.
9130         (dbxout_function_end): Likewise.
9131         * toplev.c (compile_file): Likewise.
9132         * varasm.c (exception_section): Likewise.
9133         * cp/decl2.c (finish_objects): Likewise.
9134
9135         * defaults.h (EH_FRAME_SECTION): Remove.
9136         (EH_FRAME_SECTION_ASM_OP): Remove.
9137         (EH_FRAME_SECTION_NAME): New.
9138         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
9139         (UNIQUE_SECTION_P): Remove.
9140         * dwarf2out.c (SECTION_FORMAT): Remove.
9141         (ASM_OUTPUT_SECTION): Remove.
9142         (output_call_frame_info): Use named_section_flags.
9143         (output_comp_unit, dwarf2out_start_source_file): Likewise.
9144         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
9145         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
9146         * varasm.c (in_eh_frame, eh_frame_section): Remove.
9147         (named_section_flags): New.
9148         (named_section): Use it and targetm.section_type_flags.
9149         (resolve_unique_section): New.
9150         (assemble_start_function): Use it.
9151         (asm_emit_uninitialised, assemble_variable): Likewise.
9152         (default_section_type_flags): New.
9153         (default_no_named_section, default_elf_asm_named_section): New.
9154         (default_coff_asm_named_section, default_pe_asm_named_section): New.
9155         * output.h: Update varasm.c decls.
9156         (SECTION_*): New flags.
9157
9158         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
9159         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
9160
9161         * config/elfos.h (UNIQUE_SECTION_P): Remove.
9162         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
9163         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
9164         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
9165         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
9166         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
9167         * config/mips/elf.h, config/mips/elf64.h: Likewise.
9168         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
9169         * config/pa/pa64-hpux.h,
9170
9171         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
9172         (TARGET_ASM_NAMED_SECTION): New.
9173         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
9174         * config/alpha/vms.h, config/arm/coff.h: Likewise.
9175         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
9176         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
9177         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
9178         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
9179         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
9180         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
9181         * config/i386/sco5.h, config/i386/win32.h: Likewise.
9182         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
9183         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
9184         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
9185         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
9186         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
9187         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
9188         * config/sparc/sysv4.h: Likewise.
9189
9190         * config/nextstep.h: Error until named sections implemented.
9191
9192         * config/a29k/a29k.c (a29k_asm_named_section): New.
9193         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
9194         (vms_section_type_flags, vms_asm_named_section): New.
9195         * config/arm/arm.c (arm_elf_asm_named_section): New.
9196         * config/avr/avr.c (asm_output_section_name): Remove.
9197         * config/avr/avr-protos.h: Update.
9198         * config/c4x/c4x.c (c4x_asm_named_section): New.
9199         * config/h8300/h8300.c (h8300_asm_named_section): New.
9200         * config/i386/i386.c (sco_asm_named_section): New.
9201         * config/i386/winnt.c (SECTION_PE_SHARED): New.
9202         (i386_pe_section_type_flags): New.
9203         (i386_pe_asm_named_section): New.
9204         * config/i386/i386-protos.h: Update.
9205         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
9206         * config/mcore/mcore.c (mcore_asm_named_section): New.
9207         * config/mips/mips.c (iris6_asm_named_section): New.
9208         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
9209         instead of UNIQUE_SECTION_P.
9210         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
9211         (xcoff_asm_named_section): New.
9212         * config/sh/sh.c (sh_asm_named_section): New.
9213         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
9214
9215         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
9216         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
9217         (EH_FRAME_SECTION_NAME): New.
9218         (EXCEPTION_SECTION): New.
9219         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
9220         (DEBUG_*_SECTION): Remove.
9221         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
9222         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
9223         (EH_FRAME_SECTION_ASM_OP): Remove.
9224
9225         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
9226         (ASM_OUTPUT_SECTION_NAME): Remove.
9227         (TARGET_ASM_NAMED_SECTION): New.
9228         (TARGET_HAVE_NAMED_SECTIONS): New.
9229         (TARGET_SECTION_TYPE_FLAGS): New.
9230         (EH_FRAME_SECTION_ASM_OP): Remove.
9231         (EH_FRAME_SECTION_NAME): New.
9232
9233 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
9234
9235         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
9236         for complex expressions when cfun == 0.
9237         * doc/extend.texi: Document that __builtin_constant_p can be
9238         used in data initializers as well as functions.
9239
9240 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
9241
9242         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
9243         variable I locally, instead of expecting a declaration in the
9244         calling context.
9245
9246 2001-08-03  Richard Henderson  <rth@redhat.com>
9247
9248         * except.c (collect_one_action_chain): Add an explicit cleanup
9249         action if regions surrounding a catch were encoded entirely
9250         within the call-site entry.
9251
9252 2001-08-03  Richard Henderson  <rth@redhat.com>
9253
9254         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
9255         don't take REGNO of a non-register.
9256
9257 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9258
9259         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
9260         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
9261         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
9262         (__gthread_mutex_init_function): New function for mutex initialization.
9263
9264 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
9265
9266         * Makefile.in: Revert screwed up commit.
9267
9268 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9269
9270         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
9271         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
9272         merged by linker script to get a final _exit().
9273         (__do_global_dtors): New for destructor handling in specific exit
9274         section.
9275         (__do_global_ctors): New for constructors in specific install section.
9276         (__map_data_section): Map data sections before running constructors.
9277         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
9278         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
9279         (DTORS_SECTION_ASM_OP): Likewise.
9280         (CTORS_SECTION_FUNCTION): Define to force a reference to
9281         __do_global_ctors.
9282         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
9283
9284 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
9285
9286         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
9287
9288         * Makefile.in: Add df.h to gcse.c dependencies.
9289
9290 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9291
9292         * varasm.c (output_constant_def_contents): Use for the length of a
9293         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
9294         depending on which is larger.
9295
9296 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
9297
9298         * gcse.c: Include df.h for use as a dataflow analyzer.
9299         Remove regvec.
9300         Declaration of reg_set_info: gone.
9301         New df_analyzer variable used by store motion.
9302         (reg_set_info): Deleted.
9303         (mark_mem_regs): New function, analyze regs used by a mem.
9304         (store_ops_ok): Use dataflow analyzer results to determine if
9305         necessary regs are changed in the block.
9306         (find_moveable_store): Remove check for symbol ref, we can handle
9307         much more complex expressions now.
9308         (compute_store_table): Remove most of the code, it's unnecessary
9309         now that the dataflow analyzer records the info for us.
9310         (store_killed_after): Add parameter to say whether to do the
9311         store_ops_okay test, used to speed up testing when we already know
9312         the answer, and just want to know if the store itself was killed.
9313         (build_store_vector): Largely rewritten to calculate the various
9314         vectors properly, and somewhat optimized.
9315         (store_motion): Init the df_analyzer, get REG_DEF chains.
9316         Also handle trapping expressions (since mems almost always trap)
9317         (simple_mem): Redefine what a simple mem is.
9318
9319 2001-08-03  DJ Delorie  <dj@redhat.com>
9320
9321         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
9322         set from a constant part of the condition.
9323
9324 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
9325
9326         * mkdeps.c (deps_add_default_target): Make local variable
9327         ``start'' a const char pointer.
9328         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
9329
9330 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9331
9332         * doc/install.texi (Configuration): Fix markup.
9333         (Specific, i?86-*-udk): Likewise.
9334         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
9335         --with-gnu-ld.
9336         Document --enable-threads and --enable-libgcj status.
9337         (Specific, mips-sgi-irix*): Canonicalize triples.
9338         (Specific, mips-sgi-irix5): Warn about problems with this config.
9339         Mention required GNU as patch.
9340         Native assembler problems are fixed.
9341         (Specific, mips-sgi-irix6): Update O32 ABI support status.
9342         Document --enable-threads and --enable-libgcj status.
9343
9344 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
9345
9346         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
9347         of mkinstalldirs.
9348
9349 2001-08-03  Richard Henderson  <rth@redhat.com>
9350
9351         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
9352         constant data.
9353
9354 2001-08-03  Richard Henderson  <rth@redhat.com>
9355
9356         * rtlanal.c (find_first_parameter_load): Stop if we
9357         reach a CODE_LABEL at BOUNDARY.
9358
9359 2001-08-03  Richard Henderson  <rth@redhat.com>
9360
9361         * config/alpha/alpha.md (force_movdi): New insn.
9362         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
9363         Tweek FRP marking of VMS prologue insns.
9364         * config/alpha/vms.h (EPILOGUE_USES): New.
9365
9366 2001-08-02  Richard Henderson  <rth@redhat.com>
9367
9368         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
9369
9370 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
9371
9372         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
9373         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
9374         config/convex/convex.h, config/d30v/d30v.c,
9375         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
9376         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
9377         config/mips/mips.h, config/mn10200/mn10200.h,
9378         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
9379         config/v850/v850.h, config/vax/openbsd.h,
9380         config/vax/openbsd1.h, config/vax/ultrix.h,
9381         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
9382         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
9383         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
9384         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
9385         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
9386         in comments and documentation.
9387
9388 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9389
9390         * line-map.c: New.
9391         * line-map.h: New.
9392         * Makefile.in (line-map.o): New.
9393         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
9394         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
9395         * cpperror.c (print_containing_files): Similarly.
9396         (print_location): Update.  Don't output a space before _Pragma.
9397         * cppfiles.c (stack_include_file): Set to line 1 immediately.
9398         (stack_include_filee, cpp_make_system_header): Update.
9399         (_cpp_execute_include): Get logical line number right for calling
9400         as-yet-unterminated #include.
9401         * cpphash.h (struct cpp_reader): Add line_maps.
9402         (_cpp_do_file_change): Update.
9403         * cppinit.c (cpp_create_reader): Initialize line maps.
9404         (cpp_destroy): Destroy line maps.
9405         (cpp_start_read): Get logical line number right.
9406         * cpplex.c (parse_string): Only warn once for multi-line strings.
9407         Use boolean variable for null warning.
9408         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
9409         already.
9410         (do_include_common): End the directive early.
9411         (do_line): Don't warn about out-of-range lines in preprocessed
9412         source.  Update.  Remove unused variables.
9413         (_cpp_do_file_change): Update for new line mapping.
9414         (pragma_cb): New typedef.
9415         (cpp_register_pragma): Stop looking ahead before calling the
9416         handler.  Clean up.
9417         (do_pragma_system_header): End directive early.
9418         (cpp_get_line_maps): New.
9419         (cpp_pop_buffer): Fudge logical line.  Update.
9420         * cpplib.h: Include line-map.h
9421         (enum cpp_fc_reason): Remove.
9422         (struct cpp_file_change): Update.
9423         (cpp_get_line_maps): New.
9424         * cppmain.c (struct_printer): New member map.
9425         (cb_file_change): Update for new mappings.
9426         * fix-header.c (cb_file_change): Similarly.
9427
9428 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
9429
9430         * Makefile.in (libgcc.mk): Define mkinstalldirs.
9431         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
9432
9433 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
9434
9435         * config/vax/vax.c: include expr.h.
9436
9437 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
9438
9439         * Makefile.in ($(srcdir)/configure): Only rebuild in
9440         maintainer mode.
9441         ($(srcdir)/config.in): Only define in maintainer mode.
9442         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
9443
9444 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
9445
9446         * doc/install.texi (Install GCC: Binaries): Update Bull info.
9447
9448 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9449
9450         * gcc.c (set_collect_gcc_options): New function, split out from
9451         main.
9452         Ignore elided switches.
9453         (do_spec_1): Invoke before executing command.
9454         (set_input): Export.
9455         Move declaration ...
9456         * gcc.h (set_input): ... here.
9457         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
9458         file.
9459
9460 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
9461
9462         Kill -fhonor-std.
9463         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
9464         interaction.
9465         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
9466
9467 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
9468
9469         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
9470         for the unnamed instructions it expands to.
9471
9472 2001-08-02  Richard Henderson  <rth@redhat.com>
9473
9474         * regclass.c (call_really_used_regs): Conditionally define.
9475         (init_reg_sets_1): Don't use it if not defined.
9476         (fix_register): Similarly, don't set it.
9477
9478 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9479
9480         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
9481         Correct comment that had been missed in the previous change.
9482
9483 2001-08-01  Stan Shebs  <shebs@apple.com>
9484
9485         * config/darwin.c (machopic_stub_name): Try matching by name.
9486         (update_stubs): New function.
9487         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
9488         unconditionally.
9489
9490 2001-08-01  Richard Henderson  <rth@redhat.com>
9491
9492         * except.c (output_function_exception_table): Use assemble_align.
9493         * varasm.c (assemble_eh_label): Remove.
9494         (assemble_eh_align, assemble_eh_integer): Remove.
9495
9496 2001-08-01  Robert Lipe  <robertl@caldera.com>
9497
9498         * dwarfout.c: Remove reference to README.DWARF.
9499
9500 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
9501
9502         * regclass.c (call_really_used_regs): New array for registers which
9503         are actually used by a call.
9504         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
9505         new array.
9506         (fix_register): Set call_really_used too.
9507         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
9508         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
9509
9510 2001-08-01  Richard Henderson  <rth@redhat.com>
9511
9512         * read-rtl.c (read_name): Consider \r whitespace.
9513
9514 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
9515
9516         * config.gcc: Recognize powerpc-*-netbsd*.
9517
9518         * doc/install.texi (Host/target specific installation notes for
9519         GCC): Mention powerpc-*-netbsd*.
9520
9521         * config/rs6000/netbsd.h: New file.
9522         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
9523         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
9524         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
9525         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
9526         (TARGET_VERSION): Redefine.
9527
9528         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
9529         mcall-netbsd as a match for mcall-sysv.
9530         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
9531         (ncrti.S, ncrtn.S): New targets.
9532         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
9533
9534         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
9535         "netbsd' as a V4 ABI.
9536         (ASM_SPEC): Check for -mcall-netbsd.
9537         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
9538         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
9539         (LIB_SPEC, ENDFILE_SPEC): Ditto.
9540         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
9541         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
9542         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
9543         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
9544
9545         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
9546         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
9547
9548 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
9549
9550         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
9551         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
9552         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
9553         including "unwind-pe.h".
9554
9555 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
9556
9557         * rs6000.md (define_splits): Kill unused constraints.
9558
9559 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
9560                               Jan Hubicka  <jh@suse.cz>
9561
9562         * function.c (thread_prologue_and_epilogue_insns): Kill code
9563         dealing with non-existent CFG.
9564
9565 2001-08-01  Kazu Hirata  <kazu@hxi.com>
9566
9567         * alias.c: Fix comment formatting.
9568         * bitmap.c: Likewise.
9569         * builtins.c: Likewise.
9570         * calls.c: Likewise.
9571         * c-common.c: Likewise.
9572         * c-decl.c: Likewise.
9573         * c-dump.c: Likewise.
9574         * c-lex.c: Likewise.
9575         * collect2.c: Likewise.
9576         * combine.c: Likewise.
9577         * conflict.c: Likewise.
9578         * cppfiles.c: Likewise.
9579         * cppinit.c: Likewise.
9580         * cpplex.c: Likewise.
9581         * cpplib.c: Likewise.
9582         * cppmacro.c: Likewise.
9583         * cppspec.c: Likewise.
9584         * c-pragma.c: Likewise.
9585         * crtstuff.c: Likewise.
9586         * cse.c: Likewise.
9587         * cselib.c: Likewise.
9588         * c-semantics.c: Likewise.
9589         * c-typeck.c: Likewise.
9590
9591 2001-08-01  H.J. Lu <hjl@gnu.org>
9592
9593         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
9594
9595 2001-08-01  H.J. Lu <hjl@gnu.org>
9596
9597         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
9598
9599 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
9600
9601         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
9602         contextualizing Objective-C class name lookup by the lexer.
9603         (typespec_reserved_nonattr): Disable ObjC class name lookup after
9604         seeing a TYPESPEC.
9605         (protocoldef): Add support for forward @protocol declarations.
9606         (yylexname): Suppress ObjC class name lookup in certain contexts;
9607         re-enable after lookup is complete.
9608         (_yylex): Re-enable ObjC class name lookup when certain
9609         punctuation marks are seen.
9610
9611         * objc/objc-act.c (check_protocol_recursively): New function used
9612         for finding circular dependencies in protocols.
9613         (objc_declare_protocols): New function for handling forward
9614         @protocol declarations.
9615         (receiver_is_class_object): Detect the case when 'self' is used
9616         inside of a class method.
9617         (build_message_expr): Issue a warning if class method is desired
9618         but instance method is found instead.
9619         (conforms_to_protocol): Streamline.
9620         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
9621         protocol Foo, even if 'Bar foo' does not.
9622         (check_protocols): Streamline.
9623         (start_protocol): Add checks for circular and duplicate protocol
9624         definitions.
9625         (encode_aggregate_within): For typedefs of structs, encode the
9626         underlying struct.
9627         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
9628         (objc_declare_protocols): New prototype.
9629
9630 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9631
9632         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
9633         * cpplex.c (handle_newline): Update prototype.  Maintain logical
9634         line number.
9635         (skip_escaped_newlines, skip_block_comment, parse_string):
9636         Update accordingly.
9637         (_cpp_lex_token): Update, and store token position within the token.
9638         * cpplib.h (struct cpp_token): Add line and column entries.
9639         * cppmacro.c (replace_args): Position stringified tokens correctly.
9640
9641 2001-08-01  Andreas Jaeger  <aj@suse.de>
9642
9643         * basic-block.h: Add prototype for last_loop_beg_note.
9644
9645 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
9646
9647         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
9648         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
9649         comment.
9650         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
9651         while handling WITH_CLEANUP_EXPR node. Use second operand calling
9652         expand_decl_cleanup.
9653         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
9654         the first RTX.
9655         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
9656         operand while calling simple_cst_equal.
9657         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
9658         operand is the cleanup expression, the third is the RTL_EXPR.
9659         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
9660
9661 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
9662
9663         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
9664
9665 2001-07-31  matthew green  <mrg@eterna.com.au>
9666
9667         * config.gcc (i386-*-netbsdelf): New description.
9668         * config/i386/netbsd-elf.h: New file.
9669
9670 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
9671
9672         * loop.c (check_dbra_loop): Use single_set to compute
9673         jump_label.
9674
9675 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
9676
9677         PowerPC reorg and support for powerpc64-*-linux*.
9678
9679         Also fixes emitting of constants on 32 bit and 64 bit
9680         platforms.
9681
9682         * config.gcc: powerpc64-*-linux* is a new target.
9683         Things that needed aix.h now also include xcoff.h
9684
9685         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
9686         xcoff.h.
9687         Move AIX specific stuff into aix.h.
9688         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
9689         with more than just XCOFF now.
9690         (SET_ASM_OP): Remove, now defined where needed.
9691         (FUNCTION_PROLOGUE): New macro definition.
9692         (FUNCTION_EPILOGUE): New macro definition.
9693         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
9694
9695         * config/rs6000/xcoff.h: New file.
9696
9697         * config/rs6000/linux64.h: New file.
9698
9699         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
9700
9701 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
9702
9703         * rs6000.c (print_operand_address): Handle ELF syntax.
9704         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
9705         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
9706         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
9707
9708 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
9709
9710         * rs6000.c (rs6000_override_options): Only disable
9711         flag_function_sections for XCOFF.
9712         (exact_log2_cint_operand): New predicate.
9713         (reg_or_{add,sub}_cint64_operand): New predicates.
9714         (add_operand): Compare CONST_INT with fewer function calls.
9715         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
9716         (print_operand, case 'p'): Ensure positive operand.
9717         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
9718         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
9719         (PREDICATE_CODES): Add new predicates.
9720         * rs6000.md (addsi3): Split 32-bit constants more correctly.
9721         (divsi3, modsi3): Ensure positive power-of-2.
9722         (adddi3): Use new predicate.  Split 32-bit constants more
9723         correctly.  Re-arrange splitter to handle any constant.
9724         (subdi3): Use new predicate.
9725         (divdi3, moddi3): Ensure positive power-of-2.
9726         (movdi): Use rs6000_emit_set_const.
9727         (load_toc_v4_pic_di): Delete.
9728
9729 2001-07-31  Graham Stott <grahams@redhat.com>
9730
9731         * function.c (pad_below): Revert 2001-07-26 patch.
9732
9733 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
9734
9735         * reg-stack (convert_regs_1): Fix best edge condition.
9736
9737 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
9738
9739         * jump.c (duplicate_loop_exit_test): Better test for jumps
9740         entering the loop; create loop pre_header.
9741
9742 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
9743
9744         * doc/install.texi: Add s390 and s390x as new targets.
9745         * doc/invoke.texi: Add documentation of S/390 and zSeries
9746         target options.
9747         * doc/md.texi: Add documentation of S/390 and zSeries constraints.
9748
9749 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
9750
9751         * config/m68k/m68k.md: Replace all general_operand with
9752         nonimmediate_operand for all destinations.
9753         * config/m68k/m68k.c (not_sp_operand): Likewise.
9754
9755 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
9756
9757         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
9758
9759 2001-07-30  Richard Henderson  <rth@redhat.com>
9760
9761         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
9762         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
9763
9764 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
9765
9766         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
9767         Add missing doc strings
9768         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
9769         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
9770
9771 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
9772
9773         * i386.c (ix86_output_main_function_alignment_hack): New function.
9774         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
9775
9776         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
9777         edges by EDGE_DFS_BACK flag.
9778         (dump_edge_info): Add dfs_back flag.
9779         * basic-block.h (EDGE_DFS_BACK): New constant.
9780         (mark_dfs_back_edges): Declare.
9781         * alias.c (loop_p): Remove.
9782         (mark_constant_function): Use mark_dfs_back_edges.
9783
9784         * reg-stack.c (block_info_def): Add predecesors counter and stack_out.
9785         (reg_to_stack): Call mark_dfs_back_edges; count the predecesors.
9786         (compensate_edge): Break out from ...
9787         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
9788         (convert_regs_2): Set block_done once block is really done;
9789         Do updating of the predecesors counts.
9790
9791         * toplev.c (rest_of_compilation): Recompute block_for_insn
9792         before post-reload cfg_cleanup.
9793         * function.c (thread_prologue_epilogue_insns):
9794         Call set_block_for_new_insns when emitting prologue directly.
9795
9796 2001-07-30  Andreas Jaeger  <aj@suse.de>
9797
9798         * jump.c: Add prototype for mark_modified_reg.
9799
9800         * cse.c (set_live_p): Add unused attribute.
9801
9802         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
9803         overflow.
9804         (scan_for_source_files): Use long for count to avoid overflow.
9805         (output_data): Likewise.
9806         (output_data): Don't use string concatatenation to silence gcc
9807         -traditional.
9808
9809         * predict.c: Fix typos and grammar.
9810
9811         * gcse.c (insert_insn_end_bb): Remove unused variables.
9812
9813 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
9814
9815         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
9816         (attempt_auto_inc): LIkewise.
9817         (mark_used_reg): Likewise.
9818         (try_pre_increment_1): Likewise.
9819         * regclass.c (regclass): Likewise.
9820         * global.c (allocno_compare): Update comment; change scaling factor.
9821         * local-alloc.c (QTY_CMP_PRI): Likewise.
9822         * regs.h (REG_FREQ_FROM_BB): New.
9823         (REG_FREQ_MAX): Likewise.
9824
9825 2001-07-30  H.J. Lu <hjl@gnu.org>
9826
9827         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
9828         -D_GNU_SOURCE.
9829
9830 2001-07-30  H.J. Lu  (hjl@gnu.org)
9831
9832         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
9833         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
9834         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
9835
9836 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
9837
9838         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
9839         as -mthumb-interwork when -mcpu=arm7 is specified.
9840
9841 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
9842
9843         * predict.def (noreturn, loop branch, loop exit): Mark as first
9844         match heuristics.
9845
9846 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
9847
9848         * combine.c (try_combine): Avoid barrier after noop jumps.
9849
9850 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9851
9852         * cpphash.h (struct cpp_reader): Remove import_warning.
9853         * cpplib.c (skip_rest_of_line): Don't bother turning off
9854         macro expansion.
9855         (parse_include): Move include handling to...
9856         (do_include_common): ... here.  Move import warning from...
9857         (do_import): ... here.
9858         (do_pragma_poison): Don't do a callback for poison identifiers.
9859         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
9860         * cppmain.c (setup_callbacks): Similarly.
9861
9862 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
9863
9864         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
9865         handle multiple sets.
9866         * except.c (sjlj_mark_call_sites): .... here.
9867         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
9868
9869 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
9870
9871         Suggested by Richard Henderson and Richard Kenner:
9872         * combine.c (recog_for_combine): Use the fake recog
9873         only if instruction does not match.
9874         * rtl.h (NOOP_MOVE_INSN_CODE): New.
9875         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
9876
9877         * combine.c (try_combine): Discover noop jump as direct jump.
9878
9879 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
9880
9881         * df.c (df_rd_global_compute): Add successors to worklist, not
9882         current item.
9883         (df_ru_global_compute): Ditto.
9884
9885 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
9886
9887         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
9888         increment REG_N_SETS.
9889
9890 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
9891
9892         * sbitmap.h: New prototype for sbitmap_a_xor_b.
9893
9894         * sbitmap.c (sbitmap_a_xor_b): New function.
9895         ifdef the basic block stuff on IN_GCC.
9896
9897 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9898
9899         * cppexp.c (parse_defined): Always record the macro name.
9900         (lex): Don't worry about identifiers, or special-case
9901         CPP_NOT here.
9902         (_cpp_parse_expr): Figure out at the end of the routine
9903         whether we saw a valid !defined() expression.
9904         * cppfiles.c (stack_include_file): Update for mi_valid.
9905         (_cpp_pop_file_buffer): Similarly.
9906         * cpplex.c (_cpp_lex_token): Similarly.
9907         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
9908         mi_if_not_defined, mi_lexed): Remove.
9909         (mi_valid): New.
9910         * cpplib.c (do_if): Simplify.
9911         (do_endif, push_conditional, _cpp_handle_directive): Update
9912         for renaming of mi_state to mi_valid.
9913 doc:
9914         * cpp.texi: Add index entries for digraphs, and add comment
9915         that C++ refers to them as alternative tokens.
9916
9917 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
9918
9919         * basic-block.h (CLEANUP_PRE_LOOP): New.
9920         * except.c (finish_eh_generation): Update call of cleanup_cfg.
9921         * sibcall.c (optimize_sibling_calls): Likewise.
9922         * toplev.c (rest_of_compilation): Likewise.
9923         * flow.c (try_forward_edges): Take argument MODE;
9924         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
9925         (try_optimize_cfg): Update call of try_forward_edges.
9926
9927 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
9928                                 Jan Hubicka  <jh@suse.cz>
9929
9930         * (validate_replace_rtx_1): Fix simplification of MINUS.
9931
9932 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9933
9934         PR preprocessor/3669
9935         * cppinit.c (init_dependency_output): Turn off dump requests
9936         if sending dependencies to stdout.
9937
9938 2001-07-28  Richard Henderson  <rth@redhat.com>
9939
9940         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
9941         not optimizing.
9942
9943 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
9944
9945         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
9946
9947 2001-07-28  Kazu Hirata  <kazu@hxi.com>
9948
9949         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
9950         is VAR_DECL first to prevent an ICE.
9951
9952 2001-07-28  Richard Henderson  <rth@redhat.com>
9953
9954         * varasm.c (immed_real_const_1): Don't elide special cases for
9955         nested functions.
9956         (clear_const_double_mem): Clear const_tiny_rtx too.
9957
9958 2001-07-28  Richard Henderson  <rth@redhat.com>
9959
9960         * dwarf2out.c (dw_val_class_offset): New.
9961         (struct dw_ranges_struct, dw_ranges_ref): New.
9962         (ranges_table, ranges_table_allocated): New.
9963         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
9964         (add_AT_offset, add_ranges, output_ranges): New.
9965         (print_die, output_die): Handle dw_val_class_offset.
9966         (attr_checksum, size_of_die, value_format): Likewise.
9967         (gen_lexical_block_die): Handle non-contiguous blocks.
9968         (gen_block_die): Likewise.
9969         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
9970         if needed.  Dump the ranges table.
9971         * final.c (final_start_function): Remove unnecessary notes and
9972         rebuild the block tree before numbering the blocks.
9973         * function.c (reorder_blocks_0): Walk the existing block tree
9974         to unmark all blocks.
9975         (reorder_blocks_1): Create block fragments when duplicate block
9976         notes are seen.
9977         (reorder_fix_fragments): New.
9978         (reorder_blocks): Call it.
9979         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
9980
9981 2001-07-28  Richard Henderson  <rth@redhat.com>
9982
9983         * emit-rtl.c (adjust_address): Make a copy of the memory address.
9984
9985 2001-07-28  Richard Henderson  <rth@redhat.com>
9986
9987         * flow.c (add_to_mem_set_list): New function.
9988         (init_propagate_block_info): Use it.
9989         (mark_set_1): Likewise.
9990         (insn_dead_p): Canonicalize memory address for dead store
9991         comparison.  Allow wider mode stores to kill narrower mode stores.
9992         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
9993         (invalidate_mems_from_set): Don't handle MEMs.
9994
9995 2001-07-28  Kazu Hirata  <kazu@hxi.com>
9996
9997         * config/h8300/h8300.h: Fix formatting.
9998
9999 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
10000
10001         * basic-block.h (EDGE_FREQUENCY): New macro.
10002         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
10003         for new BB/edges.
10004         * flow.c (find_sub_basic_blocks): Likewise.
10005         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
10006         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
10007
10008         * predict.c (DEF_PREDICTOR): New argument FLAGS.
10009         (HITRATE): New macro.
10010         (PRED_FLAG_FIRST_MATCH): New constant.
10011         (predictor_info): New field flgags.
10012         (combine_predictions_for_insn): Use DS theory to combine
10013         probabilities; set the edge probabilities when finished.
10014         (estimate_probability): Avoid duplicated matches
10015         of LOOP_BRANCH heuristics for nested loops; update comment.
10016         * predict.def: Add flags for each prediction, set probabilities
10017         according to B&L paper.
10018         * predict.h (DEF_PREDICTOR): New argument FLAGS.
10019
10020         * profile.c (compute_branch_probabilities):  Cleanup way the edge
10021         probabilities are computed and REG_BR_PROB notes are dropped; if
10022         values does not match, emit error.
10023         (init_branch_prob): Do error instead of warning when profile driven
10024         feedback is missing or corrupt.
10025
10026 2001-07-27  DJ Delorie  <dj@redhat.com>
10027
10028         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
10029         against a constant, try to adjust the compare to have the desired
10030         constant in it so that min/max optimizations happen more often.
10031
10032 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
10033
10034         * flow.c (last_loop_beg_note): New function.
10035         (redirect_edge_and_branch): Use it.
10036         (split_edge): Likewise.
10037
10038         * alias.c (loop_p): Avoid uninitialized memory access.
10039
10040         * flow.c (try_forward_edges): Avoid accessing freed memory.
10041
10042         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
10043         variable access.
10044
10045 2001-07-26  Andrew Haley  <aph@redhat.com>
10046         Joern Rennecke <amylaar@redhat.com>
10047
10048         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
10049         (SUBTARGET_CPP_ENDIAN_SPEC): New.
10050         (SUBTARGET_CPP_SPEC): New.
10051         (CPP_SPEC): Remove.
10052         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
10053         (SUBTARGET_CPP_PTR_SPEC): New.
10054         (CPP_DEFAULT_CPU_SPEC): New.
10055         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
10056         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
10057         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
10058         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
10059         (SUBTARGET_CPP_SPEC): Define as an empty string.
10060
10061 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10062
10063         * doc/install.texi (Configuration): Properly link the host
10064         specific instructions also when generating HTML.
10065
10066 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
10067
10068         * flow.c (redirect_edge_and_branch_force): Test
10069         target->global_live_at_start.
10070
10071 2001-07-26  Richard Henderson  <rth@redhat.com>
10072
10073         * simplify-rtx.c (avoid_constant_pool_reference): Export.
10074         * rtl.h (avoid_constant_pool_reference): Declare it.
10075         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
10076         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
10077
10078 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
10079
10080         * rtl.h (cleanup_barriers): Declare.
10081         * jump.c (cleanup_barriers): New function.
10082         * toplev.c (rest_of_compilation): Call cleanup_barriers
10083         before loop optimizer and after bb_reorder.
10084
10085         * flow.c (back_edge_of_syntactic_loop_p): New.
10086         (split_edge): Use it.
10087
10088 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10089
10090         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
10091
10092 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
10093
10094         * cse.c (cse_process_notes): Replace any registers if the address
10095         remains valid.
10096
10097 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
10098
10099         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
10100         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
10101         (propagate_block): Update prototype.
10102         * flow.c (update_life_info): Simplify the CFG and
10103         recalculate the global regs which are alive when
10104         removing dead code during a global update.
10105         (propagate_block): Return non-zero if an INSN is
10106         deleted.
10107
10108 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10109
10110         * Makefile.in (LIBICONV): Define.
10111
10112 2001-07-26  Catherine Moore  <clm@redhat.com>
10113
10114         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
10115         of conditional to avoid tree checking errors.
10116
10117 2001-07-26  Kazu Hirata  <kazu@hxi.com>
10118
10119         * regmove.c (regmove_optimize): Don't replace a reg with
10120         another reg of a different mode.
10121
10122 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
10123
10124         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
10125         limit length of dependency flush list.
10126         * params.h (MAX_PENDING_LIST_LENGTH): Define.
10127         * sched-int.h  (struct deps): Add pending_flush_length field.
10128         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
10129         has 1 element in it.
10130         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
10131         (sched_analyze): After a jump, if the pending memory flush list is too
10132         large, flush the pending lists.
10133         (init_deps): Initialize pending_flush_length to 0.
10134         * doc/invoke.texi (max_pending_list_length): Document parameter.
10135
10136 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
10137
10138         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
10139         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
10140         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
10141
10142 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10143
10144         * cpphash.h (struct_lexer_state): Delete was_skipping.
10145         Move skipping here from struct cpp_reader.
10146         * cpplex.c (parse_identifier): Update.
10147         (_cpp_lex_token): Don't skip tokens in a directive.
10148         * cpplib.c (struct if_stack): Update.
10149         (start_directive, end_directive): Don't change skipping state.
10150         (_cpp_handle_directive): Update.
10151         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
10152         (do_else, do_endif): Update; only check for excess tokens if not
10153         in a skipped conditional block.
10154         (push_conditional): Update for new struct if_stack.
10155
10156 2001-07-26  Graham Stott  <grahams@redhat.com>
10157
10158         * function.c (locate_and_pad_parm): Also pad initial offset
10159         so that the total argument size also includes the padding.
10160
10161 2001-07-26  Graham Stott <grahams@redhat.com>
10162
10163         * gensupport.c (alter_output_for_insn): Correct enable checking failure
10164         change XSTR to XTMPL.
10165
10166         (process_one_cond_exec): Likewise
10167
10168 2001-07-25  Richard Henderson  <rth@redhat.com>
10169
10170         * varasm.c (assemble_variable): Create DECL_RTL before setting
10171         TREE_ASM_WRITTEN.
10172
10173 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
10174
10175         * predict.c (estimate_probability): Avoid duplicated predictions.
10176
10177         * loop.c (find_and_verify_loops): Grok multiple barriers.
10178
10179 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10180
10181         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
10182
10183         * dbxout.c: Consistently use putc instead of fputc.
10184         (print_wide_int): New function; call instead of direct fprintf.
10185         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
10186         (dbxout_type_fields, dbxout_type_method_1): Likewise.
10187         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
10188         (print_int_cst_octal): Likewise.
10189         (print_octal): Show we wrote characters.
10190         (dbxout_type): Set have_used_extensions in more places.
10191
10192 2001-07-25  Catherine Moore  <clm@redhat.com>
10193
10194         * config/v850/v850.c (v850_va_arg):  Use addr
10195         instead of valist to build incr.
10196
10197 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
10198
10199         * flow.c (delete_dead_jumptables): New function.
10200         (life_analyzis): Call it.
10201         * bb-reorder.c (skip_insns_after_block): Handle contradictory
10202         sequences.
10203
10204 2001-07-25  Richard Henderson  <rth@redhat.com>
10205
10206         * except.c (reachable_handlers): Handle a region being removed
10207         out from under a RESX.
10208
10209 2001-07-25  Richard Henderson  <rth@redhat.com>
10210
10211         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
10212         swap GE/GT if it is an fp comparison.
10213
10214 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
10215
10216         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
10217         operands.
10218
10219 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
10220
10221         * ssa.c (rename_insn_1): Do not wrap an assignment to a
10222         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
10223         glitch.
10224
10225         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
10226         throw an exception.
10227         (visit_expression): When attempting to simplify an expression,
10228         retrieve any modes for arguments before they are simplified
10229         to constants.
10230
10231 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
10232             Janis Johnson  <janis@us.ibm.com>
10233
10234         * stmt.c (expand_goto): A nonlocal goto can be a call too.
10235         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
10236         pointer parameters to match documented usage of nonlocal_goto.
10237         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
10238         parameters to their correct order.
10239         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
10240         parameters to their correct order.
10241
10242 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
10243
10244         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
10245
10246 2001-07-25  Jan Hubicka  <jh@suse.cz>
10247             Richard Henderson  <rth@redhat.com>
10248
10249         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
10250         the sequence.
10251         (make_edges): New argument update_p; populate the edge cache if set.
10252         (find_basic_blocks): Update make_edges invocation.
10253
10254 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10255
10256         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
10257
10258 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10259
10260         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
10261         -Acpu and -Amachine.h.
10262         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
10263         Corrected header to say ELF not a.out.
10264         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
10265         when given -msoft-float.
10266
10267 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10268
10269         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
10270         extra multilib parts like arm-elf.
10271         (i960-*-coff*, i960-*-rtems): Should not use collect2.
10272         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
10273         crtfini.o as extra multilib parts.
10274
10275 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10276
10277         * configure.in: Add rtems as a supported thread model.
10278         * gthr-rtems.h: Add missing entry point __gthread_active_p.
10279         * configure: Rebuilt.
10280
10281 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
10282
10283         * stor-layout.c (get_mode_alignment): make it work when
10284         BITS_PER_UNIT is not a power of two.
10285         * builtins.c (get_pointer_alignment): Likewise.
10286
10287 2001-07-24  Richard Henderson  <rth@redhat.com>
10288
10289         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
10290         the retrieved constant into the expected mode.
10291
10292 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
10293
10294         * flow.c (try_simplify_condjump): Avoid duplicated edges.
10295         (verify_flow_info): Check for duplicated edges; clarify
10296         error reporting.
10297
10298         * flow.c (block_label): Update basic_block_for_insn.
10299         (commit_edge_insertions): Call compute_bb_for_insn.
10300
10301         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
10302         returns too.
10303
10304         * flow.c (redirect_edge_and_branch,
10305         try_optimize_cfg): Use redirect_edge_succ_nodup
10306         (redirect_edge_succ_nodup): New.
10307         * basic_block.h (redirect_edge_succ_nodup): Declare.
10308
10309         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
10310         after gcse.
10311
10312 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
10313
10314         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
10315         (try_crossjump_to_edge): Update commetns.
10316         (try_crossjump_bb): Likewise.
10317
10318 2001-07-24  Richard Henderson  <rth@redhat.com>
10319
10320         * combine.c (distribute_notes): Move set of need_refresh
10321         for noop_move_p down to catch all cases.
10322
10323 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
10324
10325         * recog.c (split_all_insns_noflow): New.
10326         * rtl.h (split_all_insns_noflow): Declare.
10327         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
10328         * m68hc11.c (m68hc11_reorg): Likewise.
10329         * sh.c (machine_dependent_reorg): Likewise.
10330         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
10331         call.
10332
10333 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
10334
10335         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
10336         (ashlsi3_n splitter): Likewise.
10337         (lshrsi3_n splitter): Likewise.
10338
10339         (GOTaddr2picreg): Make const SImode.
10340         (sym_label2reg): Likewise.
10341         (symGOT2reg): Likewise.
10342         (symGOTOFF2reg) Likewise.
10343
10344         (casesi_worker_0): Make unspec SImode.
10345
10346 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
10347
10348         * config/sh/sh.c (barrier_align): Check that an operand really is
10349         an insn before extracting its INSN_CODE.
10350
10351 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
10352
10353         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
10354         dangling else.
10355
10356         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
10357         for SImode to prevent overflow.
10358
10359 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10360
10361         * config/mips/irix6-libc-compat.c: New file.
10362         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
10363         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
10364         passing workaround.
10365
10366 2001-07-24  lars brinkhoff  <lars@nocrew.org>
10367
10368         * rtl.texi (REG_POINTER): Document.
10369         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
10370         QFmode, HFmode, TQFmode, QCmode, and HCmode.
10371
10372 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
10373
10374         * flow.c (delete_noop_moves): Do not confuse libcall regions.
10375
10376 2001-07-23  Richard Henderson  <rth@redhat.com>
10377
10378         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
10379
10380 2001-07-23  Kazu Hirata  <kazu@hxi.com>
10381
10382         * config/h8300/h8300-protos.h: Add a prototype for
10383         general_operand_dst_push.
10384         * config/h8300/h8300.c (general_operand_dst_push): New.
10385         * config/h8300/h8300.h (OK_FOR_T): New.
10386         (EXTRA_CONSTRAINT): Use it.
10387         * config/h8300/h8300.md (movqi_push): Remove and integrate into
10388         the existing movqi pattern.
10389         (movhi_push): Likewise.
10390
10391         * reload.c: Fix comment typos.
10392
10393 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
10394
10395         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
10396
10397 2001-07-23  H.J. Lu  (hjl@gnu.org)
10398
10399         * doc/extend.texi: Update __builtin_return_address and
10400         __builtin_frame_address.
10401
10402 2001-07-23  Richard Henderson  <rth@redhat.com>
10403
10404         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
10405         before CSE.
10406         * config/i386/i386.md: New setcc+movzbl peephole2.
10407
10408 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10409
10410         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
10411         * objc/objc-act.c: Include debug.h.
10412         (synth_module_prologue): Save and restore debug hooks too.
10413
10414 2001-07-23  lars brinkhoff  <lars@nocrew.org>
10415
10416         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
10417         and C4X_FLOAT_FORMAT.
10418         (BOOL_TYPE_SIZE): Document.
10419
10420 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
10421
10422         * unroll.c (loop_iterations): Fix miscalculation of initial
10423         giv offset.
10424
10425 2001-07-13  Andrew Haley  <aph@redhat.com>
10426
10427         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
10428         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
10429         * config/sh/sh.c (sh_can_redirect_branch): New function.
10430         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
10431         * reorg.c (steal_delay_list_from_target): Use
10432         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
10433
10434 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
10435
10436         * flow.c (try_simplify_condjump): Unlink insn chain on
10437         fallthru edge; use can_fallthru.
10438
10439 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
10440
10441         * basic-block.h (find_sub_basic_block): Declare.
10442         * flow.c (make_edges): New arguments MIN and MAX;
10443         (find_sub_basic_blocks): Revamp to use make_edges
10444         and purge_dead_edges.
10445         (find_basic_blocks): Update call of find_sub_basic_block.
10446
10447         * recog.c (split_all_insns): Always expect CFG to be consistent;
10448         call find_sub_basic_blocks in case something has changed.
10449         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
10450         has been built.
10451
10452         * basic-block.h (delete_noop_moves): Declare.
10453         * combine.c (combine_instructions): Call it.
10454         (recog_for_combine): Tolerate noop moves
10455         (distribute_notes): Force refresh when register dies at noop move.
10456         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
10457         too.
10458         (life_analysis): Update delete_noop_moves call.
10459         (set_noop_p): Move too ...
10460         * rtlanal.c (noop_move_p): ... here.
10461         * rtl.h (noop_move_p): Declare.
10462
10463         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
10464         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
10465         after combine.
10466         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
10467         (cprop_jump): Likewise; call purge_dead_edges if substitution suceeded.
10468
10469 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
10470
10471         * reload.c (push_reload): Fix typo in comment.
10472         (find_reloads_address): Ditto.
10473         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
10474
10475 2001-07-22  Richard Henderson  <rth@redhat.com>
10476
10477         * flow.c: Grammar check and clarify a lot of comments.
10478         (try_simplify_condjump): Rename variables to be clearer.
10479         (try_forward_edges): Skip complex and fallthru edges.
10480         Rearrange tests to avoid duplicate checks.
10481         (flow_find_cross_jump): Likewise.
10482         (outgoing_edges_match): Allow match if neither branch has
10483         probability data.  Loosen probability match to 5%.
10484         (try_crossjump_to_edge): Hoist repeated indirection into
10485         local variables.
10486         (try_crossjump_bb): Don't check complex edges.  Eliminate
10487         redundant crossjump tests.
10488         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
10489         checks before more expensive checks.
10490
10491 2001-07-22  Richard Henderson  <rth@redhat.com>
10492
10493         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
10494         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
10495         arguments.
10496
10497 2001-07-22  Richard Henderson  <rth@redhat.com>
10498
10499         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
10500         (const_sint32_operand): Likewise.
10501         * m68k.md (anon mulsi pattern): Use const_int_operand not
10502         const_sint32_operand.
10503         (umulsi3_highpart): Zero extend a constant input.
10504         (smulsi3_highpart): Don't bother checking SImode constant.
10505         (const_umulsi3_highpart): Give op3 DImode.
10506         (const_smulsi3_highpart): Likewise.
10507
10508 2001-07-22  Richard Henderson  <rth@redhat.com>
10509
10510         * flow.c (split_block): Make sure bb_note is included in the
10511         new block when splitting before a label.
10512
10513 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
10514
10515         * basic-block.h (redirect_edge_and_branch_force,
10516         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
10517         * flow.c (redirect_edge_and_branch_force,
10518         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
10519         (redirect_edge_and_branch_force): Fix copying of lifeness information.
10520         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
10521         * ifcvt.c (dead_or_predictable): Take BB as an new destionation
10522         instead of label; update CFG after transformation.
10523         (find_if_case_1): Update call, use redirect_edge_and_branch_force
10524         for finishing the transformation; handle even case where ELSE
10525         does not follow THEN.
10526         (find_if_case_2): Update call of dead_or_predictable; simplify
10527         CFG update.
10528
10529         * emit-rtl.c (split_branch_probability): New global variable.
10530         (try_split): Take care to set split_branch_probability and
10531         create REG_BR_PROB note for new jump insns.
10532         * md.texi (define_split): Document new feature.
10533
10534         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
10535
10536 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
10537
10538         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
10539         (asm_out_file): Remove redundant declaration.
10540         (assemble_asm): Remove old #if 0 block.
10541         (assemble_variable): Remove end of function; debug output is
10542         now handled with global_decl.  Remove old #if 0 block.  Update.
10543         Remove saved_in_section and associated no-op code.
10544         * Makefile.in (varasm.o): Correct dependencies.
10545
10546 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
10547
10548         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
10549         the definition in defaults.h.
10550
10551 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
10552
10553         * jump.c: Update comments.
10554         (delete_barrier_successors, delete_unreferenced_labels,
10555         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
10556         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
10557         jump_optimize, jump_optimize_minimal): Kill.
10558         (rebuild_jump_labels): Move code from jump_optimize_1.
10559         (purge_line_number_notes): Likewise.
10560         (copy_loop_headers): Likewise.
10561         * reg-stack.c: Update comment.
10562         * stmt.c: Likewise.
10563         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
10564         JUMP_AFTER_REGSCAN): Kill.
10565         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
10566         purge_line_number_notes and copy_loop_headers.
10567
10568 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
10569            Richard Henderson  <rth@redhat.com>
10570
10571         * dbxout.c (dbxout_global_decl): New.
10572         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
10573         * sdbout.c (sdbout_finish): New.
10574         (sdbout_debug_hooks): Use it, add comments.
10575         (sdbout_global_decl): Defer initialised public vars to
10576         sdbout_finish.
10577         * varasm.c (assemble_variable): Don't output debug information
10578         for file-scope variables.
10579
10580 2001-07-22  Richard Henderson  <rth@redhat.com>
10581
10582         * config/alpha/alpha.c (get_trap_mode_suffix): New.
10583         (get_round_mode_suffix): New.
10584         (print_operand): Use them for [/].  Remove support for [&'`()+].
10585         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
10586         * config/alpha/alpha.md (attr round_suffix): New.
10587         (attr trap_suffix): New.
10588         (all insns): Set them appropriately.  Use %/ instead of the
10589         myriad punctuators.
10590
10591 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10592
10593         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
10594
10595 2001-07-22  Richard Henderson  <rth@redhat.com>
10596
10597         * regrename.c (regrename_optimize): Compute nregs for each
10598         potential target register.
10599
10600 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
10601            Richard Henderson  <rth@redhat.com>
10602
10603         * dbxout.c (dbxout_global_decl): New.
10604         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
10605         * sdbout.c (sdbout_finish): New.
10606         (sdbout_debug_hooks): Use it, add comments.
10607         (sdbout_global_decl): Defer initialised public vars to
10608         sdbout_finish.
10609         * varasm.c (assemble_variable): Don't output debug information
10610         for file-scope variables.
10611
10612 2001-07-21  H.J. Lu  (hjl@gnu.org)
10613
10614         * config/mips/mips.c (mips_cpu): Moved into ...
10615         (override_options): Here.
10616
10617         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
10618         mips_tune.
10619         (mips_cpu): Removed.
10620
10621 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10622
10623         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
10624         ("iorqi3"): Likewise.
10625         ("xorqi3"): Likewise.
10626         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
10627         ("*subhi3_sp): Likewise.
10628         ("*subhi3"): Likewise.
10629         ("extendhisi2"): Accept D, X and Y as source operand to avoid
10630         reload problems.
10631
10632 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
10633
10634         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
10635         * config/freebsd.h: Likewise.
10636         * config/linux.h: Likewise.
10637         * config/openbsd.h: Likewise.
10638         * config/alpha/linux-elf.h: Likewise.
10639         * config/arm/linux-elf.h: Likewise.
10640         * config/d30v/d30v.h: Likewise.
10641         * config/fr30/fr30.h: Likewise.
10642         * config/ia64/aix.h: Likewise.
10643         * config/ia64/ia64.h: Likewise.
10644         * config/mips/linux.h: Likewise.
10645         * config/pj/pj.h: Likewise.
10646         * config/rs6000/linux.h: Likewise.
10647         * config/sparc/linux.h: Likewise.
10648         * config/sparc/linux64.h: Likewise.
10649
10650 2001-07-20  Bruce Korb  <bkorb@gnu.org>
10651
10652         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
10653         because getc() and char* may disagree on signedness.
10654
10655 2001-07-20  Richard Henderson  <rth@redhat.com>
10656
10657         * doc/rtl.texi (REG_DEAD): Update for current semantics.
10658
10659         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
10660         insns to delete in the presence of cc0 in a jump insn.
10661
10662 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
10663                                 Jan Hubicka  <jh@suse.cz>
10664
10665         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
10666         of doing the change by hand.
10667
10668 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
10669
10670         * rtlanal.c (set_noop_p): Return true for noop jumps.
10671
10672         * expr.c (emit_single_push_insn): Add call to push expander.
10673         * expr.h (optab_index): Add OTI_push
10674         (push_optab): New constant.
10675         * genopinit.c (optabs): Add push_optab.
10676         * optabs.c (init_optab): Init push optab.
10677         * md.texi (push??1): Document
10678
10679 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10680
10681         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
10682         expand to emit the pattern; put a REG_INC note for push/pop
10683         instructions.
10684         ("movdf", "movdf_internal"): Likewise.
10685         ("movsi", "movsi_internal"): Likewise.
10686         ("movsf", "movsf_internal"): Likewise.
10687         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
10688
10689 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10690
10691         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
10692         gen_highpart.
10693
10694 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
10695
10696         * params.def: Change default max inline insns to 100.
10697
10698 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
10699
10700         * combine.c (combine_simplify_rtx): Generate a new shift operation
10701         when simplifying the first operand of a (neg (ashift)) expression.
10702
10703 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
10704
10705         * regclass.c (N_REG_INTS): Use only 32 bits per element.
10706
10707 2001-07-20  Kelley Cook  <kelley.cook@home.com>
10708
10709         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
10710         information.   Move rest into ...
10711         (*-*-solaris): ... here.  Eliminate redundant information and
10712         reword necessary packages section.  Delete 4.x assembler bug info.
10713         (sparc-sun-*): Merge into ...
10714         (sparc-sun-sunos*): here.
10715
10716 2001-07-20  Catherine Moore  <clm@redhat.com>
10717
10718         * config/v850/v850.md (casesi): Generate LABEL_REF
10719         with Pmode.
10720
10721 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
10722
10723         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
10724         * i386.c (ix86_zero_extend_to_Pmode): Make global.
10725         * i386.md (strclrsi expander): Use it.
10726
10727 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
10728
10729         * integrate.c (copy_insn_list): handle
10730         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
10731         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
10732         identically as to CODE_LABEL.
10733
10734         * fold-const (fold): Convert A/B/C to A/(B*C) and
10735         A/(B/C) to (A/B)*C
10736
10737         * except.c (connect_post_landing_pads): Delete the RESX insns.
10738
10739 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
10740
10741         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
10742
10743         * config/mips/mips.md (nmadd/nmsub): Use macro.
10744
10745 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
10746
10747         * cppinit.c (remove_dup_dir): Make static.
10748         (remove_dup_dirs): Make static. Only warn about preempting a
10749         system directory with a non-system directory.
10750
10751 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
10752
10753         * ifcvt.c (noce_try_store_flag_constants): Correct order
10754         of parameters to trunc_int_for_mode.
10755
10756 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
10757
10758         * reorg.c (fill_simple_delay_slots): If an instruction might throw
10759         an exception that will be caught within this function, do not fill
10760         its delay slot with any subsequent instruction.
10761
10762 2001-07-19  Steve Ellcey <sje@cup.hp.com>
10763
10764         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
10765         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
10766         pointer extension instruction.
10767         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
10768         * simplify-rtx.c (simplify_unary_operation) Likewise.
10769         * explow.c (convert_memory_address) Check value of
10770         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
10771         less than zero.
10772         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
10773         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
10774         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
10775         Add Multilib Support.
10776         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
10777         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
10778         Add Multilib Support.
10779         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
10780         support.
10781         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
10782         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
10783         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
10784
10785 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
10786
10787         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
10788         old and new operands in `<', `3' and `b'.
10789
10790 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10791
10792         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
10793         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
10794         (toplev.o): Don't depend on xcoffout.h.
10795         * c-decl.c: Include debug.h
10796         (duplicate_decls): Use debug hook.
10797         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
10798         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10799         (dbxout_types): Remove.
10800         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
10801         * debug.c (do_nothing_debug_hooks): Update.
10802         (debug_true_tree, debug_nothing_rtx): New.
10803         * debug.h (struct rtx_def): New.
10804         (struct gcc_debug_hooks): New hooks ignore_block,
10805         outlining_inline_function and label.
10806         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
10807         dwarf2out_frame_finish): New.
10808         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
10809         Make static, update prototype.
10810         (dwarf2_debug_hooks): Update.
10811         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
10812         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
10813         * dwarfout.c (dwarf_debug_hooks): Update.
10814         * emit-rtl.c: Include debug.h.
10815         (remove_unnecessary_notes): Use debug hook.
10816         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
10817         (final_scan_insn): Use debug hook.
10818         * integrate.c (output_inline_function): Use debug hook.
10819         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
10820         (sdb_debug_hooks): Update.
10821         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
10822         * toplev.c: Don't include xcoffout.h.
10823         (note_outlining_of_inline_function, debug_ignore_block): Remove.
10824         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
10825         Remove.
10826         * tree.h (dwarf2out_do_frame): Remove.
10827
10828 2001-07-19  Catherine Moore  <clm@cygnus.com>
10829
10830         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
10831
10832 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
10833
10834         * reload1.c (eliminate_regs_in_insn): When updating a set
10835         to the frame pointer to the hardware frame pointer, perform
10836         the update always not just when REPLACE is set.
10837
10838         * reload1.c (choose_reload_regs): Don't inherit a reload
10839         that crosses multiple registers if registers past the first
10840         don't fit in the desired class.
10841
10842         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
10843         when negating constants.
10844
10845 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
10846
10847         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
10848         * doc/tree.texi: Ditto.
10849
10850 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
10851             Jakub Jelinek  <jakub@redhat.com>
10852
10853         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
10854         (extract_cie_info): Handle "eh" augmentation properly,
10855         remember eh_ptr.
10856         (struct frame_state, __frame_state_for): New.
10857
10858 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10859
10860         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
10861         HANDLE_SYSV_PRAGMA): Define.
10862         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
10863         previous args.
10864         (copy_object): Caller changed.
10865
10866 2001-07-19  Andreas Schwab  <schwab@suse.de>
10867
10868         * configure.in (assembler dwarf2 debug_line support): Define nop
10869         insn for m68k.
10870         * configure: Regenerated.
10871
10872 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10873
10874         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
10875         dwarfout.h.
10876         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
10877         to conditionally compiled block.
10878         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10879         * dbxout.h (dbxout_function): Remove.
10880         * debug.c (do_nothing_debug_hooks): Update.
10881         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
10882         global_decl, deferred_inline_function.
10883         * dwarf2out.c (dwarf2_debug_hooks): Update.
10884         (dwarf2out_global_decl): New.
10885         * dwarfout.c: Don't include dwarfout.h.
10886         (dwarfout_global_decl, dwarfout_function_decl,
10887         dwarfout_deferred_inline_function): New.
10888         (dwarf_debug_hooks): Update.
10889         * dwarfout.h: Remove.
10890         * final.c: Don't include dwarfout.h.
10891         * sdbout.c (sdbout_global_decl): New.
10892         (sdbout_debug_hooks): Update.
10893         * toplev.c: Don't include dwarfout.h.
10894         (check_global_declarations, rest_of_compilation): Use new debug hooks.
10895         (note_deferral_of_defined_inline_function): Remove.
10896         * toplev.h (note_deferral_of_defined_inline_function): Remove.
10897         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
10898         * ch/lex.c: Don't include dwarfout.h.
10899         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
10900         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
10901         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
10902         * cp/optimize.c: Include debug.h.
10903         (maybe_clone_body): Use debug hook.
10904         * cp/semantics.c: Include debug.h.
10905         (expand_body): Use debug hook.
10906         * po/POTFILES.in: Remove dwarfout.h.
10907
10908 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10909
10910         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
10911         * c-parse.in (yyerror, _yylex): Similarly.
10912         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
10913         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
10914         Update comments.
10915         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
10916         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
10917
10918 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
10919
10920         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
10921         in-class declaration at -g1.  Fixes c++/2814.
10922
10923 2001-07-18  Richard Henderson  <rth@redhat.com>
10924
10925         * doc/md.texi (reload_in/out): Document restrictions in predicates
10926         and constraints for these patterns.  Document empty string matching
10927         ALL_REGS.
10928
10929 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10930
10931         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
10932
10933 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
10934
10935         * cse.c: Undo my previous patch.
10936
10937 2001-07-18  Tom Tromey  <tromey@redhat.com>
10938
10939         For PR java/2812:
10940         * configure: Rebuilt.
10941         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
10942         instead.
10943         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
10944
10945 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
10946                                 Jan Hubicka  <jh@suse.cz>
10947
10948         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
10949         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
10950         * jump.c (mark_jump_label): Do not forward branches.
10951
10952 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
10953
10954         * cse.c (delete_trivially_dead_insns): Delete the libcall block
10955         when return value is unused.
10956
10957 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
10958
10959         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
10960
10961 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
10962
10963         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
10964         on error.  We can't blindly return the result of
10965         pthread_mutex_trylock because it returns a positive number on
10966         error, while we must return -1 on error.
10967         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
10968         fixes.
10969         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
10970
10971 2001-07-18  Andreas Jaeger  <aj@suse.de>
10972
10973         * integrate.c (output_inline_function): Correct type of debug_hooks.
10974
10975 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
10976
10977         * combine.c (combine_simplify_rtx): DIV can be treated
10978         associatively for floats if unsafe math optimisations are enabled.
10979
10980 2001-07-17  Richard Henderson  <rth@redhat.com>
10981
10982         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
10983
10984 2001-07-17  Richard Henderson  <rth@redhat.com>
10985
10986         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
10987         don't force the function address into a register.
10988         (expand_call, emit_library_call_value_1): Update callers.
10989         * builtins.c (expand_builtin_apply): Likewise.
10990         * expr.h (prepare_call_address): Update decl.
10991
10992 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
10993
10994         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
10995         config directory.
10996         * config/i386/chorus.h: Move up.
10997         * config/sparc/chorus.h: Likewise.
10998         * config/rs6000/chorus.h: Likewise.
10999         * config/chorus.h: Moved here.
11000
11001 2001-07-17  Andreas Schwab  <schwab@suse.de>
11002
11003         * configure.in  (assembler eh_frame optimization): Handle big
11004         endian.
11005         * configure: Regenerated.
11006
11007 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
11008
11009         * expr.c (epxand_expr): Convert divisions into multiplications by
11010         reciprocals if -ffast-math.
11011
11012 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
11013
11014         * dbxout.c (dbxout_really_begin_function): Rename to
11015         dbxout_begin_function.
11016         (dbx_debug_hooks, xcoff_debug_hooks): Update.
11017         (dbxout_begin_function): Remove.
11018         (dbxout_function): Update.
11019         (dbxout_source_line): Update prototype.
11020         * dbxout.h (dbxout_begin_function): Remove.
11021         * debug.c (do_nothing_debug_hooks): Update.
11022         (debug_nothing_tree): Update.
11023         (debug_nothing_charstar_rtx): Remove.
11024         * debug.h (union tree_node): Declare.
11025         (struct rtx_def): Remove.
11026         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
11027         begin_function.  Change source_line prototype.
11028         (debug_nothing_tree): New.
11029         (debug_nothing_charstar_rtx): Delete.
11030         (dwarf2out_begin_prologue): Moved from ...
11031         * tree.h: ... here.
11032         * dwarf2out.c (dwarf2_debug_hooks): Update.
11033         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
11034         debug info, call dwarf2out_source_line.
11035         (dwarf2out_souce_line): Update prototype.
11036         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
11037         Change prototype, make static.
11038         (dwarfout_source_line): Update prototype.
11039         (dwarf_debug_hooks): Update.
11040         * dwarfout.h (dwarfout_begin_function): Remove.
11041         * final.c (final_start_function, final_scan_insn): Use appropriate
11042         debug hooks, update to use notice_source_line.
11043         (output_source_line): Rename notice_source_line.  Don't call the
11044         source_line debug hook.
11045         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
11046         make static, update prototype.
11047         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
11048         prototype.
11049         (sdbout_end_prologue): New.
11050         (sdbout_source_line): Update prototype.
11051         (sdbout_debug_hooks): Update.
11052         (sdbout_symbol): Remove unused var.
11053         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
11054         Delete.
11055         * varasm.c: Include debug.h.
11056         (assemble_start_function): Use begin_function debug_hook.
11057         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
11058         update with prototype.
11059         (xcoffout_source_line): Update prototype.
11060         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
11061         update prototype.
11062         (xcoffout_source_line): Update prototype.
11063
11064 2001-07-17  Richard Henderson  <rth@redhat.com>
11065
11066         * c-typeck.c (build_binary_op): Do not shorten unsigned
11067         right shift after sign extension.
11068
11069 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
11070
11071         * combine.c (combine_simplify_rtx): Attempt to simplify
11072         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
11073
11074         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
11075         (simplify_binary_operation, simplify_unary_operation,
11076          simplify_relational_operation): Use it.
11077
11078         * combine.c (combine_simplify_rtx): Don't do associative law
11079         on divisions; allow associative law on floats.
11080
11081 2001-07-17  H.J. Lu <hjl@gnu.org>
11082             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11083
11084         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
11085         ASM_OUTPUT_WEAK_ALIAS are defined.
11086         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
11087         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
11088         Moved ...
11089         * config/mips/iris5.h: ... here.
11090         (HANDLE_SYSV_PRAGMA): Defined as 1.
11091         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
11092         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
11093         symbol.
11094
11095 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
11096
11097         * c-parse.in (all_prefix_attributes): New variable.
11098         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
11099         (maybe_resetattrs): New production.
11100         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
11101         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
11102         notype_initdcl, nested_function, notype_nested_function,
11103         component_decl, components, components_notype,
11104         component_declarator, component_notype_declarator,
11105         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
11106         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
11107         after a comma being applied to more than one declarator.
11108         * doc/extend.texi (Attribute Syntax): Update.  Remove
11109         documentation of bugs that are no longer present.
11110
11111 2001-07-13  Eric Christopher  <echristo@redhat.com>
11112
11113         * config/mips/mips.h: Change TUNE_MIPS* options to use
11114         mips_tune.
11115         (EXTRA_SPECS): Add cc1_cpu_spec.
11116         * config/mips/mips.md (muldf3): Fix typo.
11117
11118 2001-07-16  Richard Henderson  <rth@redhat.com>
11119
11120         * config/m68k/m68k.c: Include expr.h and reload.h.
11121         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
11122         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
11123
11124 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
11125             Richard Henderson  <rth@redhat.com>
11126
11127         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
11128         (insn_live_p): Fix fall off end of function.
11129         (dead_libcall_p): Remove COUNTS argument; update callers.
11130         (delete_trivially_dead_insns): Remove unused variables.
11131
11132 2001-07-17  Andreas Jaeger  <aj@suse.de>
11133
11134         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
11135         x86-64 pic support.
11136
11137         * lcm.c (optimize_mode_switching): Avoid warning for unused
11138         variable if !NORMAL_MODE.
11139
11140         * flow.c (try_crossjump_to_edge): Remove unused variable.
11141
11142 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11143
11144         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
11145         atexit declaration in stdlib.h.
11146
11147 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
11148
11149         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
11150
11151 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
11152
11153         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
11154         * except.c (finish_eh_generation): Update call of cleanup_cfg;
11155         do rebuild_jump_labels instead of jump_optimize
11156         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
11157         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
11158         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
11159
11160         * flow.c: Include timevar.h
11161         (find_basic_block): Push/pop timevar;
11162         (cleanup_cfg): Likewise.
11163         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
11164         * Makefile: Add dependencies on timevar.h
11165
11166         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
11167         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
11168
11169         * rtl.h (delete_trivially_dead_insns): Add new parameter.
11170         * toplev.c (rest_of_compilation): Update calls.
11171         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
11172         (delete_trivially_dead_insns): ... here; accept new argument
11173         preserve_basic_blocks; preserve basic blocks if set.
11174
11175         * reg-stack.c (stack_regs_mentioned): Return 0 if
11176         stack_regs_mentioned_data is not initialized.
11177         (reg_to_stack): Make stack_regs_mentioned survive after the
11178         reg-stack is completted; do not call cleanup_cfg.
11179         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
11180         make cleanup_cfg after bb-reorder to output to debug file.
11181
11182 2001-07-16  Richard Henderson  <rth@redhat.com>
11183
11184         * regclass.c (init_reg_sets): Use only 32 bits per initializer
11185         from int_reg_class_contents.
11186
11187 2001-07-16  Richard Henderson  <rth@redhat.com>
11188
11189         * hard-reg-set.h (regs_invalidated_by_call): Declare.
11190         * regclass.c (regs_invalidated_by_call): Move from cse.c.
11191         (init_reg_sets_1): Move initialization from cse_main.
11192         * cse.c (regs_invalidated_by_call): Move to regclass.c.
11193         (cse_main): Move its initialization also.
11194         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
11195         * flow.c (propagate_one_insn): Likewise.
11196         * gcse.c (compute_hash_table): Likewise.
11197         (compute_kill_rd, compute_store_table): Likewise.
11198         * sched-deps.c (sched_analyze_1): Likewise.
11199
11200 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
11201
11202         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
11203         gen_rtx_SET.
11204
11205 2001-07-16  Steve Ellcey <sje@cup.hp.com>
11206
11207         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
11208         in if statement so we don't access undefined memory.
11209
11210 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
11211
11212         * gcse.c: Update comment at top.
11213         Update comment on mem handling.
11214         mem_last_set, mem_first_set, mem_set_in_block: gone.
11215         Declaration of reg_set_info: gone.
11216         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
11217         pointless with load_killed_in_block_p (they are *more*
11218         conservative then it, not less, and less accurate).
11219         (oprs_not_set_p): Ditto.
11220         (alloc_gcse_mem): Don't allocate mem_set_in_block
11221         (free_gcse_mem): Don't free it, either.
11222         (record_last_mem_set_info): Update comment in front, remove
11223         mem_*set_* stuff. Note the reason we don't handle stores directly
11224         here.
11225         (compute_hash_table): Update comments to reflect reality. Remove
11226         mem_*set_* references.
11227         (reset_opr_set_tables): Remove mem_*set_* references.
11228         (mark_call): Ditto.
11229         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
11230         (mark_clobber): Ditto (on both parts, we double set here too).
11231         (expr_killed_p): Remove mem_set_in_block test.
11232         (compute_transp): Remove mem_set_in_block test.
11233
11234         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
11235         of edge, and removal of phi alternative to dump file.
11236         (ssa_ccp_substitute_constants): Add note about register now being
11237         constant, and which uses were replaced in what insns to dump file.
11238
11239 2001-07-16  Andreas Jaeger  <aj@suse.de>
11240
11241         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
11242         variables of type HOST_WIDEST_INT.
11243
11244         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
11245         (__bb_exit_func): Correct type of count_max to avoid overflow.
11246         (num_digits): Handle long long argument.
11247
11248         * combine.c (gen_lowpart_for_combine): Remove unused variable.
11249
11250 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11251
11252         * output.h (sdb_begin_function_line): Restore as an extern
11253         variable.
11254         * sdbout.c (sdb_begin_function_line): Make extern.
11255
11256 2001-07-15  Richard Henderson  <rth@redhat.com>
11257
11258         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
11259         * genrecog.c (maybe_both_true_mode): New.
11260         (maybe_both_true_2): Use it.
11261         (write_switch): Don't put Pmode in a switch.
11262         * rtl.c (mode arrays): Don't explicitly size them.
11263
11264 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
11265
11266         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
11267         handling; move unconditional splitting before mode switching.
11268
11269         * i386.md (type): Add fistp type.
11270         (i387, length_attr, scheduling definitions): Handle this type.
11271         (fix_trunc?f?i2): Revamp to use mode switching.
11272         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
11273         * i386.h (fp_cw_mode): New enum
11274         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
11275         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
11276
11277 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11278
11279         * Makefile.in (integrate.o): Add debug.h.
11280         * integrate.c (debug.h): Add.
11281         (output_inline_function): Save, reset, and restore debug_hooks.
11282
11283 2001-07-15  Richard Henderson  <rth@redhat.com>
11284
11285         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
11286         instead of COMPARE for the EQUIV expression.
11287
11288 2001-07-15  Richard Henderson  <rth@redhat.com>
11289
11290         * flow.c (redirect_edge_and_branch_force): Initialize
11291         global_live_at_start and global_live_at_end.
11292         (allocate_bb_life_data): Export.
11293         * basic-block.h (allocate_bb_life_data): Declare.
11294         * toplev.c (rest_of_compilation): Call it.
11295
11296 2001-07-15  Richard Henderson  <rth@redhat.com>
11297
11298         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
11299         (alpha_tablejump_best_label): New.
11300         * config/alpha/alpha-protos.h: Declare them.
11301         * config/alpha/alpha.md: Use braced strings for code blocks.
11302         (tablejump_osf): Break out add with r29.
11303         (tablejump_osf_internal): Remove.
11304         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
11305         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
11306
11307 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
11308
11309         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
11310         of the movable.
11311
11312         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
11313
11314         * i386-protos.h (ix86_split_fp_branch): Update prototype.
11315         (ix86_fp_jump_nontrivial_p): New.
11316         * i386.md (fp_jcc_?): Update call of split_fp_branch;
11317         use ix86_fp_jump_nontrivial_p.
11318         * i386.c (ix86_fp_jump_nontrivial_p): New.
11319         (ix86_split_fp_branch): Accept code instead of rtx.
11320         (ix86_expand_compare): Expand comparison early in case
11321         doing so is resonably cheap.
11322
11323 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
11324
11325         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
11326         not 'machine'.
11327         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
11328         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
11329
11330 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
11331
11332         * dbxout.c (dbxout_source_line): Make static, update prototype.
11333         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
11334         (dbxout_init, dbxout_finish, dbxout_source_line,
11335         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
11336         * dbxout.h (dbxout_source_line): Delete.
11337         * debug.c (debug_nothing_file, debug_nothing_file_int,
11338         debug_nothing_file_charstar_rtx): New.
11339         (do_nothing_debug_hooks): Update.
11340         (debug_nothing_void, debug_nothing_charstar_rtx,
11341         dwarf2out_end_epilogue): New.
11342         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
11343         * debug.h (struct rtx_def): Declare.
11344         (gcc_debug_hooks): New hooks source_line, end_epilogue
11345         and end_function.
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         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
11350         (dwarf2_debug_hooks): Update.
11351         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
11352         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
11353         * dwarf2out.h (dwarf2out_source_line): Remove.
11354         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
11355         Make static, update prototype.
11356         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
11357         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
11358         (dwarf_debug_hooks): Update.
11359         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
11360         dwarfout_end_function): Remove.
11361         * final.c (profile_function): Use debug hooks for ending functions
11362         and epilogues.
11363         (output_source_line, final_end_function): Update prototype,
11364         use debug hooks.
11365         (final_start_function, final_scan_insn): Update.
11366         * output.h (sdb_begin_function_line): Remove.
11367         (final_end_function): Update prototype.
11368         * sdbout.c (sdb_begin_function_line): Make static.
11369         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
11370         (sdbout_source_line): New.
11371         (sdbout_end_epilogue, sdbout_end_function): Make static, update
11372         prototypes.
11373         (sdb_debug_hooks): Update.
11374         (sdbout_init, sdbout_source_line,
11375         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
11376         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
11377         * toplev.c (compile_file, rest_of_compilation): Update.
11378         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
11379         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
11380         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
11381         Update for prototype changes.
11382         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
11383         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
11384
11385 2001-07-15  Richard Henderson  <rth@redhat.com>
11386
11387         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
11388         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
11389         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
11390         * config/alpha/alpha.c: Likewise.
11391         * config/alpha/alpha.md: Likewise.
11392         * config/alpha/alpha32.h: Likewise.
11393         * config/alpha/vms.h: Likewise.
11394         (OPEN_VMS): Remove.
11395
11396 2001-07-14  Richard Henderson  <rth@redhat.com>
11397
11398         * config/alpha/alpha.md: Use define_constants for unspec values.
11399         Substitute throughout.
11400
11401 2001-07-14  Tim Josling  <tej@melbpc.org.au>
11402
11403         * tree.def (EXPON_EXPR) remove. Never supported anyway.
11404
11405 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11406
11407         * pa.md: Remove unused constraints from define_split's.
11408
11409 2001-04-14  Richard Henderson  <rth@redhat.com>
11410
11411         * ifcvt.c (find_cond_trap): Test for exit block.
11412
11413 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
11414
11415         Re-install recently reverted patch.
11416         * emit-rtl.c (try_split): Update mark_jump_label call.
11417         * flow.c (find_sub_basic_blocks): Likewise.
11418         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
11419         jump_back_p): Kill.
11420         (mark_all_labels): Kill second parameter.
11421         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
11422         (rebuild_jump_labels, jump_optimize_minimal): Update call
11423         of jump_optimize_1.
11424         (jump_optimize_1): Kill crossjumping code.
11425         (mark_jump_label): Kill cross_jump parameter.
11426         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
11427         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
11428         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
11429          splitting.
11430         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
11431         DFI_bpro.
11432         (dump_file_info): Likewise.
11433         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
11434         reorganize passes to do reg-stack first, bb-reorder second.
11435         * invoke.texi (-d letters doc): Remove the jump2 pass.
11436
11437 2001-07-14  Richard Henderson  <rth@redhat.com>
11438
11439         * ifcvt.c (find_cond_trap): New.
11440         (find_if_header): Call it.
11441         (merge_if_block): Relax existing jump sanity check.
11442         * jump.c (jump_optimize_1): Remove conditional trap handling.
11443
11444 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
11445
11446         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
11447         millicode.
11448         (insn_refs_are_delayed): Correct comment.
11449         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
11450         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
11451         instead of r31.  Make associated insn !TARGET_64BIT, and
11452         provide an additional 64-bit insn that clobbers r2.
11453         (divsi3): Likewise.
11454         (udivsi3): Likewise.
11455         (modsi3): Likewise.
11456         (umodsi3): Likewise.
11457
11458 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
11459
11460         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
11461
11462         * flow.c (redirect_edge_and_branch_force, split_edge,
11463         try_crossjump_to_edge): Use set_block_for_new_insns.
11464         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
11465
11466 2001-07-13  H.J. Lu  (hjl@gnu.org)
11467
11468         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
11469         the correct patch.
11470
11471 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
11472
11473         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
11474
11475 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
11476
11477         * c-common.c (decl_attributes): Take a pointer to the node to
11478         which attributes are to be attached, and a flags argument.
11479         * c-common.h (enum attribute_flags): New.
11480         (decl_attributes): Update prototype.
11481         * c-decl.c (start_decl, push_parm_decl, finish_struct,
11482         finish_enum, start_function): Update calls to decl_attributes.
11483         * c-parse.in (component_declarator, component_notype_declarator,
11484         label): Update calls to decl_attributes.
11485
11486 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
11487
11488         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
11489         * config/avr/avr.c (legitimate_address_p): Return value changed
11490         from letter to register classes. For better debugging.
11491
11492 2001-07-13  Kazu Hirata  <kazu@hxi.com>
11493
11494         * jump.c (reversed_comparison_code_parts): Fix comment typos.
11495
11496 2001-07-13  H.J. Lu  (hjl@gnu.org)
11497
11498         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
11499
11500 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
11501
11502         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
11503         correctly for shared configurations.
11504         * config/t-libgcc-pic:  New.
11505         * config/{i386,m68k,sparc}/t-openbsd:  New.
11506         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
11507         Support -shared.  Support debugging libraries with -g.
11508         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
11509         frame information does not emit pointer diffs.
11510         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
11511         emit pointer diffs.
11512
11513 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
11514
11515         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
11516
11517 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
11518
11519         * combine.c (try_combine): Ensure const_int pow2 is positive.
11520
11521 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
11522
11523         * config.gcc: Add configuration for s/390.
11524         * config/s390/s390.c: New. Subroutines for code generation.
11525         * config/s390/s390.h: New. Definitions for s/390.
11526         * config/s390/s390-protos.h: New. Prototypes.
11527         * config/s390/linux.h: New. Definitions for linux for s/390.
11528         * config/s390/linux64.h: New. Definitions for linux for zSeries.
11529         * config/s390/t-linux: New. Makefile fragment.
11530         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
11531         * config/s390/fixdfdi.h: New. Fix L_fix*di.
11532
11533 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
11534
11535         * emit-rtl.c (try_split): Update mark_jump_label call.
11536         * flow.c (find_sub_basic_blocks): Likewise.
11537         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
11538         jump_back_p): Kill.
11539         (mark_all_labels): Kill second parameter.
11540         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
11541         (rebuild_jump_labels, jump_optimize_minimal): Update call
11542         of jump_optimize_1.
11543         (jump_optimize_1): Kill crossjumping code.
11544         (mark_jump_label): Kill cross_jump parameter.
11545         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
11546         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
11547         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
11548          splitting.
11549         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
11550         DFI_bpro.
11551         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
11552         reorganize passes to do reg-stack first, bb-reorder second.
11553         * invoke.texi (-d letters doc): Remove the jump2 pass.
11554
11555 2001-07-12  Steve Ellcey <sje@cup.hp.com>
11556
11557         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
11558
11559 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
11560
11561         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
11562         basic blocks.
11563         (verify_flow_info): Make diagnostics prettier.
11564
11565 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
11566
11567         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
11568
11569         * flow.c (outgoing_edges_match): Return early if condition reversal
11570         failed.
11571
11572 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
11573
11574         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
11575         (mips_move_2words): When splitting a move into two instructions,
11576         prefix the second address operand with '%D'.
11577
11578 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
11579
11580         * Makefile.in (final.o): Depend on debug.h.
11581         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
11582         (dbx_debug_hooks): Add new hooks.
11583         (xcoff_debug_hooks): New.
11584         * debug.c (debug_nothing_file_int_int): New.
11585         (do_nothing_debug_hooks): Update.
11586         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
11587         (debug_nothing_file_int_int): New.
11588         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
11589         static, update prototype.
11590         (dwarf2_debug_hooks): Update.
11591         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
11592         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
11593         static, update prototype.
11594         (dwarf_debug_hooks): Update.
11595         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
11596         * final.c: Include debug.h.
11597         (final_scan_insn): Use debug hooks when beginning and ending blocks.
11598         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
11599         static, update prototype.
11600         (sdb_debug_hooks): Update.
11601         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
11602         * toplev.c: Distinguish between xcoff and dbx.
11603
11604         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
11605         Call all debug hooks, not just dwarf ones.
11606
11607 2001-07-11  Timothy Wall  <twall@redhat.com>
11608
11609         * config.gcc: Add configuration for AIX5/IA64.
11610         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
11611         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
11612         support prefix/suffix code.
11613         * config/ia64/t-aix: New.  Makefile fragment.
11614         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
11615
11616 2001-07-11  Kazu Hirata  <kazu@hxi.com>
11617
11618         * recog.c (validate_change): Fix a comment typo.
11619
11620 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
11621
11622         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
11623         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
11624         hooks directly.
11625         * dbxout.c (dbx_debug_hooks): Add new hooks.
11626         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
11627         make static.
11628         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
11629         make static.
11630         * dbxout.h (dbxout_start_new_source_file,
11631         dbxout_resume_previous_source_file): Delete.
11632         * debug.c (do_nothing_debug_hooks): Add new hooks.
11633         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
11634         (debug_nothing_int_charstar, debug_nothing_int): New.
11635         * debug.h (gcc_debug_hooks): New hooks define, undef,
11636         start_source_file and end_source_file.
11637         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
11638         (debug_nothing_int_charstar, debug_nothing_int): New.
11639         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
11640         the conditionally compiled section.
11641         (dwarf2out_start_source_file, dwarf2out_end_source_file,
11642         dwarf2out_define, dwarf2out_undef): Make static.
11643         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
11644         dwarf2out_define, dwarf2out_undef): Remove.
11645         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
11646         (dwarfout_start_source_file, dwarfout_end_source_file,
11647         dwarfout_define, dwarfout_undef): Make static.
11648         (dwarfout_start_source_file_check,
11649         dwarfout_end_source_file_check): New.
11650         (dwarfout_define, dwarfout_finish): Update.
11651         * dwarfout.h (dwarfout_start_new_source_file,
11652         dwarfout_resume_previous_source_file, dwarfout_define,
11653         dwarfout_undef): Remove.
11654         * sdbout.c (sdb_debug_hooks): Add new hooks.
11655         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
11656         make static.
11657         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
11658         make static, take an arg.
11659         * sdbout.h (sdbout_start_new_source_file,
11660         sdbout_resume_previous_source_file): Delete.
11661         * toplev.c (debug_start_source_file, debug_end_source_file,
11662         debug_define, debug_undef): Delete.
11663         * toplev.h (debug_start_source_file, debug_end_source_file,
11664         debug_define, debug_undef): Delete.
11665
11666         * java/jcf-parse.c: Include debug.h.
11667         (parse_class_file): Update to use debug hooks directly.
11668         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
11669
11670 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11671
11672         * alias.c (set_mem_alias_set): New function.
11673         * rtl.h (set_mem_alias_set): Declare it.
11674         * builtins.c (expand_builtin_return_addr): Call it instead of
11675         using MEM_ALIAS_SET accessor.
11676         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
11677         (get_memory_rtx, expand_builtin_va_arg): Likewise.
11678         (expand_builtin_va_copy):Likewise.
11679         * caller-save.c (setup_save_areas): Likewise.
11680         * calls.c (compute_argument_addresses): Likewise.
11681         * explow.c (set_mem_attributes): Likewise.
11682         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
11683         (expand_assignment, store_constructor_field, store_field): Likewise.
11684         (expand_expr_unaligned): Likewise.
11685         * function.c (assign_stack_temp_for_type): Likewise.
11686         (put_reg_into_stack, gen_mem_addressof): Likewise.
11687         * ifcvt.c (noce_try_cmove_arith): Likewise.
11688         * reload1.c (reload, alter_reg): Likewise.
11689         * config/alpha/alpha.c (get_aligned_mem): Likewise.
11690         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
11691         (alpha_expand_unaligned_store): Likewise
11692         (alpha_expand_unaligned_load_words): Likewise.
11693         (alpha_expand_unaligned_store_words): Likewise.
11694         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
11695         (alpha_expand_epilogue): Likewise.
11696         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
11697         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
11698         * config/i386/i386.c (legitimize_pic_address): Likewise.
11699         * config/i960/i960.c (setup_incoming_varargs): Likewise.
11700         * config/ia64/ia64.c (spill_restore_mem): Likewise.
11701         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
11702         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
11703         * config/mips/mips.c (mips_va_arg): Likewise.
11704         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
11705         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
11706         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
11707         (setup_incoming_varargs, rs6000_va_arg): Likewise.
11708         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
11709         (rs6000_emit_epilogue): Likewise.
11710         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
11711         * config/sparc/sparc.c (sparc_va_arg): Likewise.
11712         * config/v850/v850.c (v850_va_arg): Likewise.
11713
11714 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
11715
11716         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
11717         when fallthru edge is present.
11718         (mege_blocks): Handle case where creation of jump insn
11719         is required.
11720
11721         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
11722         CLEANUP_POST_REGSTACK): New constants.
11723         * except.c (finish_eh_generation): Update call of cleanup_cfg,
11724         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
11725         * output.h (cleanup_cfg): Update prototype.
11726         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
11727         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
11728         cleanup_cfg call; kill missleading comment.
11729         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
11730         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
11731         parameter; control optimizations performed using it.
11732         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
11733         try_crossjump_bb): New functions.
11734
11735 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11736
11737         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
11738         extern.
11739         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
11740         pa_output_function_prologue.
11741         * pa-protos.h (pa_output_function_prologue): New prototype.
11742
11743 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11744
11745         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
11746         and low to get correct sign extension in low+high test.
11747
11748 2001-07-11  Janis Johnson <janis@us.ibm.com>
11749
11750         * gcov.c (arcdata): Use gcov_type to fix branch percentage
11751         for large hit count.
11752
11753         * profile.c (branch_prob): Fix .bbg info for computed gotos
11754         and C++ EH code.
11755
11756 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
11757
11758         * stmt.c (parse_output_constraint): New function, split out
11759         from ...
11760         (expand_asm_operands): ... here.  Use parse_output_constraint.
11761         * tree.h (parse_output_constraint): Declare it.
11762
11763 2001-07-11  Richard Henderson  <rth@redhat.com>
11764
11765         * bitmap.c: Comment some functions; fiddle whitespace.
11766         (bitmap_free): Don't export.
11767         (bitmap_element_allocate): Use memset.
11768         * bitmap.h (bitmap_free): Don't declare.
11769
11770 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
11771
11772         * gcse.c, lcm.c, sched-deps.c:
11773         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
11774
11775         * flow.c (flow_loops_find): Free dom if we found no loops, since
11776         we aren't going to save it.
11777
11778         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
11779         done.
11780
11781 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
11782
11783         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
11784
11785 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11786
11787         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
11788         #ifndef DWARF2_DEBUGGING_INFO.
11789
11790 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
11791
11792         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
11793
11794 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
11795
11796         * config/mips/mips.c (gen_int_relational): Tell the caller not to
11797         reverse a branch if a NE comparison is implemented with GTU.
11798
11799 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
11800             H.J. Lu  <hjl@gnu.org>
11801
11802         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
11803         constant addresses.
11804         (call_internal2): Likewise.
11805         (call_value_internal1): Likewise.
11806         (call_value_internal2): Likewise.
11807         (call_value_multiple_internal1): Likewise.
11808         (call_value_multiple_internal2): Likewise.
11809
11810 2001-07-10  Kazu Hirata  <kazu@hxi.com>
11811
11812         * calls.c (emit_library_call_value_1): Fix a comment typo.
11813         * dwarf2out.c (mem_loc_descriptor): Likewise.
11814         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
11815
11816 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
11817
11818         * simplify-rtx.c (simplify_subreg): Fix typo in comment
11819
11820 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11821
11822         * recog.c (offsettable_address_p): Handle LO_SUM case.
11823         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
11824         instead of plus_constant.
11825
11826 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11827
11828         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
11829         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
11830
11831 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11832
11833         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
11834         adjust_address_nv instead of plus_constant.
11835
11836 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
11837
11838         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
11839         dwarf2out.o): Depend on debug.h, wrap long lines.
11840         * dbxout.c: Include debug.h.
11841         (dbx_debug_hooks): New.
11842         (dbxout_init): Make static, take just 2 args.
11843         (dbxout_finish): Make static.
11844         * dbxout.h (dbxout_init, dbxout_finish): Delete.
11845         * debug.c: New file.
11846         * debug.h: New file.
11847         * dwarf2out.c: Include debug.h.
11848         (dwarf2_debug_hooks): New.
11849         (dwarf2out_init): Make static.
11850         (dwarf2out_finish): Make static, take 2 args.
11851         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
11852         * dwarfout.c: Include debug.h.
11853         (dwarf_debug_hooks): New.
11854         (dwarfout_init): Make static.
11855         (dwarfout_finish): Make static, take 2 args.
11856         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
11857         * sdbout.c: Include debug.h.
11858         (sdb_debug_hooks): New.
11859         (sdbout_init): Make static, take 2 args.
11860         * sdbout.h (sdbout_init): Delete.
11861         * toplev.c: Include debug.h.
11862         (debug_hooks): New.
11863         (compile_file): Set deubg_hooks based on command line options.
11864         Use the hooks unconditionally rather than conditional compilation.
11865
11866 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
11867
11868         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
11869         first_insn_after_basic_block_note instead.
11870
11871         * df.c (df_bb_refs_unlink): #if 0 out for now.
11872
11873 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
11874
11875         * ssa.h: Add prototype for ssa_const_prop
11876         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
11877         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
11878         (ssa_fast_dce): Remove unused variable
11879
11880 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
11881
11882         * diagnostic.c (finish_diagnostic): Rename to
11883         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
11884         calls thourghout.
11885
11886 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
11887
11888         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
11889         .loc support.
11890
11891         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
11892         (dump_file): Only pad the demangled name with spaces if the
11893         mangled name was padded with spaces.
11894
11895 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
11896
11897         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
11898         edge detection.
11899
11900 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11901
11902         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
11903         extraction if no direct load if either EXPAND_CONST_ADDRESS or
11904         EXPAND_INITIALIZER.
11905
11906         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
11907         whether can put offset inside LO_SUM to check mode alignment, not size.
11908
11909 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
11910
11911         * doc/tm.texi (Misc): Fix thinko.
11912
11913 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
11914
11915         * regmove.c (replace_in_call_usage): Fix warnings.
11916         * sched-deps.c (add_dependence): Fix warnings.
11917         * simplify-rtx.c (simplify_subreg): Likewise.
11918         Return NULL_RTX instead of NULL.
11919
11920         * reg-stack.c (emit_swap_insn): Eliminate warnings.
11921         (subst_asm_stack_regs): Likewise.
11922
11923         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
11924         warnings.
11925
11926         * dwarf2out.c (output_call_frame_info): Declare i as int.
11927         (build_abbrev_table): Declare n_alloc as int.
11928         (dwarf2out_finish): Initialize die.
11929         * except.c: Declare sjlj_funcdef_number as unsigned.
11930         (connect_post_landing_pads): Declare j as unsigned.
11931         (convert_to_eh_region_ranges): Initialize call_site.
11932         (output_function_exception_table): Initialize tt_format_size.
11933         * expr.c (move_by_pieces_1): Initialize to1.
11934         (store_constructor): Initialize minelt and maxelt.
11935         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
11936         * function.c (instantiate_decls): Avoid signed/unsigned warning.
11937
11938         * c-decl.c (combine_parm_decls): Unused, remove.
11939         * c-tree.h: Remove prototype for combine_parm_decls.
11940
11941         * reload.c (push_reload): Fix warning.
11942         (regno_clobbered_p): Likewise.
11943         * reload1.c (replace_pseudos_in_call_usage): Likewise.
11944         (reload_combine): Likewise.
11945
11946         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
11947         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
11948         warnings.
11949         * bitmap.c (bitmap_operation): Change user.
11950         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
11951
11952 2001-07-10  Eric Christopher  <echristo@redhat.com>
11953
11954         * config/mips/mips.c (override_options): Fix typo.
11955
11956 2001-07-09  Stan Shebs  <shebs@apple.com>
11957
11958         * target.h (struct gcc_target): New fields init_builtins and
11959         expand_builtin.
11960         * target-def.h (TARGET_INIT_BUILTINS): New macro.
11961         (TARGET_EXPAND_BUILTIN): New macro.
11962         (TARGET_INITIALIZER): Add them.
11963         * builtins.c: Include target.h.
11964         (expand_builtin): Use targetm.expand_builtin.
11965         (default_init_builtins): New function.
11966         (default_expand_builtin): New function.
11967         * expr.h (default_init_builtins): Declare.
11968         (default_expand_builtin): Declare.
11969         * c-common.c (c_common_nodes_and_builtins): Use
11970         targetm.init_builtins.
11971         * defaults.h (MD_INIT_BUILTINS): Remove.
11972         * Makefile.in (builtins.o): Depend on target.h.
11973
11974         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
11975         (TARGET_EXPAND_BUILTIN): Define.
11976         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
11977         (MD_EXPAND_BUILTIN): Remove.
11978
11979         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
11980         (TARGET_EXPAND_BUILTIN): Define.
11981         (c4x_init_builtins): Make endlink arg a local.
11982         (c4x_print_operand): Fix typos in adjust_address usages.
11983         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
11984         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
11985         (MD_EXPAND_BUILTIN): Remove.
11986
11987         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
11988         (TARGET_EXPAND_BUILTIN): Define.
11989         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
11990         (ix86_init_builtins): Call new function only if TARGET_MMX.
11991         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
11992         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
11993         (MD_EXPAND_BUILTIN): Remove.
11994
11995         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
11996         (TARGET_EXPAND_BUILTIN): Define.
11997         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
11998         (MD_EXPAND_BUILTIN): Remove.
11999
12000         * doc/tm.texi: Document these changes.
12001
12002 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
12003
12004         * basic-block.h (tree_node): Forward declare if needed.
12005         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
12006         (BLOCK_HEAD_TREE): Define.
12007         (BLOCK_END_TREE): Define.
12008         (struct loops): Rename field 'tree' to 'tree_root'.
12009         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
12010         'end_tree'.
12011         (flow_loops_tree_build): Rename reference to field 'tree' to
12012         'tree_root'.
12013         (flow_loops_level_compute): Ditto.
12014         * predict.c (estimate_bb_frequencies): Ditto.
12015         * tree.h (struct tree_common): Add field 'aux'.
12016
12017 2001-07-09  Stan Shebs  <shebs@apple.com>
12018
12019         * config/darwin.c (darwin_encode_section_info): Don't mark any
12020         DECL_EXTERNAL node as defined.
12021
12022 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12023
12024         * pa.c (pa_init_machine_status, pa_mark_machine_status,
12025         pa_free_machine_status, hppa_init_pic_save): Delete.
12026         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
12027         (hppa_profile_hook): Use hppa_pic_save_rtx.
12028         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
12029         hppa_init_pic_save): Delete.
12030         (hppa_pic_save_rtx): Declare.
12031         * pa.md (call, call_value, sibcall, sibcall_value,
12032         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
12033
12034 2001-07-09  Kazu Hirata  <kazu@hxi.com>
12035
12036         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
12037         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
12038
12039 2001-07-09  Andreas Jaeger  <aj@suse.de>
12040
12041         * output.h: Add declaration of final_forward_branch_p.
12042
12043         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
12044
12045         * varray.c: Include errors.h for internal_error and trim_filename
12046         declarations.
12047
12048         * Makefile.in (varray.o): Add errors.h.
12049
12050 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
12051
12052         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
12053         * optabs.c (have_add2_insn): Check whether the add insn chosen
12054         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
12055         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
12056
12057 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
12058
12059         * Makefile.in (OBJS): Add ssa-ccp.o
12060         (ssa-ccp.o): Add dependencies.
12061         * toplev.c (DFI_ssa_ccp): New dump file enum.
12062         (dump_file): Add entry for dumping after SSA CCP.
12063         (flag_ssa_ccp): New flag variable.
12064         (f_options): Add -fssa-ccp.
12065         (rest_of_compilation): Run SSA CCP if requested.
12066         * timevar.def (TV_SSA_CCP): New timevar.
12067         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
12068         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
12069         Fix minor typo in SSA DCE documentation.
12070         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
12071         Add documentation for new dump option.  Renumber dump files
12072         appropriately.
12073
12074 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
12075
12076         * emit-rtl.c (gen_highpart_mode): New.
12077         * rtl.h (gen_highpart_mode): Declare.
12078         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
12079         operand can be VOIDmode constant.
12080
12081 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
12082
12083         * flow.c (redirect_edge_and_branch_force): New.
12084         (can_fallthru): Ensure that basic blocks are succeeding.
12085         (try_optimize_cfg): Do not delete basic block if it is the last one.
12086
12087         * flow.c (try_redirect_by_replacing_jump): Do not remove
12088         jumps with side effects, unlink chain on fallthru edge;
12089         set block for new jump instruction; avoid basic block to
12090         over by line number note.
12091
12092         * flow.c (try_simplify_condjump): Verify that the condjump
12093         is not always falling through.
12094
12095         Re-install patch:
12096         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
12097
12098         * flow.c (forwarder_block_p): Fix for fallthru blocks.
12099         (try_redirect_by_replacing_jump): Update properly the count
12100         and frequency information.
12101
12102 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12103
12104         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
12105         address that is a LO_SUM specially.
12106         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
12107
12108         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
12109
12110         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
12111         (operand_subword): Use them.
12112         (change_address_1): Renamed from change_address; new arg VALIDATE.
12113         * expr.h: Reflect above changes; change_address now macro.
12114         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
12115         making MEM.
12116         * cselib.c (add_mem_for_addr): Likewise.
12117         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
12118         * regmove.c (try_apply_stack_adjustment): Likewise.
12119         * reload.c (push_reload, make_memloc): Likewise.
12120         * reload1.c (eliminate_regs): Likewise.
12121         * simplify-rtx.c (simplify_replace_rtx): Likewise.
12122         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
12123         adjust_addess.
12124         * combine.c (make_extraction, simplify_shift_const): Likewise.
12125         (gen_lowpart_for_combine): Likewise.
12126         * cse.c (gen_lowpart_if_possible): Likewise.
12127         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
12128         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
12129         * optabs.c (gen_move_insn): Likewise.
12130         * reload1.c (alter_reg): Likewise.
12131         * simplify-rtx.c (simplify_subreg): Likewise.
12132         * stmt.c (expand_anon_union_decl): Likewise.
12133         * recog.c (validate_replace_rtx_1): Likewise.
12134         (expr.h): Include.
12135         * Makefile.in (recog.o): Add $(EXPR_H).
12136         * explow.c (stabilize): Call replace_equiv_address.
12137         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
12138         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
12139
12140 2001-07-03  Andrew Haley  <aph@redhat.com>
12141
12142         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
12143         the mode of the memory location.
12144
12145 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
12146
12147         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
12148
12149 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
12150
12151         * final.c (output_addr_const): Use target opening and
12152         closing parentheses.
12153         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
12154         defaults, add to TARGET_ASM_OUT.
12155         * target.h (struct gcc_target): Add open_paren and close_paren.
12156         * doc/md.texi: Update.
12157         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
12158         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
12159         TARGET_ASM_CLOSE_PAREN.
12160         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
12161         Override.
12162         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
12163         Override.
12164         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
12165         * config/a29k/a29k.h: Similarly.
12166         * config/alpha/alpha.h: Similarly.
12167         * config/arc/arc.h: Similarly.
12168         * config/arm/aof.h: Similarly.
12169         * config/arm/aout.h: Similarly.
12170         * config/avr/avr.h: Similarly.
12171         * config/c4x/c4x.h: Similarly.
12172         * config/clipper/clipper.h: Similarly.
12173         * config/convex/convex.h: Similarly.
12174         * config/d30v/d30v.h: Similarly.
12175         * config/dsp16xx/dsp16xx.h: Similarly.
12176         * config/elxsi/elxsi.h: Similarly.
12177         * config/fr30/fr30.h: Similarly.
12178         * config/h8300/h8300.h: Similarly.
12179         * config/i370/i370.h: Similarly.
12180         * config/i386/i386.h: Similarly.
12181         * config/i860/i860.h: Similarly.
12182         * config/i960/i960.h: Similarly.
12183         * config/ia64/ia64.h: Similarly.
12184         * config/m32r/m32r.h: Similarly.
12185         * config/m68hc11/m68hc11.h: Similarly.
12186         * config/m68k/m68k.h: Similarly.
12187         * config/m88k/m88k.h: Similarly.
12188         * config/mcore/mcore.h: Similarly.
12189         * config/mips/mips.h: Similarly.
12190         * config/mn10200/mn10200.h: Similarly.
12191         * config/mn10300/mn10300.h: Similarly.
12192         * config/ns32k/ns32k.h: Similarly.
12193         * config/pa/pa.h: Similarly.
12194         * config/pdp11/pdp11.h: Similarly.
12195         * config/pj/pj.h: Similarly.
12196         * config/romp/romp.h: Similarly.
12197         * config/rs6000/rs6000.h: Similarly.
12198         * config/sh/sh.h: Similarly.
12199         * config/sparc/sparc.h: Similarly.
12200         * config/v850/v850.h: Similarly.
12201         * config/vax/vax.h: Similarly.
12202         * config/we32k/we32k.h: Similarly.
12203
12204 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
12205
12206         * doc/c-tree.texi: Document representation of attributes.
12207
12208 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12209
12210         * doc/tm.texi: Update some places for the rename of target to
12211         targetm.  Fix typo.
12212
12213 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12214
12215         * target.h (struct gcc_target): Add insert_attributes.
12216         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
12217         (TARGET_INITIALIZER): Update.
12218         * tree.c, tree.h (default_insert_attributes): New function.
12219         Update comments on other default functions to refer to targetm,
12220         not target.
12221         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
12222         TARGET_INSERT_ATTRIBUTES.
12223         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
12224         * c-common.c (decl_attributes): Use targetm.insert_attributes.
12225         Don't use PRAGMA_INSERT_ATTRIBUTES.
12226         * Makefile.in (c-common.o): Depend on $(TARGET_H).
12227         * c-decl.c (start_decl, start_function): Don't call
12228         SET_DEFAULT_DECL_ATTRIBUTES.
12229         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
12230         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
12231         declare.
12232         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
12233         (c4x_check_attribute): Avoid modifying attribute list itself.
12234         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
12235         Make static.
12236         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
12237         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
12238         declare.
12239         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
12240         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
12241         Make static.
12242         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
12243         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
12244         declare.
12245         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
12246         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
12247         Adjust parameters.  Make static.
12248
12249 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12250
12251         * c-common.c (decl_attributes): Only take a single attributes
12252         parameter.
12253         * c-common.h (decl_attributes): Update prototype.
12254         * c-decl.c (start_decl, start_function): Only take a single
12255         attributes parameter.  Update calls to decl_attributes.
12256         (finish_struct, finish_enum): Update calls to decl_attributes.
12257         (push_parm_decl): Expect unified list of attributes.  Update call
12258         to decl_attributes.
12259         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
12260         notype_nested_function, component_declarator,
12261         component_notype_declarator, label): Update calls to
12262         decl_attributes.
12263         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
12264         lists that are passed to push_parm_decl.
12265         * c-tree.h (start_function, start_decl): Update prototypes.
12266         * config/sh/sh-protos.h, config/sh/sh.c
12267         (sh_pragma_insert_attributes): Only take a single attributes
12268         parameter.
12269         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
12270         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
12271         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
12272         build_module_descriptor, generate_static_references,
12273         generate_strings, build_selector_translation_table,
12274         generate_descriptor_table, generate_protocols,
12275         generate_ivars_list, generate_dispatch_table,
12276         generate_protocol_list, generate_category,
12277         generate_shared_structures, really_start_method, add_objc_decls,
12278         generate_classref_translation_entry): Update calls to start_decl
12279         and start_function.
12280         (build_tmp_function_decl, start_method_def): Unify attribute lists
12281         that are passed to push_parm_decl.
12282
12283 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
12284
12285         * final.c (no_asm_to_stream): New.
12286         (final_scan_insn): Use target structures for prologue ends
12287         and epilogue starts.
12288         * output.h (no_asm_to_stream): New.
12289         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
12290         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
12291         (TARGET_ASM_OUT): Update.
12292         * target.h (struct gcc_target): New members function_end_prologue
12293         and function_begin_epilogue.
12294         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
12295         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
12296         * config/alpha/alpha.c (output_end_prologue): Rename to
12297         alpha_output_function_end_prologue.  Use in target struct
12298         and make static.
12299         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
12300         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
12301         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
12302         ia64_output_function_end_prologue.  Use in target struct
12303         and make static.
12304         (ia64_function_prologue, ia64_funciton_epilogue): Rename
12305         mistyped prototypes.
12306         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
12307         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
12308         Delete.
12309         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
12310         an use in target struct, make static.
12311         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
12312         Delete.
12313
12314 2001-07-08  Richard Henderson  <rth@redhat.com>
12315
12316         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
12317
12318 2001-07-08  Richard Henderson  <rth@redhat.com>
12319
12320         * config/i386/i386.md: Remove constraints strings from define_split
12321         and define_peephole2 patterns.
12322         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
12323         (eh_return): Use them.
12324
12325 2001-07-08  Richard Henderson  <rth@redhat.com>
12326
12327         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
12328         Document MD_FALLBACK_FRAME_STATE_FOR.
12329
12330 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12331
12332         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
12333         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
12334         elimination.
12335         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
12336
12337 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
12338
12339         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
12340         of the label inside NAME as opposed to just the end of NAME.
12341
12342 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
12343
12344         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
12345         * config/alpha/alpha.c (alpha_init_machine_status,
12346         alpha_mark_machine_status, alpha_free_machine_status): Delete.
12347         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
12348         (vms_valid_decl_attribute_p): Make static, conditionally compile.
12349         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
12350
12351 2001-07-06  Stan Shebs  <shebs@apple.com>
12352
12353         * target.h (targetm): Rename global from "target", so as not to
12354         conflict with local variables.
12355         * c-decl.c: Ditto.
12356         * c-typeck.c: Ditto.
12357         * final.c: Ditto.
12358         * tree.c: Ditto.
12359         * cp/decl.c: Ditto.
12360         * cp/decl2.c: Ditto.
12361         * cp/typeck.c: Ditto.
12362         * 1750a/1750a.c: Ditto.
12363         * a29k/a29k.c: Ditto.
12364         * arc/arc.c: Ditto.
12365         * arm/arm.c: Ditto.
12366         * avr/avr.c: Ditto.
12367         * clipper/clipper.c: Ditto.
12368         * convex/convex.c: Ditto.
12369         * d30v/d30v.c: Ditto.
12370         * dsp16xx/dsp16xx.c: Ditto.
12371         * elxsi/elxsi.c: Ditto.
12372         * fr30/fr30.c: Ditto.
12373         * h8300/h8300.c: Ditto.
12374         * i370/i370.c: Ditto.
12375         * i386/i386.c: Ditto.
12376         * i860/i860.c: Ditto.
12377         * i960/i960.c: Ditto.
12378         * ia64/ia64.c: Ditto.
12379         * m32r/m32r.c: Ditto.
12380         * m68hc11/m68hc11.c: Ditto.
12381         * m68k/m68k.c: Ditto.
12382         * m88k/m88k.c: Ditto.
12383         * mips/mips.c: Ditto.
12384         * ns32k/ns32k.c: Ditto.
12385         * pa/pa.c: Ditto.
12386         * pdp11/pdp11.c: Ditto.
12387         * romp/romp.c: Ditto.
12388         * rs6000/rs6000.c: Ditto.
12389         * sh/sh.c: Ditto.
12390         * sparc/sparc.c: Ditto.
12391         * vax/vax.c: Ditto.
12392         * we32k/we32k.c: Ditto.
12393         * doc/tm.texi: Update the manual to match.
12394
12395 2001-07-06  Richard Henderson  <rth@redhat.com>
12396
12397         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
12398         DWARF2_UNWIND_INFO not just whether it is defined.
12399
12400 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
12401
12402         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
12403         call to simplify_binary_operation returns a new pattern.
12404
12405 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
12406
12407         * glimits.h (__SHRT_MAX__): New.
12408         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
12409         (SHRT_MAX): Define in terms of __SHRT_MAX__.
12410
12411 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
12412
12413         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
12414         avoid warnings.
12415
12416 2001-07-06  Richard Henderson  <rth@redhat.com>
12417
12418         * bitmap.c (bitmap_release_memory): Move adjacent to the
12419         allocation functions.
12420         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
12421         the implementation.  Binary search for the set bit.
12422         (bitmap_union_of_diff): Allocate the temporary on the stack
12423         instead of using xmalloc.
12424
12425 2001-07-06  Richard Henderson  <rth@redhat.com>
12426
12427         * genrecog.c (validate_pattern): Warn for constraints in
12428         define_{expand,split,peephole2}.  Remove strict_low_part
12429         before looking up match_dup.
12430
12431 2001-07-06  DJ Delorie  <dj@redhat.com>
12432
12433         * doc/gcc.texi (Makefile): Rename to be a more general purpose
12434         chapter about various build hints and history.  Add section
12435         talking about the various types of native and cross builds.
12436
12437 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
12438
12439         * Makefile.in (final.o): Depend on target.h.
12440         * final.c: Include target.h.
12441         (default_function_pro_epilogue): New.
12442         (final_start_function): Use target structure for function prologues.
12443         (final_end_function): Use target structure for function epilogues.
12444         * fold-const.c (real_hex_to_f): Constify s and p.
12445         * output.h (default_function_pro_epilogue): New.
12446         * real.h (real_hex_to_f): Update prototype.
12447         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
12448         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
12449         (TARGET_INITIALIZER): Update.
12450         * target.h (gcc_target): Add struct asm_out.
12451         * doc/tm.texi: Update.
12452
12453 config:
12454         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
12455         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
12456         in cpu/cpu.c, or rename old functions consistently.  Take
12457         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
12458         redundant macros and prototypes.  Make new functions static.
12459
12460         * 1750a/1750a.c: Similarly.
12461         * 1750a/1750a.h: Similarly.
12462         * a29k/a29k-protos.h: Similarly.
12463         * a29k/a29k.c: Similarly.
12464         * a29k/a29k.h: Similarly.
12465         * arc/arc-protos.h: Similarly.
12466         * arc/arc.c: Similarly.
12467         * arc/arc.h: Similarly.
12468         * arm/arm-protos.h: Similarly.
12469         * arm/arm.c: Similarly.
12470         * arm/arm.h: Similarly.
12471         * avr/avr-protos.h: Similarly.
12472         * avr/avr.c: Similarly.
12473         * avr/avr.h: Similarly.
12474         * clipper/clipper-protos.h: Similarly.
12475         * clipper/clipper.c: Similarly.
12476         * clipper/clipper.h: Similarly.
12477         * convex/convex.c: Similarly.
12478         * convex/convex.h: Similarly.
12479         * d30v/d30v-protos.h: Similarly.
12480         * d30v/d30v.c: Similarly.
12481         * d30v/d30v.h: Similarly.
12482         * d30v/d30v.md: Similarly.
12483         * dsp16xx/dsp16xx-protos.h: Similarly.
12484         * dsp16xx/dsp16xx.c: Similarly.
12485         * dsp16xx/dsp16xx.h: Similarly.
12486         * elxsi/elxsi.c: Similarly.
12487         * elxsi/elxsi.h: Similarly.
12488         * fr30/fr30.c: Similarly.
12489         * fr30/fr30.md: Similarly.
12490         * h8300/h8300-protos.h: Similarly.
12491         * h8300/h8300.c: Similarly.
12492         * h8300/h8300.h: Similarly.
12493         * i370/i370-protos.h: Similarly.
12494         * i370/i370.c: Similarly.
12495         * i370/i370.h: Similarly.
12496         * i386/i386.c: Similarly.
12497         * i386/osf1elf.h: Similarly.
12498         * i386/osfrose.h: Similarly.
12499         * i860/i860-protos.h: Similarly.
12500         * i860/i860.c: Similarly.
12501         * i860/i860.h: Similarly.
12502         * i960/i960-protos.h: Similarly.
12503         * i960/i960.c: Similarly.
12504         * i960/i960.h: Similarly.
12505         * ia64/ia64-protos.h: Similarly.
12506         * ia64/ia64.c: Similarly.
12507         * ia64/ia64.h: Similarly.
12508         * m32r/m32r-protos.h: Similarly.
12509         * m32r/m32r.c: Similarly.
12510         * m32r/m32r.h: Similarly.
12511         * m68hc11/m68hc11-protos.h: Similarly.
12512         * m68hc11/m68hc11.c: Similarly.
12513         * m68hc11/m68hc11.h: Similarly.
12514         * m68k/crds.h: Similarly.
12515         * m68k/dpx2.h: Similarly.
12516         * m68k/m68k-protos.h: Similarly.
12517         * m68k/m68k.c: Similarly.
12518         * m68k/m68k.h: Similarly.
12519         * m68k/news.h: Similarly.
12520         * m88k/m88k-protos.h: Similarly.
12521         * m88k/m88k.c: Similarly.
12522         * m88k/m88k.h: Similarly.
12523         * mips/mips-protos.h: Similarly.
12524         * mips/mips.c: Similarly.
12525         * mips/mips.h: Similarly.
12526         * ns32k/merlin.h: Similarly.
12527         * ns32k/ns32k.c: Similarly.
12528         * ns32k/ns32k.h: Similarly.
12529         * ns32k/tek6000.h: Similarly.
12530         * pa/pa-protos.h: Similarly.
12531         * pa/pa.c: Similarly.
12532         * pa/pa.h: Similarly.
12533         * pdp11/2bsd.h: Similarly.
12534         * pdp11/pdp11-protos.h: Similarly.
12535         * pdp11/pdp11.c: Similarly.
12536         * pdp11/pdp11.h: Similarly.
12537         * romp/romp-protos.h: Similarly.
12538         * romp/romp.c: Similarly.
12539         * romp/romp.h: Similarly.
12540         * rs6000/rs6000-protos.h: Similarly.
12541         * rs6000/rs6000.c: Similarly.
12542         * rs6000/rs6000.h: Similarly.
12543         * rs6000/sysv4.h: Similarly.
12544         * sh/sh-protos.h: Similarly.
12545         * sh/sh.c: Similarly.
12546         * sh/sh.h: Similarly.
12547         * sparc/sparc-protos.h: Similarly.
12548         * sparc/sparc.c: Similarly.
12549         * sparc/sparc.h: Similarly.
12550         * vax/vax.c: Similarly.
12551         * vax/vax.h: Similarly.
12552         * vax/vms.h: Similarly.
12553         * we32k/we32k.c: Similarly.
12554         * we32k/we32k.h: Similarly.
12555
12556 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
12557
12558         * basic-block.h (first_insn_after_basic_block_note): Declare.
12559         * flow.c (first_insn_after_basic_block_note): Define.  Moved
12560         from...
12561         * ssa.c (first_insn_after_basic_block_note): Remove.
12562         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
12563         necessary.
12564         (ssa_eliminate_dead_code): Properly update the CFG and PHI
12565         nodes when we find a dead conditional branch.  Insert BARRIERs
12566         after any blocks with no successors, but which do not have
12567         any BARRIERs.
12568
12569 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
12570
12571         * varray.c (varray_check_failed): Use internal_error.
12572
12573 2001-07-05  Andrew Haley  <aph@redhat.com>
12574
12575         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
12576         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
12577         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
12578
12579 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
12580
12581         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
12582         reference if the target constant is also a SYMBOL_REF.
12583
12584 2001-07-05  Eric Christopher  <echristo@redhat.com>
12585
12586         * config/mips/mips.h (MASK_MIPS3900): Remove.
12587         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
12588         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
12589         (TARGET_MIPS3900): Change to use mips_arch.
12590         (TARGET_MIPS4000): New.
12591         (TARGET_MIPS4100): New.
12592         (TARGET_MIPS4300): New.
12593         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
12594         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
12595         for -mipsX.
12596         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
12597         (ISA_HAS_BRANCHLIKELY): To here.
12598         (CC1_CPU_SPEC):  New.
12599         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
12600         (mips_arch_string): Declare.
12601         (mips_arch): Declare.
12602         (TARGET_OPTIONS): Add -march and -mtune.
12603
12604         * config/mips/mips.c (mips_arch_string): New.
12605         (mips_arch): New.
12606         (override_options): Handle -march for codegen and -mtune
12607         for scheduling. Use mips_arch. Move tx39 target default here.
12608         (mips_parse_cpu): Move error message to override_options.
12609
12610         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
12611
12612         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
12613
12614         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
12615         (MIPS Options): Ditto.  Change mcpu entry to historical text.
12616
12617 2001-07-05  H.J. Lu  (hjl@gnu.org)
12618
12619         * config/mips/mips.c (mips_parse_cpu): New function to parse
12620         -march=*/-mcpu=*.
12621
12622 2001-07-05  Jim Wilson  <wilson@redhat.com>
12623
12624         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
12625         * config/ia64/t-ia64: Likewise.
12626         (LIB1ASMFUNCS): Update comment.
12627
12628 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
12629
12630         * doc/install.texi (Install GCC: Binaries): Fix typo.
12631
12632 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12633
12634         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
12635         reference using the stack pointer, adjust it since we push Y
12636         temporarily.
12637         ("*ashrsi3"): Likewise.
12638         ("*lshrsi3"): Likewise.
12639
12640 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12641
12642         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
12643         when -fomit-frame-pointer is used.
12644
12645 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
12646
12647         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
12648         (try_redirect_by_replacing_jump): Reverse updating properly the
12649         count and frequency information.  Reverse removing cc0 setter.
12650         (forwarder_block_p): Reverse fixing for fallthru blocks.
12651
12652 2001-07-05  DJ Delorie  <dj@redhat.com>
12653
12654         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
12655         (translate_options): If the above is defined, use it to map
12656         given options to new options.
12657         * doc/tm.texi: Document it.
12658
12659 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
12660             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12661
12662         * doc/invoke.texi (Optimize Options): Document that -fgcse may
12663         cause programs using computed gotos to run more slowly.
12664
12665 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12666
12667         * doc/install.texi (Specific): Markup, spelling and typo fixes.
12668         Fixed sorting.
12669         Consistently require binutils 2.11.2, not prereleases.
12670         (Specific, decstation-*): Canonicalize as mips-dec-*.
12671         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
12672         always necessary.
12673         (Specific, m68k-altos): Removed reference to README.altos, deleted.
12674         (Specific, mips-*): Reword MIPS C compiler requirements.
12675         (Specific, powerpc*-*-*): New, mention --with-cpu once.
12676         (Specific, sunv5): Removed, obsolete.
12677
12678 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
12679
12680         * dwarf2out.c (output_loc_list): Use an all ones mask for
12681         .text asm output and don't rely on long long
12682         literals. Reformat some long lines.
12683
12684 2001-07-05  Andreas Jaeger  <aj@suse.de>
12685
12686         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
12687         section.
12688
12689 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
12690
12691         * dwarf2out.c (dwarf2out_define): Update comment.
12692         (dwarf2out_undef): Ditto.
12693         (dwarf2out_start_source_file): Ditto.
12694         (dwarf2out_end_source_file): Ditto.
12695         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
12696         since we never call the start/end debug hook for the primary file.
12697
12698 2001-07-04  Kazu Hirata  <kazu@hxi.com>
12699
12700         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
12701         from shll.
12702
12703 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
12704
12705         * cppinit.c (remove_dup_dirs): Inform if a system include
12706         directory is being reordered.
12707         * doc/invoke.texi (Directory Options): GCC warns if you hide a
12708         system include.
12709         * doc/cpp.texi (Search Paths): Likewise.
12710         * doc/gcc.texi (Interoperation): Remove information about
12711         -I/usr/include.
12712
12713 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
12714
12715         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
12716         (VARRAY_TOP_CHAR_PTR): Likewise.
12717
12718 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12719
12720         * gcc.c (process_command): Don't assign elements of a const char*.
12721
12722 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12723
12724         * emit-rtl.c (change_address): Don't abort if invalid address while
12725         reload is in progress.
12726
12727 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
12728
12729         * c-lex.c (cb_file_change): Pass line number to
12730         debug_start_source_file.
12731         (cb_undefine): Pass correct line number to debug_undef.
12732
12733         * toplev.c (debug_start_source_file): Add line number to
12734         parameters. Pass it along to dwarf2out_start_source_file.
12735         (decode_g_option): Stop resetting debug level back to normal when
12736         we change debug formats, unless the current level is
12737         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
12738         3).
12739
12740         * toplev.h (debug_start_source_file): Add line number to
12741         parameters.
12742
12743         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
12744         parameters.
12745
12746         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
12747         parameters.
12748         Output debug_macinfo data for starting file if requested.
12749         (dwarf2out_end_source_file): Output debug_macinfo data for ending
12750         file if requested.
12751         (dwarf2out_define): Output debug_macinfo data for defining a macro
12752         if requested.
12753         (dwarf2out_undef): Output debug_macinfo data for undefining a
12754         macro if requested.
12755         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
12756         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
12757         (macinfo_section_label): New. DWARF2 macro info section label.
12758         (dwarf2out_init): If we want macro info, output the start label
12759         for the section.
12760         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
12761         attribute to the compilation unit die pointing to the macro info.
12762
12763 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
12764
12765         * dwarf2out.c (new_loc_list): Move to inside #ifdef
12766         DWARF2_DEBUGGING_INFO.
12767         (add_loc_descr_to_loc_list): Ditto.
12768         (output_loc_list): Ditto.
12769         Also, fix thinko in curr not being initialized.
12770         (gen_internal_sym): Ditto.
12771
12772 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12773
12774         * emit-rtl.c (replace_equiv_address): New function.
12775         * expr.h (replace_equiv_address): New declaration.
12776         * explow.c (validize_mem): Call it instead of change_address and
12777         also call if -fforce-addr and address is constant.
12778         * expr.c: Replace more calls to change_address with adjust_address
12779         and/or replace_equiv_address or to validize_mem.
12780         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
12781         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
12782         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
12783         * config/i370/i370.md, config/i860/i860.md: Likewise.
12784         * config/i960/i960.md, config/mips/mips.c: Likewise.
12785         * config/mips/mips.md, config/pa/pa.md: Likewise.
12786         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
12787         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
12788
12789 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12790
12791         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
12792
12793         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
12794         function.
12795
12796 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
12797
12798         * doc/include: New directory.
12799         * doc/fdl.texi: Move to doc/include/fdl.texi.
12800         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
12801         * doc/include/funding.texi, doc/include/gpl.texi: New files.
12802         * doc/gcc.texi: Use funding.texi and gpl.texi.
12803         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
12804         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
12805         Update dependencies and use -I $(docdir)/include.
12806
12807 2001-07-04  Anthony Green  <green@redhat.com>
12808
12809         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
12810
12811 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12812
12813         * doc/install.texi (sparc64-*-*): Remove garbage.
12814
12815 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
12816
12817         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
12818         Fix typo in last change to use adjust_address.
12819
12820 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12821
12822         * doc/install.texi (Specific): Update information for *-*-solaris*.
12823
12824 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12825
12826         * explow.c (plus_constant_wide): Reinitialize Y for restart.
12827
12828 2001-07-03  Stan Shebs  <shebs@apple.com>
12829
12830         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
12831         case for flag_no_mach_text_sections.
12832         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
12833         * config/darwin.c (flag_no_mach_text_sections): Remove.
12834         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
12835
12836 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12837
12838         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
12839         and avoid checking for constant as first operand.
12840         * recog.c (find_constant_term_loc): No longer static.
12841         (adj_offettable_operand): Delete.
12842         * rtl.h (adj_offsettable_operand): Delete declaration.
12843         (find_constant_term): Add declaration.
12844         * caller-save.c: Replace calls to adj_offsettable_operand with calls
12845         to adjust_address.
12846         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
12847         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
12848         * config/i386/i386.c, config/i386/i386.md: Likewise.
12849         * config/i860/i860.c, config/i960/i960.c: Likewise.
12850         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
12851         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
12852         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
12853         * config/mips/mips.c, config/mips/mips.md: Likewise.
12854         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
12855         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
12856         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
12857         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
12858         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
12859         * config/ns32k/ns32k.md: Likewise.
12860
12861 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
12862
12863         * rtl.c (copy_rtx): Handle 'T' format letter.
12864         * gensupport.c (collect_insn_data): Likewise.
12865         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
12866
12867 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
12868
12869         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
12870         -B option.  Use 'dir' not 'foo' as example directory name.
12871
12872 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12873
12874         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12875         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
12876
12877 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
12878
12879         * doc/cppinternals.texi: Improve formatting and logical markup.
12880
12881 2001-07-03  Andreas Jaeger  <aj@suse.de>
12882
12883         * Makefile.in (insn-recog.o): Add dependency on reload.h.
12884
12885         * genrecog.c (write_header): Include reload.h for prototypes in
12886         insn-recog.c.
12887
12888 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12889
12890 config:
12891         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
12892         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
12893         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
12894         i386_pe_valid_type_attribute_p): Add.
12895         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
12896         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
12897
12898 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12899
12900         * explow.c (plus_constant_wide, case LO_SUM): New case.
12901         (plus_constant_for_output_wide): Delete.
12902         * rtl.h (plus_constant_for_output): Delete.
12903         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
12904         instead of plus_constant_for_output.
12905         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
12906         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
12907         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
12908         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
12909         * config/sparc/sparc.md: Likewise.
12910         Convert some change_address calls to adjust_address.
12911
12912 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
12913
12914         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
12915         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
12916         documentation of -std and -Wwrite-strings.
12917
12918 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
12919
12920         * cse.c (canon_hash): Don't register registers in very small
12921         register classes, as extending their lifetime might cause
12922         reload to fail.
12923
12924 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
12925
12926         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
12927
12928         * flow.c (forwarder_block_p): Fix for fallthru blocks.
12929         (try_redirect_by_replacing_jump): Update properly the count
12930         and frequency information.
12931
12932 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
12933
12934         * toplev.c (dump_file_index): Move SSA dumps just after first
12935         jump dump.
12936         (dump_file): Corresponding changes.
12937         (rest_of_compilation): Move SSA path to just after the first
12938         jump pass.
12939         * doc/gcc.texi (Passes): Update due to movement of SSA path.
12940         * doc/invoke.texi: Update dump file #s as they were completely
12941         out of date with reality.
12942
12943 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
12944
12945         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
12946
12947         * expr.c (emit_move_insn_1): Deal with non-default
12948         STACK_PUSH_CODE.
12949
12950         * expr.c (emit_single_push_insn): Fix warning.
12951
12952 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
12953
12954         * expr.c (emit_move_insn_1): Avoid modifying
12955         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
12956
12957 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12958
12959         * emit-rtl.c (adjust_address): New function.
12960         * expr.h (adjust_address): Add declaration.
12961         * builtins.c: Replace some calls to change_address with calls to it
12962         or to validize_mem.
12963         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
12964         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
12965         * config/arm/arm.c, config/convex/convex.c: Likewise.
12966         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
12967         * config/i386/i386.c, config/i386/i386.md: Likewise.
12968         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
12969         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
12970         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
12971         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
12972         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
12973
12974 2001-07-02  Jim Wilson  <wilson@redhat.com>
12975
12976         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
12977
12978 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
12979
12980         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
12981         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
12982
12983 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
12984
12985         * cppinit.c (lang_defaults): New table.
12986         (set_lang): Just read from lang_defaults into the live options
12987         structure.
12988
12989 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
12990
12991         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
12992         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
12993         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
12994
12995 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12996
12997         * doc/install.texi: Various spelling and markup fixes.
12998         (Installing GCC): Component specific installation instructions are
12999         gone.
13000         Fix reference.
13001         Warn about removing old install dir in the presence of shared libs.
13002         (Configuration): Invoke with options target to match configure
13003         --help.
13004         Consistently refer to gas, gld pathnames.
13005         Invert --enable-multilib documentation.
13006         Remove references to old compiler versions.
13007
13008 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13009
13010         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
13011
13012 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13013
13014         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
13015         section.
13016         (Specific, mips*-sgi-irix5): Note IDO download.
13017         Reworded MIPS C hints.
13018         Use GNU as instead of GAS.
13019         Markup fixes.
13020         Removed SGI Freeware reference, IRIX 6 only.
13021         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
13022         Note N64 library requirement/workaround.
13023         Update O32 hints.
13024         Complete list of structure passing bug victims.
13025
13026 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13027
13028         * doc/install.texi: Remove CVS Id.
13029
13030 2001-07-02  Andreas Jaeger  <aj@suse.de>
13031
13032         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
13033         (find_inherently_necessary): Remove unused variable.
13034
13035 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
13036
13037         * c-common.h (TDI_inlined): New ast dump phase.
13038         (dump_flag_name): New function.
13039         * c-dump.c (dump_files): Add inlined phase.
13040         (dump_flag_name): Define.
13041         * doc/invoke.texi (-fdump-ast-inlined): Document.
13042
13043 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13044
13045         * stor-layout.c (layout_decl): Revert change to handling of alignment
13046         in packed types.
13047
13048 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13049
13050         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
13051         for FIELD_DECL.
13052
13053 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
13054
13055         * doc/tm.texi (FUNCTION_ARG): Document that the last call
13056         is special.
13057
13058 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
13059
13060         * tlink.c (recompile_files): Remove COMPILER_PATH and
13061         LIBRARY_PATH from the environment.
13062
13063 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
13064
13065         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
13066         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
13067         enumerators.
13068         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
13069
13070         * c-parse.in (OBJC_STRING): Kill.
13071         (objc_string): Decompose to [objc_string] '@' STRING.
13072         (reswords): Take the leading '@' off all the Objective C keywords.
13073         (objc_rid_sans_at): Kill.
13074         (init_reswords): Don't initialize it.
13075         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
13076         (_yylex): Kill reconsider label.  Look ahead one token after
13077         an '@'; if we get an identifier, check whether it's an
13078         Objective C @-keyword.  If so, return the keyword.  Otherwise,
13079         put back the token and return the '@' as a terminal.
13080
13081         * cpplib.c (lex_macro_node): Remove unnecessary check for
13082         leading '@' on identifier.  Clarify control flow and commentary.
13083
13084 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13085
13086         * cse.c (new_label_ref): Variable deleted.
13087         (insert): Remove set of new_label_ref.
13088         (check_for_label_ref): New function.
13089         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
13090
13091 See ChangeLog.5 for earlier changes.