OSDN Git Service

* cpplex.c (_cpp_get_buff): Fix off-by-one error that caused memory
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-10-17  Richard Earnshaw <rearnsha@arm.com>
2
3         * cpplex.c (_cpp_get_buff): Fix off-by-one error that caused memory
4         leak.
5
6 Wed Oct 17 05:26:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7
8         * Makefile.in (print-rtl.o): Depend on TREE_H.
9         * alias.c (get_alias_set): Make two passes over objects to first
10         see if inner object is access via restricted pointer.
11         Defer allocating alias set for restricted pointer until here.
12         Call find_placeholder with second arg nonzero.
13         Minor cleanups.
14         * c-common.c (c_apply_type_quals_to_decl): Defer getting alias
15         set for restricted pointer types.
16         * emit-rtl.c (set_mem_attributes): Set more attributes.
17         (set_mem_align, change_address, adjust_address_1): New functions.
18         (change_address_1): Now static.
19         (adjust_address, adjust_address_nv): Deleted.
20         (replace_equiv_address): Call change_address_1.
21         * expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR.
22         (find_placeholder): Get starting point from PLIST arg.
23         (expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg.
24         * expr.h (set_mem_align, change_address, adjust_address_1): New decls.
25         (adjust_address, adjust_address_nv): New macros.
26         * print-rtl.c (tree.h): New include.
27         (print_rtx, case MEM): Print all memory attributes.
28
29 2001-10-17  Richard Henderson  <rth@redhat.com>
30
31         * config/alpha/alpha.c (direct_call_operand): Don't fall off end.
32
33 2001-10-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
34
35         * c-tree.texi: Eliminate duplicated word.
36         * cpp.texi: Likewise.
37         * install.texi: Likewise.
38         * invoke.texi: Likewise.
39         * tm.texi: Likewise.
40
41 2001-10-17  Michael Collison  <collison@isisinc.net>
42
43         * dsp16xx.c: Fix comment formatting to match GNU standards.
44         (dsp16xx_output_function_prologue): Change type of 'size' 
45         parameter from 'int' to HOST_WIDE_INT.
46         (dsp16xx_output_function_epilogue): Change type of 'size'
47         parameter from 'int' to HOST_WIDE_INT.
48
49 2001-10-16  Richard Henderson  <rth@redhat.com>
50
51         * configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
52         * configure, config.in: Rebuild.
53
54         * config/i386/i386.c (ix86_output_addr_vec_elt): New.
55         (ix86_output_addr_diff_elt): New.
56         * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them.
57         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
58         (JUMP_TABLES_IN_TEXT_SECTION): New.
59         * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA.
60         * config/i386/i386-protos.h: Update.
61
62         * config/i386/386bsd.h, config/i386/beos-elf.h,
63         config/i386/freebsd-aout.h, config/i386/freebsd.h,
64         config/i386/i386-interix.h, config/i386/i386elf.h,
65         config/i386/linux.h, config/i386/netbsd-elf.h,
66         config/i386/netbsd.h, config/i386/openbsd.h,
67         config/i386/ptx4-i.h, config/i386/rtemself.h,
68         config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h
69         (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove.
70
71 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
72
73         * stmt.c (expand_asm_operands): Update commentary.
74
75 2001-10-16  Stan Shebs  <shebs@apple.com>
76
77         * config/darwin.h (GCC_NAME): Remove, no longer used.
78         (NO_MATH_LIBRARY): Ditto.
79         (MATH_LIBRARY): Define to emptiness.
80         (DWARF2_DEBUGGING_INFO): Define.
81         (PREFERRED_DEBUGGING_TYPE): Define.
82         (EXTRA_SECTION_FUNCTIONS): Add darwin_exception_section.
83         (EXCEPTION_SECTION): Define.
84         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
85         * config/darwin.c (darwin_encode_section_info): Handle case of
86         DECL_INITIAL being error_mark_node.
87
88 2001-10-16  Richard Henderson  <rth@redhat.com>
89
90         * alpha.c (current_file_function_operand): Don't fail for profiling.
91         (direct_call_operand): New.
92         * alpha-protos.h: Declare it.
93         * alpha.h (EXTRA_CONSTRAINT): Use it.
94         (PREDICATE_CODES): Add it.
95         (ASM_OUTPUT_MI_THUNK): Remove.
96         * alpha32.h (ASM_OUTPUT_MI_THUNK): Remove.
97         * alpha.md (sibcall_osf_1, sibcall_value_osf_1): Add 's' alternative.
98
99 2001-10-16  Krister Walfridsson  <cato@df.lth.se>
100  
101         * config/i386/netbsd-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Define.
102         (JUMP_TABLES_IN_TEXT_SECTION): Define.
103
104 Wed Oct 17 00:21:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
105
106         * cfg.c (free_edge): Break out from ....
107         (remove_edge): ... here.
108         (clear_edges): Use free_edge.
109
110         * att.h (ASM_QUAD): Add comment.
111         * bsd.h, sco5.h, sun386.h (ASM_QUAD): Define.
112
113 Wed Oct 17 00:01:02 CEST 2001  Jan Hubicka  <jh@suse.cz>
114
115         * i386.c (split_ti): New function.
116         (ix86_split_to_parts): Support TImodes.
117         * i386.h (VALID_INT_MODE_P): Add TImode.
118         * i386.md (movdi splitter): Fix.
119         (movti): Support 64bit integer registers.
120         (movti_rex64): New function and splitter.
121
122         * i386.c (*_cost): Add movsx/movzx cost.
123         * i386.h (struct processor_costs): Add movsx/movzx fields.
124         (RTX_COSTS): Handle zero/sign extend + avoid believing that
125         64bit operations require split on 64bit machine.
126         (CONST_COST): Make large 64bit constants expensive on 64bit compilation.
127
128         * i386.c (ix86_setup_incomming_varargs): Fix mode of PLUS.
129         (ix86_expand_move): Avoid pushes of memory if size does not match;
130         move long constants to register.
131         (x86_initialize_trampoline): Fix mode.
132         * i386.h (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT):
133         Use ASM_QUAD on 64bit.
134         * i386.md (test pattern): Disallow impossible constants.
135         (tablejump PIC expander): Fix emitting of sum.
136         (movdicc_rex64): Rename to movdicc.
137         * linux64.h (LINK_SPEC): Add missing '%'.
138
139 2001-10-16  Alexandre Oliva  <aoliva@redhat.com>
140
141         * tree-inline.c (inlinable_function_p): Leave it up to the
142         front-end to turn -finline-functions into DECL_INLINE set for all
143         functions.
144
145 2001-10-16  Stan Shebs  <shebs@apple.com>
146
147         * config/rs6000/darwin.h (ASM_COMMENT_START): Define.
148
149 2001-10-16  Alan Modra  <amodra@bigpond.net.au>
150
151         * recog.c: Formatting and comment typo fixes.
152
153         * configure.in (gcc_cv_as_bfd_srcdir): New.  Use it to find gas
154         version in single tree build.
155         * configure: Regenerate.
156
157 2001-10-15  David Edelsohn  <edelsohn@gnu.org>
158
159         * config/rs6000/rs6000.md (cr_logical): Swap order of CODE and
160         MODE arguments to gen_rtx and compare operand with const0_rtx.
161
162 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
163
164         * system.h: Poison old unused target macros.
165         * config/dsp16xx.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
166         * config/stormy16/stormy16.c: Update references to obsolete macros.
167         * config/stormy16/stormy16.h: Similarly.
168         * config/stormy16/stormy16.md: Similarly.
169         * config/cris/cris.h: Similarly.
170
171 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
172
173         * cpplib.c (struct pragma_entry): Store the name as a hashnode.
174         (lookup_pragma_entry, insert_pragma_entry, do_pragma,
175         cpp_register_pragma): Update accordingly.
176
177 2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
178
179         * c-pragma.h (cpp_register_pragma_space): Remove.
180         * cpplib.h (cpp_register_pragma_space): Remove.
181         * cpplib.c (lookup_pragma_entry, insert_pragma_entry): New.
182         (cpp_register_pragma_space): Remove.
183         (cpp_register_pragma): Simplify using lookup_pragma_entry,
184         add sanity checks.
185         (do_pragma): Similarly.
186         (_cpp_init_internal_pragmas): Don't register namespaces.
187
188         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS):
189         Don't register namespaces.
190         * cp/lex.c (init_cp_pragma): Similarly.
191         * doc/tm.texi: Update.
192
193 2001-10-10  Craig Rodrigues  <rodrigc@gcc.gnu.org>
194
195         PR c/4157
196         * config/i386/cygwin.h: Add missing space to MINGW_INCLUDES
197
198 2001-10-13  Michael Collison  <collison@dhcp-12-114.townisp.com>
199
200         * config/dsp16xx/dsp16xx.md: Rewrite for more efficient code and 
201         add scheduling support.
202         * config/dsp16xx/dsp16xx.h: Rewrite for more efficient code.
203         * config/dsp16xx/dsp16xx.c: Rewrite for more efficient code.
204         * config/dsp16xx/dsp16xx-protos.h: Add new function prototypes.
205
206
207 2001-10-13  Hans-Peter Nilsson  <hp@axis.com>
208
209         * config/cris/cris.c (cris_legitimate_pic_operand): Kludge around
210         missing CONSTANT_P test in core GCC.
211
212 2001-10-12  Neil Booth  <neil@daikokuya.demon.co.uk>
213
214         * cppmain.c (struct printer): New member source.
215         (scan_translation_unit): Fix spacing at start of lines.
216         (cb_line_change): Update.
217
218         * gcc.dg/cpp/spacing2.c: New test.
219
220 2001-10-12  Hans-Peter Nilsson  <hp@axis.com>
221
222         * config/cris/arit.c: Use __builtin_labs, not abs.
223
224         * config/cris/cris.h (SET_STRIPPABLE_EXECUTABLE): Don't define.
225
226         * config/cris/cris.c (cris_target_asm_function_epilogue): Move
227         misplaced sprintf and fprintf argument.
228
229 2001-10-12  Zack Weinberg  <zack@codesourcery.com>
230
231         * ABOUT-NLS, aclocal.m4: Update i18n framework from gettext 0.10.40.
232         * configure.in, Makefile.in: Take out obsolete check-po logic.
233         * configure, config.in: Regenerate.
234
235 2001-10-12  Ziemowit Laski  <zlaski@apple.com>
236
237         * objc/objc-act.c (finish_objc): Correct precondition for emitting
238         symtab declarations.
239
240 2001-10-12  Stan Shebs  <shebs@apple.com>
241
242         * config/rs6000/rs6000.c: Remove uses of "register" specifier in
243         declarations of arguments and local variables.
244
245 2001-10-12  Christopher Faylor  <cgf@redhat.com>
246
247         * config/i386/cygwin.h: Revert erroneous checkin of crtbegin and
248         ENDFILE_SPEC definition.
249
250 2001-10-12  Kazu Hirata  <kazu@hxi.com>
251
252         * gthr-dce.h: Fix comment formatting.
253         * gthr-posix.h: Likewise.
254         * gthr-single.h: Likewise.
255         * gthr-solaris.h: Likewise.
256         * gthr-vxworks.h: Likewise.
257         * gthr-win32.h: Likewise.
258
259 2001-10-12  Jakub Jelinek  <jakub@redhat.com>
260
261         * final.c (output_asm_insn): Make sure assembly dialects are
262         terminated, not nested.  Output `|' and `}' characters if they
263         don't appear inside assembly dialect selection.
264         * config/i386/i386.md (rep_movdi_rex64, rep_movsi, rep_movsi_rex64,
265         rep_movqi, rep_movqi_rex64, rep_stosdi_rex64, rep_stossi,
266         rep_stossi_rex64, rep_stosqi, rep_stosqi_rex64, strsetsi_1,
267         strsetsi_rex_1): Add {} braces.
268
269 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
270
271         * toplev.c (compile_file): Ignore return value from yyparse.
272         Always pop any nested binding levels after yyparse returns.
273
274 2001-10-11  Richard Henderson  <rth@redhat.com>
275
276         * doc/c-tree.texi (Expression trees): Add VTABLE_REF.
277
278 2001-10-11  Richard Henderson  <rth@redhat.com>
279
280         * dwarf2out.c (add_const_value_attribute): If long < HOST_WIDE_INT,
281         fall back to add_AT_long_long for large CONST_INT.
282
283 2001-10-11  Richard Henderson  <rth@redhat.com>
284
285         * config/i386/i386.md (setcc splitters): Add four splitters to
286         simplify compound compares that simplify_comparison can't handle.
287
288 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
289
290         * cpplex.c (digraph_spellings, token_spellings): Make static.
291
292 2001-10-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
293
294         * unroll.c (loop_iterations): Fixup last patch.
295
296 2001-10-11  Richard Henderson  <rth@redhat.com>
297
298         * rtl.h (REG_VTABLE_REF): New.
299         * rtl.c (reg_note_name): Add it.
300         * combine.c (distribute_notes): Handle it.
301         * final.c (final_scan_insn): Handle it.
302         * tree.def (VTABLE_REF): New.
303         * expr.c (expand_expr): Handle it.
304         * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New.
305         * output.h: Declare them.
306
307 2001-10-11  Richard Henderson  <rth@redhat.com>
308
309         * dwarf2out.c (rtl_for_decl_location): If no DECL_RTL, look
310         for a DECL_INITIAL.
311
312 2001-10-11  David Edelsohn  <edelsohn@gnu.org>
313
314         * config/rs6000/xcoff.h (UNALIGNED_DOUBLE_INT_ASM_OP): Only
315         available in 64-bit mode.
316
317 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
318
319         * config.gcc: Add cris-*-aout, cris-*-elf, cris-*-none,
320         cris-*-linux* cases.
321         * config/cris/cris-protos.h: New file.
322         * config/cris/cris.c: New file.
323         * config/cris/cris.h: New file.
324         * config/cris/cris.md: New file.
325         * config/cris/linux.h: New file.
326         * config/cris/aout.h: New file.
327         * config/cris/arit.c: New file.
328         * config/cris/cris_abi_symbol.c: New file.
329         * config/cris/mulsi3.asm: New file.
330         * config/cris/t-aout: New file.
331         * config/cris/t-cris: New file.
332         * config/cris/t-elfmulti: New file.
333         * config/cris/t-linux: New file.
334         * doc/invoke.texi: Add CRIS options.
335         * doc/install.texi (Specific): Add blurb for CRIS.
336
337 2001-10-10  Hartmut Schirmer <SchirmerH@Innovative-Systems.de>
338
339         * config/float-i128.h: Make sure __STDC__VERSION__ is defined
340         before using it.
341         * config/float/i32.h: Likewise.
342         * config/float-i386.h: Likewise.
343         * config/float-i64.h: Likewise.
344         * config/float-m68k.h: Likewise.
345         * config/float-sh.h: Likewise.
346         * config/float-sparc.h: Likewise.
347
348 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
349
350         * doc/contrib.texi: Add note about CRIS port to my entry.
351
352 2001-10-11  Kazu Hirata  <kazu@hxi.com>
353
354         * basic-block.h: Fix formatting.
355         * bitmap.h: Likewise.
356         * cpplib.h: Likewise.
357         * c-tree.h: Likewise.
358         * diagnostic.h: Likewise.
359         * flags.h: Likewise.
360         * ggc.h: Likewise.
361         * longlong.h: Likewise.
362         * real.h: Likewise.
363         * reload.h: Likewise.
364         * rtl.h: Likewise.
365         * tree.h: Likewise.
366
367 2001-10-10  Richard Henderson  <rth@redhat.com>
368
369         * c-parse.in (asm_operand): Allow named operands.
370         * genconfig.c (max_recog_operands): Set to 29.
371         * local-alloc.c (requires_inout): Skip multiple digits.
372         * recog.c (asm_operand_ok): Likewise.
373         (preprocess_constraints): Use strtoul for matching constraints.
374         (constrain_operands): Likewise.
375         * regmove.c (find_matches): Likewise.
376         * reload.c (find_reloads): Likewise.
377         * stmt.c (parse_output_constraint): Don't reject in-out
378         constraint on operands > 9.  Reject '[' in constraint.
379         (expand_asm_operands): Handle named operands.  Use strtoul
380         for matching constraints.
381         (check_operand_nalternatives): Split out from expand_asm_operands.
382         (check_unique_operand_names): New.
383         (resolve_operand_names, resolve_operand_name_1): New.
384
385         * doc/extend.texi (Extended Asm): Document named operands.
386         * doc/md.texi (Simple Constraints): Document matching constraints
387         on operands > 9.
388
389 2001-10-10  Richard Henderson  <rth@redhat.com>
390
391         * combine.c (try_combine): Handle a SEQUENCE of one insn.
392
393         * i386.c (test splitter): Narrow tests vs paradoxical subregs.
394         (jcc splitters): Add two splitters to simplify compound compares
395         that simplify_comparison can't handle.
396
397 2001-10-10  Richard Henderson  <rth@redhat.com>
398
399         * langhooks.c: Include langhooks.h.
400         * Makefile.in (langhooks.o): Depend on it.
401
402 Wed Oct 10 23:49:06 EDT 2001  John Wehle  (john@feith.com)
403
404         * rtlanal.c (noop_move_p): Insns with a REG_RETVAL note
405         should not be considered as a no-op.
406         * flow.c (delete_noop_moves): Handle REG_LIBCALL notes.
407
408 2001-10-10  Stan Shebs  <shebs@apple.com>
409
410         * alias.c: Remove uses of "register" specifier in declarations
411         of arguments and local variables.
412         * c-common.c: Ditto.
413         * c-convert.c: Ditto.
414         * c-decl.c: Ditto.
415         * c-format.c: Ditto.
416         * c-semantics.c: Ditto.
417         * c-typeck.c: Ditto.
418         * caller-save.c: Ditto.
419         * calls.c: Ditto.
420         * cfg.c: Ditto.
421         * cfgbuild.c: Ditto.
422         * cfgrtl.c: Ditto.
423         * collect2.c: Ditto.
424         * combine.c: Ditto.
425         * convert.c: Ditto.
426         * cppexp.c: Ditto.
427         * cppfiles.c: Ditto.
428         * cse.c: Ditto.
429         * dbxout.c: Ditto.
430         * defaults.h: Ditto.
431         * df.c: Ditto.
432         * dwarf2out.c: Ditto.
433         * dwarfout.c: Ditto.
434         * emit-rtl.c: Ditto.
435         * explow.c: Ditto.
436         * expmed.c: Ditto.
437         * expr.c: Ditto.
438         * final.c: Ditto.
439         * fix-header.c: Ditto.
440         * floatlib.c: Ditto.
441         * flow.c: Ditto.
442         * fold-const.c: Ditto.
443         * function.c: Ditto.
444         * gcc.c: Ditto.
445         * gcse.c: Ditto.
446         * gen-protos.c: Ditto.
447         * genattrtab.c: Ditto.
448         * gencheck.c: Ditto.
449         * genconfig.c: Ditto.
450         * genemit.c: Ditto.
451         * genextract.c: Ditto.
452         * genflags.c: Ditto.
453         * gengenrtl.c: Ditto.
454         * genoutput.c: Ditto.
455         * genpeep.c: Ditto.
456         * genrecog.c: Ditto.
457         * gensupport.c: Ditto.
458         * global.c: Ditto.
459         * gmon.c: Ditto.
460         * graph.c: Ditto.
461         * haifa-sched.c: Ditto.
462         * hard-reg-set.h: Ditto.
463         * hash.c: Ditto.
464         * integrate.c: Ditto.
465         * jump.c: Ditto.
466         * lists.c: Ditto.
467         * local-alloc.c: Ditto.
468         * loop.c: Ditto.
469         * mips-tdump.c: Ditto.
470         * mips-tfile.c: Ditto.
471         * optabs.c: Ditto.
472         * prefix.c: Ditto.
473         * print-rtl.c: Ditto.
474         * read-rtl.c: Ditto.
475         * real.c: Ditto.
476         * recog.c: Ditto.
477         * reg-stack.c: Ditto.
478         * regclass.c: Ditto.
479         * regmove.c: Ditto.
480         * reload.c: Ditto.
481         * reload1.c: Ditto.
482         * reorg.c: Ditto.
483         * resource.c: Ditto.
484         * rtl.c: Ditto.
485         * rtlanal.c: Ditto.
486         * scan.c: Ditto.
487         * sched-deps.c: Ditto.
488         * sched-rgn.c: Ditto.
489         * sdbout.c: Ditto.
490         * simplify-rtx.c: Ditto.
491         * stmt.c: Ditto.
492         * stor-layout.c: Ditto.
493         * toplev.c: Ditto.
494         * tradcif.y: Ditto.
495         * tradcpp.c: Ditto.
496         * tree.c: Ditto.
497         * unroll.c: Ditto.
498         * varasm.c: Ditto.
499         * xcoffout.c: Ditto.
500
501 2001-10-10  Richard Henderson  <rth@redhat.com>
502
503         * rtl.h (can_reverse_comparison_p): Remove.
504
505 2001-10-10  Christopher Faylor <cgf@redhat.com>
506
507         * config/i386/cygwin.h: Avoid adding include files if -nostdinc is
508         used.
509
510 2001-10-10  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
511
512         * config/i386/mingw32.h (WIN32_NO_ABSOLUTE_INST_DIRS): New define.
513         (Thanks to Chris Faylor for suggesting macro name).
514         (CPP_PREDEFINES): Define __MINGW32__ but don't set value; add more
515         WIN32 defines.
516         (STANDARD_INCLUDE_DIR): Remove i386- from directory name.
517         (STANDARD_INCLUDE_COMPONENT): Change to MINGW.
518         (MATH_LIBRARY): Undef before definition.
519         (OUTPUT_QUOTED_STRING): Likewise.
520         * config/i386/cygwin.h: Use WIN32_NO_ABSOLUTE_INST_DIRS.
521
522 2001-10-10  Richard Henderson  <rth@redhat.com>
523
524         * unwind-dw2-fde.c (fde_compare_t): Change return type to int.
525         (fde_unencoded_compare): Likewise.  Don't use subtraction to get
526         a tristate comparison value.
527         (fde_single_encoding_compare, fde_mixed_encoding_compare): Likewise.
528
529 2001-10-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
530
531         PR c++/4512
532         * unroll.c (loop_iterations): Ignore insns generated by loop
533         unrolling.
534
535         * config.gcc (mips*-*-gnu*): Delete support.
536         * config/mips/gnu.h: Remove.
537
538 2001-10-10  Kazu Hirata  <kazu@hxi.com>
539
540         * calls.c: Fix formatting.
541         * c-decl.c: Likewise.
542         * cfgcleanup.c: Likewise.
543         * combine.c: Likewise.
544         * cppfiles.c: Likewise.
545         * cpplib.c: Likewise.
546         * cppmacro.c: Likewise.
547         * crtstuff.c: Likewise.
548         * cse.c: Likewise.
549         * dwarf2out.c: Likewise.
550         * expmed.c: Likewise.
551         * expr.c: Likewise.
552         * fold-const.c: Likewise.
553         * function.c: Likewise.
554         * gcse.c: Likewise.
555         * genattrtab.c: Likewise.
556         * ggc-page.c: Likewise.
557         * integrate.c: Likewise.
558         * libgcc2.c: Likewise.
559         * loop.c: Likewise.
560         * optabs.c: Likewise.
561         * profile.c: Likewise.
562         * protoize.c: Likewise.
563         * real.c: Likewise.
564         * recog.c: Likewise.
565         * reload1.c: Likewise.
566         * reload.c: Likewise.
567         * reorg.c: Likewise.
568         * resource.c: Likewise.
569         * sched-rgn.c: Likewise.
570         * sdbout.c: Likewise.
571         * stmt.c: Likewise.
572         * toplev.c: Likewise.
573         * varasm.c: Likewise.
574
575 2001-10-10  Janis Johnson  <janis187@us.ibm.com>, Alexandre Oliva  <aoliva@redhat.com>
576
577         * langhooks.c: Include rtl.h, insn-config.h and integrate.h.
578         * Makefile.in (langhooks.o): Add dependencies.
579
580 Wed Oct 10 00:41:29 EDT 2001  John Wehle  (john@feith.com)
581
582         * rs6000.c (rs6000_emit_load_toc_table): Don't
583         strdup the toc label.
584         (create_TOC_reference): Likewise.
585
586 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
587
588         * config.gcc (i[34567]86-*-mingw32*): Make msvcrt-dependent
589         version default.
590
591 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
592
593         * config/i386/i386.c (ix86_attribute_table): Correct 
594         min_len, max_len fields for dllimport, dllexport and shared.
595
596 2001-10-10  Joseph S. Myers  <jsm28@cam.ac.uk>
597
598         * doc/c-tree.texi, doc/cppinternals.texi, doc/extend.texi,
599         doc/install.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi:
600         Consistently use "nonzero" instead of "non-zero".
601
602 2001-10-09  Kazu Hirata  <kazu@hxi.com>
603
604         * acconfig.h: Fix comment formatting.
605         * c-dump.h: Likewise.
606         * c-tree.h: Likewise.
607         * conditions.h: Likewise.
608         * expr.h: Likewise.
609         * function.h: Likewise.
610         * gthr.h: Likewise.
611         * hwint.h: Likewise.
612         * integrate.h: Likewise.
613         * intl.h: Likewise.
614         * loop.h: Likewise.
615         * optabs.h: Likewise.
616
617 2001-10-09  Kazu Hirata  <kazu@hxi.com>
618
619         * c-common.h: Fix comment formatting.
620         * c-dump.c: Likewise.
621         * cfg.c: Likewise.
622         * diagnostic.h: Likewise.
623         * except.c: Likewise.
624         * gcc.h: Likewise.
625         * gcov-io.h: Likewise.
626         * genattrtab.c: Likewise.
627         * output.h: Likewise.
628         * predict.h: Likewise.
629         * reload1.c: Likewise.
630         * reload.h: Likewise.
631         * resource.h: Likewise.
632         * scan.h: Likewise.
633         * system.h: Likewise.
634         * tree.h: Likewise.
635         * tree-inline.c: Likewise.
636         * tsystem.h: Likewise.
637         * varasm.c: Likewise.
638         * xcoffout.h: Likewise.
639
640 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
641
642         * doc/gcc.texi: Document preference for "nonzero" over "non-zero".
643
644 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
645
646         * config/alpha/freebsd.h, config/alpha/lib1funcs.asm,
647         config/i386/i386elf.h, config/i386/netbsd-elf.h,
648         config/i386/netware.h, config/mcore/gfloat.h,
649         config/mcore/mcore.c, config/mcore/mcore.h, config/mcore/mcore.md,
650         config/netware.h, gccbug.in: Update FSF address.
651
652 2001-10-09  Kazu Hirata  <kazu@hxi.com>
653
654         * c-common.c: Fix comment typos.
655         * cfgrtl.c: Likewise.
656         * collect2.c: Likewise.
657         * cpplex.c: Likewise.
658         * doloop.c: Likewise.
659         * dwarf2out.c: Likewise.
660         * dwarfout.c: Likewise.
661         * expr.c: Likewise.
662         * fold-const.c: Likewise.
663         * gcc.c: Likewise.
664         * gcov.c: Likewise.
665         * gcse.c: Likewise.
666         * global.c: Likewise.
667         * ifcvt.c: Likewise.
668         * loop.c: Likewise.
669         * optabs.c: Likewise.
670         * protoize.c: Likewise.
671         * regclass.c: Likewise.
672         * reorg.c: Likewise.
673         * rtl.h: Likewise.
674         * stmt.c: Likewise.
675         * tree.h: Likewise.
676         * doc/cpp.texi: Likewise.
677         * doc/c-tree.texi: Likewise.
678         * doc/extend.texi: Likewise.
679         * doc/invoke.texi: Likewise.
680         * doc/objc.texi: Likewise.
681         * doc/tm.texi: Likewise.
682
683 2001-10-08  Richard Henderson  <rth@redhat.com>
684
685         * varasm.c (set_named_section_flags): Initialize "declared".
686
687 2001-10-08  Robert Lipe  <robertlipe@usa.net>
688
689         * varasm.c (struct in_named_entry): Add declared.
690         (named_section_first_declaration): New function.
691         (default_elf_asm_named_section): Use it.
692         * output.h (named_section_first_declaration): New.
693
694 2001-10-08  Richard Henderson  <rth@redhat.com>
695
696         * i386.md (movsi_xor): Export.
697         (setcc peep2): Use it when available; add an alternative to
698         match zero_extendhisi2_and.
699
700 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
701
702         * romp-protos.h (romp_initialize_trampoline): New function.
703         * romp.c (romp_initialize_trampoline): Likewise.
704         * romp.h (INITIALIZE_TRAMPOLINE): Define in terms of
705         romp_initialize_trampoline.
706
707 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
708
709         * m68k/3b1.h (ASM_OUTPUT_SOURCE_LINE): Don't reference `last_linenum'.
710         * m68k/auxas.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
711         * m68k/crds.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
712         * m68k/mot3300.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
713
714 2001-10-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
715
716         * unroll.c (loop_iterations): Extend check for multiple back edges.
717
718 2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
719
720         * langhooks.h: New file.
721         * Makefile.in (OBJS): Added langhooks.o.
722         (c-lang.o): Depend on langhooks.h.
723         (c-common.o): Don't depend on tree-inline.h.
724         (tree-inline.o): Depend on toplev.h.
725         (langhooks.o): New rule.
726         * c-common.c: Don't include tree-inline.h.
727         (c_mark_lang_decl): Mark argument c as unused.
728         (c_common_lang_init): Don't initialize hooks here.
729         * c-lang.c: Include langhooks.h, then override some macros.
730         (lang_hooks): Initialize with macros in langhooks.h.
731         (c_init): Don't initialize hooks here.
732         * toplev.c (struct lang_hooks_for_tree_inlining): New struct.
733         (struct lang_hooks): Add tree_inlining.  Refer to langhooks.h.
734         * tree-inline.c: Include toplev.h.  Don't define hook variables.
735         * tree-inline.h: Don't define hook types nor declare hook
736         variables.  Move macros to...
737         * langhooks.c: ... new file, as functions.  Adjust all callers.
738
739 2001-10-08  Jeffrey A Law  <law@cygnus.com>
740
741         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Call
742         purge_mem_unchanging_flag on all instructions, not just on those
743         before NOTE_INSN_FUNCTION_BEG.
744
745 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
746
747         * cppmacro.c (_cpp_create_definition): Leave comments off.
748
749         * doc/cpp.texi: Update.
750
751 2001-10-08  DJ Delorie  <dj@redhat.com>
752
753         * c-decl.c (grokfield): Make sure the only unnamed fields
754         we're allowing are either structs or unions.
755         * doc/extend.texi: Add documentation for the unnamed field
756         extension.
757
758 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
759
760         * aclocal.m4 (gcc_AC_PROG_GNAT): New.
761         * configure.in: Use it.              
762         * configure: Regenerated.
763         * config/pa/t-linux, config/pa/t-pa, config/pa/t-pa64,
764         config/pa/t-pro: Set T_ADAFLAGS, not ADA_CFLAGS.      
765
766 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
767
768         * cppfiles.c (open_file): Don't mark zero-length files
769         never-reread here.  Don't output diagnostics here either.
770         (stack_include_file): Mark them never-reread here.
771         (_cpp_read_file): Update.
772
773 2001-10-08  Richard Henderson  <rth@redhat.com>
774
775         * config/i386/sol2.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
776
777 2001-10-08  Richard Henderson  <rth@redhat.com>
778
779         * expr.c (store_expr): When converting a CONST_INT for storage
780         in a SUBREG, convert it to both SUBREG modes before stripping
781         the SUBREG.
782
783 2001-10-08  Richard Henderson  <rth@redhat.com>
784
785         * varasm.c (restore_varasm_status): New.
786         * function.h: Declare it.
787         * function.c (pop_function_context_from): Call it.
788
789 2001-10-08  Richard Henderson  <rth@redhat.com>
790
791         * c-common.h (struct c_lang_decl): Add declared_inline.
792         * c-tree.h (DECL_DECLARED_INLINE_P): New.
793         * c-lang.c (c_disregard_inline_limits): Use it.
794         * c-decl.c (duplicate_decls): Likewise.
795         (pushdecl, redeclaration_error_message): Likewise.
796         (pushdecl): Allocate DECL_LANG_SPECIFIC if needed.
797         (grokdeclarator): Likewise.  Set DECL_DECLARED_INLINE_P.
798         Set DECL_INLINE if -finline-functions.
799         (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here.
800
801 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
802
803         * cppmacro.c (funlike_invocation_p): Move some logic to caller
804         in enter_macro_context.  Create a padding token in its own context
805         if necessary when the search for '(' fails.
806         (enter_macro_context): Update.
807
808 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
809
810         * ChangeLog.2, c-decl.c, config/i386/i386.md, doc/gcc.texi, gcc.c,
811         genmultilib, toplev.c: Fix spelling errors of "separate" as
812         "seperate", and corresponding spelling errors of related words.
813
814 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
815
816         * builtins.c (expand_builtin_setjmp_receiver): Const-ify.
817         * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
818         Likewise.
819         * c-dump.c (dump_option_value_info): Likewise.
820         * c-format.c (format_length_info, format_char_info,
821         format_flag_spec, format_flag_pair, format_kind_info): Likewise.
822         * collect2.c (names): Likewise.
823         * cppdefault.h (default_include): Likewise.
824         * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
825         * flow.c (life_analysis): Likewise.
826         * gcc.c (dir_separator_str, modify_target, option_map,
827         target_option_translations, spec_list_1, extra_specs_1,
828         init_spec): Likewise.
829         * gcov.c (gcov_version_string): Likewise.
830         * genattr.c (write_units): Likewise.
831         * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
832         * gengenrtl.c (rtx_definition, defs): Likewise.
833         * genrecog.c (pred_table): Likewise.
834         * global.c (global_alloc): Likewise.
835         * lcm.c (optimize_mode_switching): Likewise.
836         * local-alloc.c (find_free_reg): Likewise.
837         * params.h (param_info): Likewise.
838         * predict.c (predictor_info): Likewise.
839         * protoize.c (unexpansion_struct): Likewise.
840         * real.c (bmask): Likewise.
841         * recog.h (insn_operand_data, insn_data): Likewise.
842         * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
843         * stmt.c (expand_nl_goto_receiver): Likewise.
844         * toplev.c (da, debug_args, lang_opt, documented_lang_options,
845         target_switches, target_options): Likewise.
846         * tradcif.y (token, tokentab2, yylex): Likewise.
847         * tree.h (attribute_spec): Likewise.
848         
849         * alpha.c (override_options, alpha_lookup_xfloating_lib_func):
850         Likewise.
851         * arc.c (arc_output_function_epilogue): Likewise.
852         * arm.c (processors, all_cores, all_architectures,
853         arm_override_options, isr_attribute_arg, isr_attribute_args,
854         arm_isr_value): Likewise.
855         * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
856         Likewise.
857         * c4x.c (c4x_int_reglist): Likewise.
858         * d30v.c (override_options): Likewise.
859         * h8300.c (shift_insn): Likewise.
860         * i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
861         pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
862         ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
863         builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
864         ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
865         * i386.h (processor_costs, ix86_cost): Likewise.
866         * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
867         * m68hc11.h (processor_costs, m68hc11_cost): Likewise.
868         * m68k.c (codes_68881, codes_FPA): Likewise.
869         * m88k.c (mode_from_align, max_from_align, all_from_align,
870         best_from_align, m_options): Likewise.
871         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
872         * mcore.c (mode_from_align): Likewise.
873         * mips/elf64.h (UNIQUE_SECTION): Likewise.
874         * mips/iris6gld.h (UNIQUE_SECTION): Likewise.
875         * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
876         * mips.h (mips_regno_to_class): Likewise.
877         * ns32k.c (scales): Likewise.
878         * pa.c (import_string, magic_milli): Likewise.
879         * rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
880         * sparc.c (leaf_reg_remap, sparc_override_options,
881         reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
882         Likewise.
883         * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.
884
885 2001-10-07  Dale Johannesen  <dalej@apple.com>
886
887         * reload1.c (reload_reg_free_p): Teach register interference
888         checking that multiple output reloads are emitted in
889         reverse order.
890         reload1.c (reload_reg_reaches_end_p):  Ditto.
891         reload1.c (reloads_conflict):  Ditto.
892
893 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
894
895         * doc/c-tree.texi, doc/tm.texi: Consistently put NULL and
896         NULL_TREE inside @code.
897
898 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
899
900         * doc/gcc.texi: Document consistent style of "32-bit",
901         "Objective-C", and "@code{NULL}".
902
903 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
904
905         * cpplex.c (enum spell_type): Add SPELL_NUMBER.
906         (cpp_token_len, cpp_spell_token, cpp_output_token,
907         _cpp_equiv_tokens): Handle it.
908         * cpplib.h (TTYPE_TABLE): Use SPELL_NUMBER for CPP_NUMBER and
909         CPP_COMMENT, SPELL_NONE for CPP_PADDING and CPP_EOF.
910         * cppexp.c (_cpp_parse_expr): Use the correct operator code in
911         error messages.
912
913 Sat Oct  6 07:42:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
914
915         * gcc.c (default_compilers): Remove .ada.
916
917 2001-10-06  Neil Booth  <neil@daikokuya.demon.co.uk>
918
919         * doc/cppinternals.texi: Update.
920
921 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
922
923         * gcc.c (main): Set this_file_error if the appropriate
924         compiler for a language has not been installed.
925
926 2001-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
927  
928         * config/s390/s390.c (s390_va_arg): Use set_mem_alias_set.
929
930 2001-10-05  Joseph S. Myers  <jsm28@cam.ac.uk>
931
932         * gccbug.in (CATEGORIES): Add ada.
933
934 2001-10-05  Catherine Moore  <clm@redhat.com>
935
936         * config/stormy16/stormy-abi:  Document abi changes.
937         * config/stormy16/stormy16.h (REG_ALLOC_ORDER): Redefine.
938         (ICALL_REGS): New register class.
939         (NUM_ARGUMENT_REGISTERS): Now 6.
940         (DEFAULT_PCC_STRUCT_RETURN): Don't try to return structs
941         in registers.
942         (REG_CLASS_FROM_LETTER): Map 'z' to ICALL_REGS.
943         * config/stormy16.md (call_internal, call_value_internal,
944         indirect_jump): Use new 'z' constraint.
945
946 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
947
948         * doc/cppinternals.texi: Update.
949
950 2001-10-05  Richard Henderson  <rth@redhat.com>
951
952         * dwarf2out.c (FRAME_BEGIN_LABEL): New.
953         (output_call_frame_info): Use it instead of __FRAME_BEGIN__ and
954         the gas section-name-as-label feature.
955
956 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
957
958         * doc/cppinternals.texi: Update.
959
960 Fri Oct  5 08:17:46 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
961
962         * config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode
963         to ensure valid SImode constants.
964
965 2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
966
967         * Makefile.in (c-decl.o): Depend on tree-inline.h.
968         (c-lang.o): Likewise, as well as insn-config.h and integrate.h.
969         * c-decl.c: Include tree-inline.h.
970         (c_expand_body): Call optimize_inline_calls. Determine whether
971         a function is inlinable upfront, and only clear
972         DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't.
973         * c-lang.c: Include tree-inline.h, insn-config.h and integrate.h.
974         (c_disregard_inline_limits): New function.
975         (inline_forbidden_p, c_cannot_inline_tree_fn): Likewise.
976         (c_post_options): Enable tree inlining if inlining is enabled.
977         Don't inline trees when instrumenting functions.
978         (c_init): Initialize lang_disregard_inline_limits and
979         lang_cannot_inline_tree_fn.
980         * tree-inline.c (initialize_inlined_parameters): Handle calls
981         with fewer arguments than declared parameters, and fewer
982         parameters than passed arguments.  Don't assume value is a
983         DECL.
984         (declare_return_variable): Convert return value back to the
985         original type, if it was promoted.
986         (tree_inlinable_function_p): New function.
987         (inlinable_function_p): Don't look at DECL_INLINE if we're
988         inlining all functions.  Make it work with a NULL id.
989         Re-check DECL_UNINLINABLE after language-specific checks.
990         * tree-inline.h (tree_inlinable_function_p): Declare it.
991         * integrate.c (save_for_inline): Don't bother to prepare argvec
992         when not inlining.
993         * cse.c (check_for_label_ref): Don't check deleted labels.
994
995         * Makefile.in (tree-inline.o): Depend on newly-included headers.
996         * tree-inline.c: Include headers needed for the functions moved in.
997         (struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c.
998         (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
999         (copy_body, initialize_inlined_parameters): Likewise.
1000         (declare_return_variable, inlinable_function_p): Likewise.
1001         (expand_call_inline, expand_calls_inline): Likewise.
1002         (optimize_inline_calls, clone_body): Likewise.
1003         (walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c.
1004         (copy_tree_r, remap_save_expr): Likewise.
1005
1006 2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
1007
1008         * Makefile.in (OBJS): Added tree-inline.o.
1009         (c-common.o): Depend on tree-inline.h.
1010         (tree-inline.o): New target.
1011         * c-common.c: Include tree-inline.h.
1012         (c_mark_lang_decl): Don't mark saved_tree.
1013         (c_common_lang_init): Set lang_anon_aggr_type_p.
1014         * c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h.
1015         (struct c_lang_decl): Moved saved_tree to tree_decl.
1016         * ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs.
1017         * integrate.h (function_attribute_inlinable_p): Declare it.
1018         * integrate.c (function_attribute_inlinable_p): Export it.
1019         * tree-inline.c: New file.  Define variables declared in...
1020         * tree-inline.h: New file.  Declare functions to be moved to
1021         tree-inline.c.  Define macros and declare types and hooks for
1022         language-specific tree inlining.
1023         (flag_inline_trees): Moved definition from cp/decl2.c.
1024         * tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h.
1025         (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h.
1026         (struct tree_decl): Moved saved_tree from c_lang_decl and
1027         inlined_fns from C++'s lang_decl.
1028
1029 2001-10-04  Loren J. Rittle  <ljrittle@acm.org>
1030
1031         * Makefile.in (STAGE2_FLAGS_TO_PASS): Remove patches which
1032         propagated HOST_CC, HOST_CFLAGS, HOST_LDFLAGS and HOST_CPPFLAGS.
1033
1034 2001-10-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1035
1036         * doc/cppinternals.texi: Update.
1037
1038 2001-10-04  Eric Christopher  <echristo@redhat.com>
1039
1040         * config/mips/mips.c (init_cumulative_args): Remember to set
1041         cum->prototype.
1042         * config.gcc: Redo linux configuration. Add target_cpu_default
1043         of soft-float to all mipsisa32 combinations and tx39.
1044         * config/mips/linux.h: Remove include of mips.h.
1045
1046 2001-10-03  Loren J. Rittle  <ljrittle@acm.org>
1047
1048         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CFLAGS,
1049         HOST_LDFLAGS and HOST_CPPFLAGS.
1050
1051 2001-10-03  Ziemowit Laski  <zlaski@apple.com>
1052
1053         * c-parse.in (objc_inherit_code, objc_pq_context,
1054         objc_public_flag): Make static.
1055         (objc_interface_context, objc_implementation_context,
1056         objc_method_context, objc_ivar_chain, objc_ivar_context): Move to
1057         global tree array in objc/objc-act.[ch].
1058         (methoddef): Remove unnecessary code.
1059
1060         * objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry):
1061         Hoist struct definitions to objc-act.h.
1062         (nst_method_hash_list, cls_method_hash_list, imp_list, imp_count,
1063         cat_count): Place declaration in objc-act.h.
1064         (objc_tree_index): Move enumeration to objc-act.h.
1065         (objc_global_trees): Place declaration and macro accessors in
1066         objc-act.h.
1067         (implementation_context): Remove duplicate; use
1068         objc_implementation_context instead:
1069         (method_context): Remove duplicate; use objc_method_context
1070         instead.
1071         (objc_ellipsis_node, objc_method_prototype_template,
1072         implemented_classes, function_type): Move global vars to
1073         objc_global_trees.
1074         (init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE.
1075         (build_message_expr): Move actual construction of ObjC message
1076         send nodes to finish_message_expr.
1077         (finish_message_expr): New routine, contains code formerly in
1078         build_message_expr.
1079         * objc/objc-act.h (finish_message_expr): New prototype.
1080         (objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove
1081         declarations; these vars are now part of objc_global_trees.
1082         (objc_tree_index, objc_global_trees): Move definitions from
1083         objc-act.c.
1084         * objc/objc-tree.def: Update copyright info.
1085
1086 Wed Oct  3 12:22:11 EDT 2001  John Wehle  (john@feith.com)
1087
1088         * dwarf2asm.c (unaligned_integer_asm_op): Abort if
1089         op is NULL.
1090         * sparc/sysv4.h (UNALIGNED_DOUBLE_INT_ASM_OP): Use
1091         only if TARGET_ARCH64.
1092
1093 2001-10-02  Bernd Schmidt  <bernds@redhat.com>
1094
1095         * doc/extend.texi: Fix some problems with previous checkin.
1096         * doc/invoke.texi: Likewise.
1097
1098 2001-10-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1099
1100         * cpphash.h: Update comments.
1101         (cpp_context): Update.
1102         (spec_nodes): Remove n__Pragma.
1103         * cppinit.c (cpp_create_reader): Update.
1104         (builtin_array): Add _Pragma.
1105         * cpplib.h: Update comments.
1106         (NODE_DISABLED, BT_PRAGMA): New.
1107         (cpp_start_lookahead, cpp_stop_lookahead): Remove prototypes.
1108         * cppmacro.c (struct cpp_macro): Remove disabled.
1109         (builtin_macro): Return int, handle _Pragma, push the new token
1110         on the context stack.
1111         (funlike_invocation_p): Unconstify, update.
1112         (enter_macro_context): Handle builtins here.
1113         (replace_args, push_token_context, push_ptoken_context):
1114         Update for prototype changes.
1115         (_cpp_pop_context): Update.
1116         (cpp_get_token): Don't handle buitins, nor _Pragma here.
1117         (cpp_sys_macro_p): Update.
1118         (_cpp_free_definition): Clear disabled flag.
1119         (_cpp_create_definition): Upate.
1120         * cppmain.c: Update comments.
1121
1122 Tue Oct  2 12:46:01 CEST 2001  Bo Thorsen     <bo@suse.co.uk>,
1123                                Andreas Jaeger <aj@suse.de>,
1124                                Jan Hubicka    <jh@suse.cz>
1125
1126         * doc/invoke.texi (i386 Options): Document x86-64 options.
1127         (i386 and x86-64 Options): Rename i386 options section.
1128
1129         * config/i386/i386.h (TARGET_UNWIND_INFO): New.
1130         (TARGET_SWITCHES): Add -munwind-info.
1131         (MASK_NO_UNWIND_INFO): New.
1132         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define for
1133         biarch compilation.
1134         (ASM_OUTPUT_DOUBLE_INT): New.
1135
1136         * config/i386/linux64.h: New spec file for Linux x86-64 support.
1137         * config.gcc: Fix tm_file settings for x86-64.
1138         * config/i386/x86-64.h: New file with OS independent x86-64
1139         definitions.
1140         * config/i386/biarch64.h: New file used to configure compiler
1141         to biarch/64bit compilation.
1142
1143         * config/i386/i386.c: (override_options): Set flags default
1144         for 64bit compilation.
1145
1146 Tue Oct  2 12:46:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
1147
1148         * i386.c (legitimize_pic_address): Add missing bits of 64bit support.
1149         (ix86_expand_int_movcc): Optimize DImode conditional moves with
1150         constants on x86_64.
1151         (ix86_attr_length_immediate_default): Support MODE_DI.
1152         * i386.md (fixdi splitter): Add missing "&& 1" in splitter
1153         condition.
1154         (indirect_jump, tablejump): Turn into expander.
1155
1156 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
1157
1158         * c-common.c (c_format_attribute_table): Make format and
1159         format_arg attributes apply to function types rather than to
1160         decls.
1161         (is_valid_printf_arglist): Construct an attribute list and pass
1162         that to check_function_format rather than a name.
1163         * c-common.h (check_function_format): Adjust prototype.
1164         * c-decl.c (duplicate_decls): Preserve attributes from type of
1165         built-in decl when allowing for harmless conflict in types.
1166         * c-format.c (record_function_format,
1167         record_international_format, function_format_list,
1168         international_format_info, international_format_list): Remove.
1169         (function_format_info): Remove next, name and assembler_name.
1170         Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
1171         (decode_format_attr): New.
1172         (handle_format_attribute): Handle receiving a type rather than a
1173         decl.  Call decode_format_attr.  Store format information in a
1174         function_format_info.
1175         (handle_format_arg_attribute): Correct comment.  Handle receiving
1176         a type rather than a decl.  Use unsigned HOST_WIDE_INT for
1177         arg_num.
1178         (check_format_info_recurse, check_format_info_main): Take argument
1179         numbers as unsigned HOST_WIDE_INT.
1180         (check_function_format): Take a list of attributes from the
1181         function type rather than a name or assembler name.  Check for
1182         format attributes in that list and the attributes on the type of
1183         the current function rather than looking through
1184         function_format_list.
1185         (check_format_info): Use unsigned HOST_WIDE_INT for argument
1186         numbers.
1187         (check_format_info_recurse): Take format_arg attributes from the
1188         type of the function calls rather than using
1189         international_format_list.  Allow for multiple format_arg
1190         attributes.
1191         * c-typeck.c (build_function_call): Pass type attributes to
1192         check_function_format rather than name or assembler name.  Don't
1193         require there to be a name or assembler name to check formats.
1194
1195 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
1196
1197         * attribs.c (decl_attributes): Possibly call
1198         insert_default_attributes to insert default attributes on
1199         functions in a lazy manner.
1200         * builtin-attrs.def: New file; define the default format and
1201         format_arg attributes.
1202         * c-common.c (c_format_attribute_table): Move to earlier in the
1203         file.
1204         (c_common_nodes_and_builtins): Initialize format_attribute_table.
1205         (enum built_in_attribute, built_in_attributes,
1206         c_attrs_initialized, c_init_attributes,
1207         c_common_insert_default_attributes): New.
1208         (c_common_lang_init): Don't initialize format_attribute_table.  Do
1209         call c_init_attributes.
1210         * Makefile.in (c-common.o): Depend on builtin-attrs.def.
1211         * c-common.h (init_function_format_info): Don't declare.
1212         (c_common_insert_default_attributes): Declare.
1213         * c-decl.c (implicitly_declare, builtin_function): Call
1214         decl_attributes.
1215         (init_decl_processing): Don't call init_function_format_info.
1216         (insert_default_attributes): New.
1217         * c-format.c (handle_format_attribute,
1218         handle_format_arg_attribute): Be quiet about inappropriate
1219         declaration when applying default attributes.
1220         (init_function_format_info): Remove.
1221         * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
1222         (insert_default_attributes): Declare.
1223
1224 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
1225
1226         * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94.
1227
1228 2001-10-01  Jim Wilson  <wilson@redhat.com>
1229
1230         * sched-deps.c (add_dependence): When elide conditional dependence,
1231         check that insn doesn't modify cond2.
1232
1233 2001-10-01  Dale Johannesen  <dalej@apple.com>
1234
1235         * config/rs6000/rs6000.h (enum processor_type): Add support
1236         for 7400 (G4) and 7450.
1237         (RTX_COSTS): Ditto.
1238         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
1239         (rs6000_issue_rate): Ditto.
1240         (rs6000_adjust_cost): Fix cycle counts for compares.
1241         (debug_stack_info):  Fix an obvious typo.
1242         * config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
1243         * doc/invoke.texi: Document.
1244         * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
1245         for Darwin.
1246         (PROCESSOR_DEFAULT): Ditto.
1247
1248 2001-10-01  Loren J. Rittle  <ljrittle@acm.org>
1249
1250         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
1251         (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
1252         later recursive make invocation.
1253
1254 2001-10-01  Hans Boehm  <boehm@acm.org>
1255
1256         * optabs.c (emit_libcall_block): When using non-call exceptions,
1257         don't add REG_LIBCALL reg notes to trapping calls.
1258
1259 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
1260
1261         * flow.c (propagate_block_delete_libcall): Remove unused first arg
1262         (propagate_one_insn):  Update for above change
1263
1264 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
1265
1266         * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase,
1267         _Unwind_GetTextRelBase): Argument is unused.
1268
1269 Mon Oct  1 19:20:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1270
1271         * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
1272         Loop through NOPs, placeholders, and components.
1273         Don't go through NOPs if change mode.
1274         (record_alias_subset): Do nothing if SUBSET and SET are the same.
1275         * emit-rtl.c (set_mem_alias_set): Enable check.
1276         * expr.c (find_placeholder): New function.
1277         (expand_expr, case PLACEHOLDER_EXPR): Use it.
1278         (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
1279         to modify it and avoid unneeded copies.
1280         * expr.h (expand_expr): Always define.
1281         (find_placeholder): New declaration.
1282
1283 2001-10-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1284
1285         * config/m68hc11/m68hc11.md ("add-split"): Fix add split when
1286         operand 2 is the stack pointer.
1287         ("addr-peephole"): Fix address computation peephole when operand 2
1288         is the stack pointer.
1289
1290 Mon Oct  1 09:26:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1291
1292         * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.
1293         (ix86_setup_incoming_varargs): Likewise.
1294
1295 2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
1296
1297         * stor-layout.c (layout_type): Don't complain about too-large
1298         array here.
1299
1300 Mon Oct  1 06:43:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1301
1302         * function.c (keep_stack_depressed): Don't use delete_insn.
1303
1304         * expr.h (set_mem_alias_set): Move decl to here.
1305         * rtl.h (mem_attrs): New typedef and struct.
1306         (union rtunion_def): Add field for mem_attrs.
1307         (X0MEMATTR, MEM_ATTRS): New macros.
1308         (MEM_ALIAS_SET): Use MEM_ATTRS.
1309         (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
1310         (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
1311         (set_mem_alias_set): Delete decl from here.
1312
1313         * alias.c (set_mem_alias_set): Delete from here.
1314         * emit-rtl.c (mem_attrs_htab): New variable.
1315         (rtx_htab_mark, rtx_htab_mark_1): Deleted.
1316         (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
1317         (mem_attrs_mark, get_mem_attrs): Likewise.
1318         (gen_rtx_MEM): Clear MEM_ATTRS.
1319         (set_mem_attributes): Move to here.
1320         (set_mem_alias_set): Likewise, and call get_mem_attrs.
1321         (init_emit_once): const_int_htab now deletable htab.
1322         Initialize mem_attrs_htab.
1323         * explow.c (set_mem_attributes): Delete from here.
1324         * function.c (put_var_into_stack): Clear MEM_ATTRS.
1325         (gen_mem_addressof): Likewise; rework to use set_mem_attributes.
1326         * ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
1327         * reload1.c (reload): Rework changing REG to MEM.
1328
1329 2001-09-30  H.J. Lu <hjl@gnu.org>
1330
1331         * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
1332         * config.in: Rebuild.
1333
1334 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1335
1336         * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
1337         ("tsthi_1"): Avoid allocation in register y.
1338         ("*movqi_68hc12"): Reorganize and fix constraints.
1339         ("zero_extendqisi2"): Prefer d over x and y for operand 1.
1340         ("addqi3"): Likewise.
1341         ("addhi3"): Fix constraints.
1342         ("*logicalhi3_zexthi"): Disparage soft registers.
1343
1344 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1345
1346         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
1347         to tmp reg.
1348
1349 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1350
1351         * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
1352         that we use setjmp/longjmp exceptions.
1353
1354 2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
1355
1356         * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
1357         POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
1358         struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
1359         _cpp_pool_alloc, _cpp_next_chunk): Remove.
1360         (_cpp_extend_buff, BUFF_ROOM): Update.
1361         (_cpp_append_extend_buff): New.
1362         (struct cpp_reader): Remove macro_pool, add a_buff.
1363         * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
1364         macro_pool.
1365         (cpp_destroy): Free a_buff instead of macro_pool.
1366         * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
1367         new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
1368         _cpp_pool_alloc, ): Remove.
1369         (parse_number, parse_string): Update use of _cpp_extend_buff.
1370         (_cpp_extend_buff): Update.
1371         (_cpp_append_extend_buff, cpp_aligned_alloc): New.
1372         * cpplib.c (glue_header_name, parse_answer):
1373         Update use of _cpp_extend_buff.
1374         (cpp_register_pragma, cpp_register_pragma_space): Use
1375         _cpp_aligned_alloc.
1376         (do_assert, do_unassert): Check for EOL, update.
1377         * cppmacro.c (stringify_arg, collect_args): Update to use
1378         _cpp_extend_buff and _cpp_append_extend_buff.
1379         (save_parameter, parse_params, alloc_expansion_token,
1380         _cpp_create_definition): Rework memory management.
1381
1382 2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
1383
1384         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
1385         update md_exec_prefix.
1386         (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
1387         to string constant.
1388
1389 2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
1390
1391         * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
1392         (SELECT_CC_MODE): Use s390_select_ccmode.
1393         * config/s390/s390-protos.h (s390_select_ccmode): Add.
1394         * config/s390/s390.c (s390_select_ccmode): New.
1395         (s390_match_ccmode): Add CCLmode.
1396         (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
1397         (output_branch_condition, output_inverse_branch_condition): Removed.
1398         (print_operand): Use s390_branch_condition_mnemonic.
1399         * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
1400         subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
1401         (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
1402
1403         * config/s390/s390.c (check_and_change_labels): Preserve CC mode
1404         when converting conditional branches to far branches.
1405         * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
1406         cmpint_di): Use CCSmode instead of CCUmode.
1407
1408         * config/s390/s390.c (legitimate_la_operand_p): New.
1409         * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
1410         * config/s390/s390.md (movsi): Convert load address patterns to
1411         arithmetic operations when necessary.
1412         (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
1413         (do_la): Renamed to *do_la and use legitimate_la_operand_p.
1414         (*do_la_reg_0): Don't use before reload.
1415
1416         * config/s390/s390.c (legitimize_address): Make more efficient
1417         use of two-register addressing mode.
1418
1419         * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
1420         with -mno-backchain in some corner cases.
1421
1422         * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
1423
1424 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
1425
1426         * reload.c (find_reloads): Mark new USE insns with QImode.
1427         (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
1428         find_reloads_subreg_address): Likewise.
1429         * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
1430         encountered.
1431         * reload1.c (reload_combine_note_use): Likewise, inside USEs and
1432         CLOBBERs.
1433         (reload): Make sure there are no USEs with mode other than
1434         VOIDmode.  At the end, remove those marked with QImode.
1435
1436 2001-09-29  Per Bothner  <per@bothner.com>
1437
1438         * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
1439         * Makefile.in (includedir):  Rename to local_includedir.
1440         (includedir):  Define as $(prefix)/include.
1441         * config.in (PREFIX_INCLUDE_DIR):  New variable.
1442         * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
1443
1444 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
1445
1446         * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
1447         storehps builtins.
1448         * doc/extend.texi (Vector Extensions): New node.
1449         * doc/invoke.texi (Machine Dependent Options): Add documentation for
1450         i386 -mmmx, -msse, -m3dnow.
1451
1452 Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
1453
1454         * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
1455
1456 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
1457
1458         * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
1459
1460         * doc/invoke.texi (Optimize Options): Delete spurious @table.
1461
1462 2001-09-28  Richard Henderson  <rth@redhat.com>
1463
1464         * varasm.c (assemble_integer): Bound alignment check by
1465         BIGGEST_ALIGNMENT.
1466
1467         * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
1468
1469 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1470
1471         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
1472
1473 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
1474
1475         Mostly from Graham Stott  <grahams@redhat.com>
1476         * c-common.c (type_for_mode): Add support for V2SFmode.
1477         * tree.c (build_common_tree_nodes_2): Likewise.
1478         * tree.h (enum tree_index, global_trees): Likewise.
1479         * config/i386/i386.c (x86_3dnow_a): New variable.
1480         (override_options): Support 3Dnow extensions.
1481         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
1482         Athlon's version of 3Dnow.
1483         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
1484         (ix86_expand_builtin): Handle them.
1485         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
1486         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
1487         TARGET_3DNOW_A): New macros.
1488         (TARGET_SWITCHES): Add 3Dnow switches.
1489         (VALID_MMX_REG_MODE_3DNOW): New macro.
1490         (VECTOR_MODE_SUPPORTED_P): Use it.
1491         (enum ix86_builtins): Add entries for 3Dnow builtins.
1492         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
1493         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
1494         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
1495         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
1496         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
1497         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
1498         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
1499         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
1500         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
1501         sfence_insn, prefetch): Make these available if TARGET_SSE or
1502         TARGET_3DNOW_A.
1503
1504 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
1505
1506         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
1507         ix86_va_start, ix86_build_va_list): Declare.
1508         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
1509         ix86_va_start, ix86_build_va_list): New global functions.
1510         * i386.md (sse_prologue_save_insn): New insn.
1511         (sse_prologue_save): New expander.
1512         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
1513         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
1514
1515 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
1516
1517         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
1518         Use size_t everywhere, make definitions consistent with
1519         prototypes.
1520
1521 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
1522
1523         * gcse.c (replace_store_insn): Use delete_insn.
1524         * loop.c (move_movables): Likewise; avoid delete_insn
1525         from clobbering notes moved elsewhere.
1526         (check_dbra_loop): Use delete_insn.
1527         * ssa.c (convert_from_ssa): Likewise.
1528         * cse.c (cse_insn): Use delete_insn.
1529
1530 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
1531
1532         * cpphash.h (struct cpp_buff): Make unsigned.
1533         (_cpp_get_buff): Take length of size_t.
1534         (_cpp_unaligned_alloc): New.
1535         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
1536         (struct cpp_reader): Remove ident_pool.  Add u_buff.
1537         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
1538         (cpp_destroy): Destroy u_buff, not ident_pool.
1539         * cpplex.c (parse_number, parse_string, save_comment,
1540         cpp_token_as_text): Update to use the unaligned buffer.
1541         (new_buff): Make unsigned.
1542         (_cpp_unaligned_alloc): New.
1543         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
1544         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
1545         Similarly.
1546         (collect_args): Make unsigned.
1547
1548 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
1549
1550         * cpplex.c (cpp_output_token): Use a putc loop for
1551         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
1552
1553         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
1554         * configure, config.in: Regenerate.
1555         * system.h: Replace fwrite and fprintf with their unlocked
1556         variants if available.
1557
1558 2001-09-27  Richard Henderson  <rth@redhat.com>
1559
1560         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
1561         in favour of .eh_frame.
1562
1563 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
1564
1565         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
1566         to macros.
1567         (LIBCALL_VALUE): Likewise.
1568
1569 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1570
1571         * cpphash.h: Update comment.
1572         * cpplex.c: Update comments.
1573         (_cpp_can_paste): Remove.
1574         * cpplib.h (_cpp_can_paste): Remove.
1575         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
1576         lexer rather than _cpp_can_paste.
1577
1578 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1579
1580         * doc/cppinternals.texi: Update.
1581
1582 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
1583
1584         * cpphash.h (struct cpp_pool): Remove locks and locked.
1585         (struct cpp_context): Add member buff.
1586         (struct cpp_reader): Remove member argument_pool.
1587         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
1588         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
1589         * cpplex.c (chunk_suitable): Remove pool argument.
1590         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
1591         (new_buff, _cpp_extend_buff): Update.
1592         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
1593         which buffer is returned.
1594         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
1595         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
1596         * cppmacro.c (lock_pools, unlock_pools): Remove.
1597         (push_ptoken_context): Take a _cpp_buff.
1598         (enter_macro_context): Pool locking removed.
1599         (replace_args): Use a _cpp_buff for the replacement list with
1600         arguments replaced.
1601         (push_token_context): Clear buff.
1602         (expand_arg): Use _cpp_pop_context.
1603         (_cpp_pop_context): Free a context's buffer, if any.
1604
1605 2001-09-26  DJ Delorie  <dj@redhat.com>
1606
1607         * c-typeck.c (digest_init): Check for sizeless arrays.
1608
1609 2001-09-26  Richard Henderson  <rth@redhat.com>
1610
1611         * optabs.c (init_one_libfunc): Create a dummy function type
1612         instead of using error_mark_node.
1613
1614 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
1615
1616         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
1617         _cpp_extend_buff, _cpp_free_buff): New.
1618         (struct cpp_reader): New member free_buffs.
1619         * cppinit.c (cpp_destroy): Free buffers.
1620         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
1621         _cpp_extend_buff, _cpp_free_buff): New.
1622         * cpplib.h (struct cpp_options): Remove unused member.
1623         * cppmacro.c (collect_args): New.  Combines the old parse_arg
1624         and parse_args.  Use _cpp_buff for memory allocation.
1625         (funlike_invocation_p, replace_args): Update.
1626
1627 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
1628
1629         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
1630
1631 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
1632
1633         * except.c (sjlj_mark_call_sites): Change address inside sequence.
1634
1635 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
1636
1637         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
1638         glibc.
1639
1640 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
1641             Jim Wilson  <wilson@redhat.com>
1642
1643         * doc/install.texi (Specific, ia64-*-linux): Document.
1644
1645 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
1646
1647         * Makefile.in (cfgrtl.o): Add.
1648         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
1649         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
1650         free_aux_for_edge): Declare.
1651         * cfg.c
1652         (HAVE_return): Undefine.
1653         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
1654         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
1655         free_aux_for_edge): New global functions.
1656         (first_delete_block): New static variable.
1657         (init_flow): Clear first_delete_block.
1658         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
1659          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
1660          try_redirect_by_replacing_jump, last_loop_beg_note,
1661          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
1662          delete_insn, delete_insn_chain, create_basic_block_structure,
1663          create_basic_block, flow_delete_block, compute_bb_for_insn,
1664          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
1665          set_block_for_new_insns, split_block, merge_blocks_nomove,
1666          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
1667          redirect_edge_and_branch, force_nonfallthru_and_redirect,
1668          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
1669          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
1670          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
1671          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
1672          purge_all_dead_edges): Move to ....
1673         * cfgrtl.c: New file; .... Here.
1674
1675         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
1676         (reroder_basic_block): Use alloc_aux_for_blocks.
1677         * predict.c (estimate_bb_frequencies): Likewise; use
1678         alloc_aux_for_edges.
1679         * profile.c (compute_branch_probabilities): Likewise.
1680         (branch_prob): Likewise.
1681         * reg-stack.c (reg_to_stack): Likewise.
1682
1683         * emit-rtl.c (emit_insns_after): Never return NULL.
1684
1685         * basic-block.h (set_block_for_new_insns): Delete.
1686         * cfgrtl.c (set_block_for_new_insns): Delete.
1687
1688         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
1689         calls when crossjumping.
1690
1691         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
1692         * unroll.c (copy_loop_body): Use delete_insn.
1693
1694         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
1695         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
1696         keep_stack_depressed): Likewise.
1697         * gcse.c (cprop_cc0_jump): Likewise.
1698         * local-alloc.c (update_equiv_regs): Likewise.
1699         * loop.c (scan_loop, loop_delete_insns): Likewise.
1700         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
1701         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
1702         delete_output_reload, delete_address_reloads_1,
1703         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
1704         Likewise.
1705         * sibcall.c (replace_call_placeholder): Likewise.
1706         * cse.c (cse_insn): Likewise.
1707
1708 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
1709
1710         From Graham Stott  <grahams@redhat.com>
1711         (def_builtin): Only define builtins appropriate for target_flags.  All
1712         callers changed.
1713         (builtin_decsription): Add new field mask which is used to determine
1714         when to define the builtin via the macro def_builtin.
1715
1716         (bdesc_comi): Initialise new mask fields.
1717         (bdesc_2srg): Likewise.
1718         (bdesc_1arg): Likewise.
1719
1720         * config/i386/i386.c (ix86_init_builtins): Correct return type
1721         building v4hi_ftype_v4hi_int_int tree node.
1722         (ix86_expand_sse_comi): Fix typo swapping operands.
1723         Don't swap comparision condition, it is already swapped.
1724         (ix86_expand_sse_compare): Before swapping operands
1725         move operand 1 into new rtx and not the target rtx.
1726         Don't swap comparison condition, it is already swapped.
1727         Always check whether we need to create a new TARGET.
1728
1729         * config/i386/i386.md: (sse_comi) Fix typos.
1730         (sse_ucomi): Likewise.
1731         (cvtss2si): Fix operand 0 contraint.
1732         (cvttss2si): Likewise.
1733         (sse_unpckhps): Fix mode for operand 2.
1734         (sse_unpcklps): Likewise.
1735
1736 2001-09-25  Graham Stott  <grahams@redhat.com>
1737
1738         * sibcall.c (skip_copy_to_return_value): Tighten return value
1739         copy check.
1740
1741 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
1742
1743         * rs6000.c (lwa_operand): Address must be word aligned.
1744
1745 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1746
1747         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
1748         number has been set.
1749         (type_hash_mark): Mark type itself.
1750
1751 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1752
1753         * c-lex.c (cb_def_pragma): Update.
1754         (c_lex): Update, and skip padding.
1755         * cppexp.c (lex, parse_defined): Update, remove unused variable.
1756         * cpphash.h (struct toklist): Delete.
1757         (union utoken): New.
1758         (struct cpp_context): Update.
1759         (struct cpp_reader): New members eof, avoid_paste.
1760         (_cpp_temp_token): New.
1761         * cppinit.c (cpp_create_reader): Update.
1762         * cpplex.c (_cpp_temp_token): New.
1763         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
1764         (cpp_output_token): Don't print leading whitespace.
1765         (cpp_output_line): Update.
1766         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
1767         do_include_common, do_line, do_ident, do_pragma,
1768         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
1769         parse_assertion): Update.
1770         (get_token_no_padding): New.
1771         * cpplib.h (CPP_PADDING): New.
1772         (AVOID_LPASTE): Delete.
1773         (struct cpp_token): New union member source.
1774         (cpp_get_token): Update.
1775         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
1776         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
1777         replace_args, quote_string, stringify_arg, parse_arg, next_context,
1778         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
1779         _cpp_backup_tokens, _cpp_create_definition): Update.
1780         (push_arg_context): Delete.
1781         (padding_token, push_token_context, push_ptoken_context): New.
1782         (make_string_token, make_number_token): Update, rename.
1783         (cpp_get_token): Update to handle tokens as pointers to const,
1784         and insert padding appropriately.
1785         * cppmain.c (struct printer): New member prev.
1786         (check_multiline_token): Constify.
1787         (do_preprocessing, cb_line_change): Update.
1788         (scan_translation_unit): Update to handle spacing.
1789         * scan-decls.c (get_a_token): New.
1790         (skip_to_closing_brace, scan_decls): Update.
1791         * fix-header.c (read_scan_file): Update.
1792
1793         * doc/cpp.texi: Update.
1794
1795 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1796
1797         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
1798         leak by passing malloc'ed pointer to reconcat, not concat.
1799
1800 2001-09-24  DJ Delorie  <dj@redhat.com>
1801
1802         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
1803
1804 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
1805
1806         * flow.c (delete_dead_jumptables): Delete jumptable if the only
1807         reference is from the literal pool.
1808
1809 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
1810
1811         * doc/install.texi (Final install): Request additional information
1812         in mail about successful builds.
1813
1814 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1815
1816         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
1817         initial value of return pointer register instead of value in frame-20.
1818         Revise comments.
1819
1820 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1821
1822         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
1823         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
1824         the libcall if there isn't a referenced identifier for the symbol.
1825
1826 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1827
1828         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
1829         non 64-bit machines.  Use these as a plabel for the trampoline.
1830         (TRAMPOLINE_SIZE): Adjust size for new words.
1831         (INITIALIZE_TRAMPOLINE): Initialize new words.
1832         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
1833         pointer to the plabel in the trampoline.
1834
1835 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1836
1837         * pa.c (function_arg): Pass floating arguments in both general and
1838         floating registers in indirect (dynamic) calls when generating code
1839         for the 32 bit ABI and the HP assembler.
1840
1841 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1842
1843         * doc/install.texi: Markup fixes.
1844         Use Solaris 2, SunOS 4 as appropriate.
1845         (Specific, *-*-solaris2*): Explain this.
1846         Unconditionally warn against /usr/ucb tools.
1847         Remove Sun as warning, obsolete.
1848         Move X11 header bug workaround here, update patches.
1849         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
1850         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
1851
1852 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
1853
1854         * errors.h (warning, error, fatal, internal_error): Don't mark
1855         with ATTRIBUTE_PRINTF_n.
1856         * toplev.h (internal_error, fatal_io_error, warning, error,
1857         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
1858         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
1859         Likewise.
1860
1861 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1862
1863         * function.c (pop_function_context_from): var_refs_queue
1864         and temp slots now in GC memory.
1865         (mark_function_status, free_after_compilation): Likewise;
1866         also struct function now in GC memory.
1867         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
1868         (combine_temp_slots): Likewise.
1869         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
1870         (prepare_function_start): Use GC memory for struct function.
1871         (mark_temp_slot): Deleted.
1872         (gcc_mark_struct_function): struct function now in GC memory.
1873
1874         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
1875         code for division, not modulus.
1876
1877         * rtl.def (MEM): Remove obsolete part of comment.
1878
1879 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
1880
1881         * c-format.c (init_function_format_info): Check __builtin_printf
1882         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
1883         in gnu89 mode.
1884
1885 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1886
1887         * c-common.c (format_attribute_table): Remove decl.
1888         * tree.h (format_attribute_table, lang_attribute_table): New decls.
1889         (lang_attribute_common): Likewise.
1890
1891         * function.c (fix_lexical_address): Use set_mem_alias_set.
1892         (expand_function_start): Likewise.
1893         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
1894
1895         * varasm.c (output_constant): Fix unused variable warning.
1896
1897         * attribs.c: New file, from c-common.c.
1898         (attribute_tables): Now four elements.
1899         (format_attribute_table, lang_attribute_common): New variables.
1900         (init_attributes): Reflect above changes.
1901         (handle_mode_attribute): Delete check for wider than uintmax.
1902         * c-common.c: Delete parts moved to attribs.c.
1903         (enum attrs): Deleted; unused.
1904         (c_format_attribute_table): New variable.
1905         (c_common_lang_init): Initialize format_attribute_table with it.
1906         * c-common.h (decl_attributes): Remove decl.
1907         * tree.h (decl_attribute): Move it to here.
1908         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
1909         (attribs.o): New rule.
1910
1911 2001-09-22  Andreas Jaeger  <aj@suse.de>
1912
1913         * builtins.c (c_getstr): Remove unused variable.
1914
1915 2001-09-21  Richard Henderson  <rth@redhat.com>
1916
1917         * reload1.c (reload): Use delete_insn instead of splatting
1918         NOTE_INSN_DELETED.
1919
1920 2001-09-21  Richard Henderson  <rth@redhat.com>
1921
1922         * reload.c (push_secondary_reload): Don't check for "=" in output
1923         constraint after ""->ALL_REGS check.
1924
1925 2001-09-21  Richard Henderson  <rth@redhat.com>
1926
1927         * predict.c (expected_value_to_br_prob): Use pc_set.
1928
1929         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
1930         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
1931
1932 2001-09-21  Richard Henderson  <rth@redhat.com>
1933
1934         * rtl.h (LCT_RETURNS_TWICE): New.
1935         * calls.c (emit_call_1): Set current_function_calls_setjmp for
1936         ECF_RETURNS_TWICE.
1937         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
1938         to ECF_RETURNS_TWICE.
1939         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
1940         call to setjmp.
1941
1942         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
1943
1944         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
1945         (JMP_BUF_SIZE): New.
1946
1947 2001-09-21  Richard Henderson  <rth@redhat.com>
1948
1949         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
1950         to R8_REGS.
1951
1952 2001-09-21  Richard Henderson  <rth@redhat.com>
1953
1954         * tree.def (FDESC_EXPR): New.
1955         * expr.c (expand_expr): Handle it.
1956         * varasm.c (initializer_constant_valid_p): Likewise.
1957         (output_constant): Likewise.
1958         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
1959         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
1960         (ASM_OUTPUT_FDESC): New.
1961         * doc/tm.texi: Document the new macros.
1962
1963 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
1964
1965         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
1966         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
1967         once merging is complete.
1968
1969 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1970
1971         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
1972
1973 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
1974
1975         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
1976         that would be invalid after a merge.
1977
1978 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
1979
1980         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
1981         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
1982         remove some labels.
1983         (flow_delete_insn): This one.
1984         (delete_insn_chain): Rename from ...; do not care labels.
1985         (flow_delete_insn_chain): ... this one.
1986         (flow_delete_block): Remove the insns one BB has been expunged.
1987         (merge_blocks_nomove): Likewise.
1988         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
1989         updating BB boundaries.
1990         (tidy_fallthru_edge): Likewise.
1991         (commit_one_edge_insertion): Likewise.
1992         * cfgbuild.c (find_basic_block): Likewise.
1993         (find_basic_blocks_1): Likewise.
1994         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
1995         (try_crossjump_to_edge): Likewise.
1996         (try_optimize_cfg): Likewise.
1997         * cse.c (delete_trivially_dead_insns): Likewise.
1998         * df.c (df_insn_delete): Likewise.
1999         * doloop.c (doloop_modify): Use delete_related_insns.
2000         * emit-rtl.c (try_split): Likewise.
2001         (remove_insn): Update BB boundaries.
2002         * expect.c (connect_post_landing_pads): Use delete_related_insns.
2003         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
2004         updating BB boundaries.
2005         (propagate_block_delete_insn): Likewise.
2006         (propagate_block_delete_libcall): Likewise.
2007         * function.c (delete_handlers): Use delete_related_insns.
2008         (thread_prologue_and_epilogue_insns): Likewise.
2009         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
2010         * genpeep.c (gen_peephole): Use delete_related_insns.
2011         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
2012         BB boundaries.
2013         (find_cond_trap): Likewise.
2014         * integrate.c (save_for_inline): Use delete_related_insns.
2015         (copy_insn_list): Likewise.
2016         * jump.c (pruge_linie_number_notes): Likewise.
2017         (duplicate_loop_exit_test): Likewise.
2018         (delete_computation): Likewise.
2019         (delete_related_insn): Rename from ...; use delete_insn
2020         (delete_insn): ... this one.
2021         (redirect_jump): Use delete_related_insns.
2022         * loop.c (scan_loop): Likewise.
2023         (move_movables): Likewise.
2024         (find_and_verify_loops): Likewise.
2025         (check_dbra_loop): Likewise.
2026         * recog.c (peephole2_optimize): Likewise.
2027         * reg-stack.c (delete_insn_for_stacker): Remove.
2028         (move_for_stack_reg): Use delete_insn.
2029         * regmove.c (combine_stack_adjustments_for_block): Likewise.
2030         * reload1.c (delete_address_reloads): Use delete_related_insns.
2031         (fixup_abnormal_edges): Use delete_insn.
2032         * recog.c (emit_delay_sequence): Use delete_related_insns.
2033         (delete_from-delay_slot): Likewise.
2034         (delete_scheduled_jump): likewise.
2035         (optimize_skip): Likewise.
2036         (try_merge_delay_insns): Likewise.
2037         (full_simple_delay_slots): Likewise.
2038         (fill_slots_from_thread): Likewise.
2039         (relax_delay_slots): Likewise.
2040         (make_return_insns): Likewise.
2041         (dbr_schedule): Likewise.
2042         * rtl.h (delete_insn): Rename to delete_related_insns.
2043         (delete_insn, delete_insn_chain): New prototypes.
2044         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
2045         by df_insn_delete already.
2046         * ssa-dce.c (delete_insn_bb): Use delete_insn.
2047         * ssa.c (convert_from_ssa): Use delete_related_insns.
2048         * unroll.c (unroll_loop): Likewise.
2049         (calculate_giv_inc): Likewise.
2050         (copy_loop_body): Likewise.
2051
2052         * i386-protos.h (ix86_libcall_value, ix86_function_value,
2053         ix86_function_arg_regno_p, ix86_function_arg_boundary,
2054         ix86_return_in_memory, ix86_function_value): Declare.
2055         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
2056         new static valurables.
2057         (x86_64_reg_class): New enum
2058         (x86_64_reg_class_name): New array.
2059         (classify_argument, examine_argument, construct_container,
2060          merge_classes): New static functions.
2061         (optimization_options): Enable flag_omit_frame_pointer and disable
2062         flag_pcc_struct_return on 64bit.
2063         (ix86_libcall_value, ix86_function_value,
2064         ix86_function_arg_regno_p, ix86_function_arg_boundary,
2065         ix86_return_in_memory, ix86_function_value): New global functions.
2066         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
2067         (function_arg_advance): Handle x86_64 passing conventions.
2068         (function_arg): Likewise.
2069         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
2070         (RETURN_IN_MEMORY): Move offline.
2071         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
2072         (FUNCTION_VALUE_REGNO_P): New macro.
2073         (FUNCTION_ARG_REGNO_P): Move offline.
2074         (struct ix86_args): Add maybe_vaarg.
2075         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
2076         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
2077
2078 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
2079
2080         * s390.md: Changed attributes for scheduling.
2081         * s390.c: (s390_adjust_cost, s390_adjust_priority)
2082         Changed scheduling
2083
2084 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
2085
2086         Table-driven attributes.
2087         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
2088         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
2089         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
2090         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
2091         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
2092         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
2093         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
2094         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
2095         * tree.h (struct tree_decl): Change machine_attributes to
2096         attributes.
2097         * doc/c-tree.texi: Document that all attributes are now attached
2098         to decls and types.
2099         * c-common.c (add_attribute, attrtab, attrtab_idx,
2100         default_valid_lang_attribute, valid_lang_attribute): Remove.
2101         (attribute_tables, attributes_initialized,
2102         c_common_attribute_table, default_lang_attribute_table): New
2103         variables.
2104         (handle_packed_attribute, handle_nocommon_attribute,
2105         handle_common_attribute, handle_noreturn_attribute,
2106         handle_unused_attribute, handle_const_attribute,
2107         handle_transparent_union_attribute, handle_constructor_attribute,
2108         handle_destructor_attribute, handle_mode_attribute,
2109         handle_section_attribute, handle_aligned_attribute,
2110         handle_weak_attribute, handle_alias_attribute,
2111         handle_no_instrument_function_attribute,
2112         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
2113         handle_no_limit_stack_attribute, handle_pure_attribute): New
2114         functions.
2115         (init_attributes, decl_attributes): Rewrite to implement
2116         table-driven attributes.
2117         * c-common.h (enum attribute_flags): Move to tree.h.
2118         * c-format.c (decl_handle_format_attribute,
2119         decl_handle_format_arg_attribute): Rename to
2120         handle_format_attribute and handle_format_arg_attribute.  Update
2121         for table-driven attributes.
2122         * c-common.h (decl_handle_format_attribute,
2123         decl_handle_format_arg_attribute): Remove prototypes.
2124         (handle_format_attribute, handle_format_arg_attribute): Add
2125         prototypes.
2126         * c-decl.c (grokdeclarator): Handle attributes nested inside
2127         declarators.
2128         * c-parse.in (setattrs, maybe_setattrs): Remove.
2129         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
2130         Update to handle nested attributes properly.
2131         (maybe_resetattrs, after_type_declarator,
2132         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
2133         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
2134         properly.
2135         (make_pointer_declarator): Update to handle nested attributes
2136         properly.
2137         * doc/extend.texi: Update documentation of limits of attributes
2138         syntax.  Warn about problems with attribute semantics in C++.
2139         * target.h (struct target): Remove valid_decl_attribute and
2140         valid_type_attribute.  Add attribute_table and
2141         function_attribute_inlinable_p.
2142         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
2143         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
2144         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
2145         Add.
2146         (TARGET_INITIALIZER): Update.
2147         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
2148         definition.
2149         (function_attribute_inlinable_p): New function.  Check for the
2150         presence of any machine attributes before using
2151         targetm.function_attribute_inlinable_p.
2152         (function_cannot_inline_p): Update.
2153         * Makefile.in (integrate.o): Update dependencies.
2154         * doc/tm.texi: Update documentation of target attributes and
2155         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
2156         * tree.c (default_valid_attribute_p, valid_machine_attribute):
2157         Remove.
2158         (default_target_attribute_table,
2159         default_function_attribute_inlinable_p): New.
2160         (lookup_attribute): Update comment to clarify handling of multiple
2161         attributes with the same name.
2162         (merge_attributes, attribute_list_contained): Allow multiple
2163         attributes with the same name but different arguments to appear in
2164         the same attribute list.
2165         * tree.h (default_valid_attribute_p): Remove prototype.
2166         (struct attribute_spec): New.
2167         (default_target_attribute_table): Declare.
2168         (enum attribute_flags): Move from c-common.h.  Add
2169         ATTR_FLAG_TYPE_IN_PLACE.
2170         (default_function_attribute_inlinable_p): Declare.
2171         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
2172         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
2173         (TARGET_ATTRIBUTE_TABLE): Define.
2174         (vms_attribute_table): New.
2175         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
2176         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
2177         (TARGET_ATTRIBUTE_TABLE): Define.
2178         (arc_attribute_table, arc_handle_interrupt_attribute): New.
2179         * config/arm/arm.c (arm_valid_type_attribute_p,
2180         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
2181         Remove.
2182         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
2183         define.
2184         (TARGET_ATTRIBUTE_TABLE): Define.
2185         (arm_attribute_table, arm_handle_fndecl_attribute,
2186         arm_handle_isr_attribute): New.
2187         * config/avr/avr.c (avr_valid_type_attribute,
2188         avr_valid_decl_attribute): Remove.
2189         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
2190         define.
2191         (TARGET_ATTRIBUTE_TABLE): Define.
2192         (avr_attribute_table, avr_handle_progmem_attribute,
2193         avr_handle_fndecl_attribute): New.
2194         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
2195         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
2196         (TARGET_ATTRIBUTE_TABLE): Define.
2197         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
2198         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
2199         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
2200         (TARGET_ATTRIBUTE_TABLE): Define.
2201         (h8300_attribute_table, h8300_handle_fndecl_attribute,
2202         h8300_handle_eightbit_data_attribute,
2203         h8300_handle_tiny_data_attribute): New.
2204         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
2205         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
2206         Remove prototypes.
2207         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
2208         declarations.
2209         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
2210         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
2211         define.
2212         (TARGET_ATTRIBUTE_TABLE): Define.
2213         (ix86_attribute_table, ix86_handle_cdecl_attribute,
2214         ix86_handle_regparm_attribute): New.
2215         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
2216         i386_pe_valid_type_attribute_p): Remove.
2217         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
2218         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
2219         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
2220         (TARGET_ATTRIBUTE_TABLE): Define.
2221         (ia64_attribute_table): New.
2222         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
2223         interrupt_ident2, model_ident1, model_ident2): Remove.
2224         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
2225         (TARGET_ATTRIBUTE_TABLE): Define.
2226         (init_idents): Update.
2227         (m32r_attribute_table, m32r_handle_model_attribute): New.
2228         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
2229         Remove.
2230         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
2231         (TARGET_ATTRIBUTE_TABLE): Define.
2232         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
2233         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
2234         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
2235         (TARGET_ATTRIBUTE_TABLE): Define.
2236         (mcore_attribute_table, mcore_handle_naked_attribute): New.
2237         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
2238         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
2239         (TARGET_ATTRIBUTE_TABLE): Define.
2240         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
2241         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
2242         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
2243         (TARGET_ATTRIBUTE_TABLE): Define.
2244         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
2245         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
2246         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
2247         (TARGET_ATTRIBUTE_TABLE): Define.
2248         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
2249         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
2250         New.
2251         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
2252         Remove.
2253         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
2254         (TARGET_ATTRIBUTE_TABLE): Define.
2255         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
2256         New.
2257         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
2258         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
2259         (TARGET_ATTRIBUTE_TABLE): Define.
2260         (v850_attribute_table, v850_handle_interrupt_attribute,
2261         v850_handle_data_area_attribute): New.
2262         * config/v850/v850-c.c (mark_current_function_as_interrupt):
2263         Return void.  Call decl_attributes instead of
2264         valid_machine_attribute.
2265
2266 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
2267
2268         * sh-protos.h (sh_pr_n_sets): Declare.
2269         * sh.c (calc_live_regs): If the initial value for PR has been copied,
2270         look at the copy to determine if PR needs to be saved.
2271         sh_pr_n_sets: New function.
2272         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
2273         (ALLOCATE_INITIAL_VALUE): Define.
2274
2275         * sh.c (initial_elimination_offset):
2276         Fix RETURN_ADDRESS_POINTER_REGNUM case.
2277
2278 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
2279
2280         * integrate.c (allocate_initial_values): New function.
2281         * integrate.h (allocate_initial_values): Declare.
2282         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
2283         here...
2284         * reload1.c (reload): And initialization of reg_equiv_memory_loc
2285         from here...
2286         * toplev.c (rest_of_compilation): To here.
2287         Call allocate_initial_values.
2288         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
2289
2290 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2291
2292         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
2293
2294 2001-09-20  DJ Delorie  <dj@redhat.com>
2295
2296         * c-typeck.c (really_start_incremental_init): Discriminate
2297         between zero-length arrays and flexible arrays.
2298         (push_init_level): Detect zero-length arrays and handle them
2299         like fixed-sized arrays.
2300         * expr.c (store_constructor): Handle zero-length arrays and
2301         flexible arrays correctly.
2302         * doc/extend.texi: Update zero-length array notes.
2303
2304 2001-09-20  Jim Wilson  <wilson@redhat.com>
2305
2306         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
2307         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
2308         for issue port conflicts.
2309         (cycle_end_fill_slots): TYPE_L instructions take two slots.
2310
2311 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
2312
2313         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
2314         on ia64.
2315
2316 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2317
2318         * fold-const.c (hashtab.h): Include.
2319         (int_const_binop): Remove FORSIZE arg and compute from type; all
2320         callers changed.
2321         Call size_int_type_wide for all single-word constants.
2322         (size_htab_hash, size_htab_eq): New functions.
2323         (size_int_type_wide): Rework to use hash table.
2324         * ggc-common.c (hashtab.h): Include.
2325         (struct d_htab_root): New struct.
2326         (d_htab_roots): New variable.
2327         (ggc_add_deletable_htab, ggc_htab_delete): New functions
2328         (ggc_mark_roots): Handle deletable htabs.
2329         * ggc-page.c (ggc_marked_p): New function.
2330         * ggc-simple.c (ggc_marked_p): Likewise.
2331         * ggc.h: Reformatting throughout.
2332         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
2333         * tree.c (init_obstacks): Make type_hash_table a deletable root.
2334         (type_hash_add): Allocate struct type_hash from GC memory.
2335         (mark_hash_entry, mark_type_hash): Deleted.
2336         (type_hash_marked_p, type_hash_mark): New functions.
2337         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
2338
2339 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
2340
2341         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
2342         than SImode.
2343
2344 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2345
2346         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
2347         array-too-large test for signed sizetype.
2348
2349 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
2350
2351         * i386.md (indirect_jump): Allow Pmode operand.
2352         (tablejump): LIkewise; perform expansion to 64bit mode.
2353         * i386.c (symbolic_operand): Allow 64bit PIC references.
2354         (pic_symbolic_operand): Likewise.
2355         (ix86_find_base_term): Strip the 64bit PIC references.
2356         (legitimate_pic_address_disp_p): Handle 64bit PIC.
2357         (legitimize_pic_address): Likewise.
2358         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
2359         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
2360
2361 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
2362
2363         * stringpool.c (get_identifier_with_length): New function.
2364         * tree.h (get_identifier_with_length): New prototype.
2365
2366 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
2367             David Edelsohn  <edelsohn@gnu.org>
2368
2369         Revert:
2370         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
2371         already sign-extended.
2372
2373         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
2374         * config/rs6000/rs6000.c (logical_operand): Always compare op as
2375         HOST_WIDE_INT.
2376         (rs6000_emit_set_long_const): Avoid unnecessary shift.
2377         (output_profile_hook): Declare label_name const.
2378         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
2379         to match constraints.
2380
2381 2001-09-19  Stan Shebs  <shebs@apple.com>
2382
2383         * alias.c: Fix typos in comments.
2384         * sched-rgn.c (init_ready_list): Ditto.
2385         * unwind-dw2.c (uw_frame_state_for): Ditto.
2386         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
2387         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
2388         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
2389
2390 2001-09-19  Richard Henderson  <rth@redhat.com>
2391
2392         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
2393         to the exit block.
2394         * Makefile.in (cfg.o): Depend on TM_P_H.
2395
2396 2001-09-19  Richard Henderson  <rth@redhat.com>
2397
2398         * config/alpha/alpha.c (local_symbol_p): Split out from ...
2399         (local_symbolic_operand): ... here.
2400         (small_symbolic_operand): Check mode.
2401         (global_symbolic_operand): New.
2402         (input_operand): Reject symbolics if explicit relocs.
2403         (call_operand): Tidy.
2404         (alpha_legitimize_address): Use movdi_er_high_g.
2405         (alpha_expand_mov): Likewise.
2406         * config/alpha/alpha-protos.h: Update.
2407         * config/alpha/alpha.h (PREDICATE_CODES): Update.
2408         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
2409         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
2410         (UNSPECV_LDGP2): Remove.
2411         (all call patterns): Use 's' not 'i' for symbolic constraint.
2412         (call_osf call_value_osf): Use call_operand.
2413         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
2414         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
2415         (prologue_ldgp_1_er): Remove.
2416         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
2417         (builtin_setjmp_receiver_er patterns): Use them.
2418         (exception_receiver_er): Likewise.
2419
2420 2001-09-19  Richard Henderson  <rth@redhat.com>
2421
2422         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
2423
2424         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
2425         and NON_LOCAL_GOTO notes.
2426         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
2427         copy over CALL_INSN_FUNCTION_USAGE.
2428
2429 2001-09-18  Catherine Moore  <clm@redhat.com>
2430
2431         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
2432         Define as 0.
2433
2434 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
2435
2436         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
2437         new-style tm_file specification.  Specify correct tm_p_file,
2438         md_file, and out_file for s390x.
2439
2440         * config/s390/linux.h, linux64.h:  Don't include other target
2441         macro header files.  Now handled via tm_file.
2442
2443         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
2444         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
2445         are defined before use.
2446
2447 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
2448
2449         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
2450         code generation only for Gnu assembler.
2451
2452 2001-09-18  Catherine Moore  <clm@redhat.com>
2453
2454         * config/stormy16 (LIB_SPEC): Remove -lnosys.
2455
2456 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
2457
2458         * config/mips/mips.c (mips_frame_set): New.
2459         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
2460         a parallel frame-related expression with a set for each register.
2461
2462 2001-09-18  Philip Blundell  <philb@gnu.org>
2463
2464         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
2465         header files.
2466
2467 2001-09-17  Dale Johannesen  <dalej@apple.com>
2468
2469         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
2470         * config/rs6000/aix.h (FIXED_R2): Define.
2471         * config/rs6000/darwin.h (FIXED_R2): Define.
2472         * config/rs6000/sysv4.h (FIXED_R2): Define.
2473
2474 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
2475
2476         * except.c (dw2_build_landing_pads): New local
2477         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
2478         barrier after clobbers.  Fixes c++/4012.
2479
2480 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2481
2482         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
2483
2484 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
2485
2486         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
2487         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
2488
2489 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2490
2491         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
2492         alloca/strcpy.
2493
2494 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2495
2496         * cpphash.h (_cpp_lex_direct): New.
2497         * cpplex.c (_cpp_lex_token): Update.
2498         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
2499         and increment that pointer.
2500         * cppmacro.c (alloc_expansion_token): New.
2501         (lex_expansion_token): Lex macro expansion directly into
2502         macro storage.
2503
2504 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
2505
2506         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
2507
2508 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
2509
2510         * basic-block.h (free_bb_for_insn): Declare.
2511         * bb-reorder.c (label_for_bb): Use block_label.
2512         (emit_jump_to_block_after): Remove.
2513         (insert_intra_1): Do not update block_for_insn.
2514         (insert_inter_bb_scope_notes): Likewise; update bb->end
2515         * cfg.c (free_bb_for_insn): New.
2516         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
2517         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
2518         (commit_one_edge_insertion): Likewise.
2519         (commit_one_edge_insertion): Do not update BB boundary.
2520         (commit_edge_insertions): Do not call compute_bb_for_insn.
2521         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
2522         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
2523         (merge_blocks_move_successor_nojumps): Likewise.
2524         (try_crossjump_to_edge): Do not update block_for_insn.
2525         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
2526         * df.c (df_pattern_emit_later): Do not update BB boundary.
2527         (df_jump_pattern_emit_after): Likewise.
2528         (df_insn_move_before): Use emit_insn_before.
2529         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
2530          properly.
2531         (add_insn_after, add_insn_before, emit_insns_after): Update BB
2532         boundaries and basic_block_for_insn.
2533         (reorder_insns_nobb): Rename from reorder_insns.
2534         (reorder_insns): New.
2535         (emit_block_insn_before, emit_block_insn_after): Kill.
2536         * flow.c (check_function_return_warnings): Do not call
2537         compute_bb_for_insn; Do not free basic_block_for_insn.
2538         (attempt_auto_inc): Do not update basic_block_for_insn.
2539         * function.c (emit_return_into_block): Likewise;
2540         do not update BB boundaries.
2541         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
2542         (insert_insn_end_bb): Use emit_insn_before; Likewise.
2543         (pre_insert_copy_insn): Likewise.
2544         (update_ld_motion_notes): Likewise.
2545         (insert_insn_start_bb): Likewise.
2546         (replace_store_insn): Likewise.
2547         * ifcvt.c (noce_process_if_block): Likewise.
2548         (if_convert): Do not call compute_bb_for_insn.
2549         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
2550         Use emit_insn_before and emit_insn_after.
2551         * recog.c (split_all_insns): Do not update BB boundaries;
2552         Do not call compute_bb_for_insn.
2553         (peephole2_optimize): Do not update BB boundaries.
2554         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
2555         emit_insn_before.
2556         (emit_swap_insn): Likewise.
2557         (convert_regs_1): Likewise.
2558         * reload1.c (reload): Call compute_bb_for_insn.
2559         * rtl.h (reorder_insns_nobb): Declare.
2560         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
2561         * toplev.c (rest_of_compilation): Call free_bb_for_insn
2562         at places CFG is invalidated; do not call compute_bb_for_insn.
2563
2564         * cfg.c (expunge_block): Invalidate BB structure.
2565
2566         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
2567         array.
2568
2569         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
2570
2571 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2572
2573         * cpphash.h (_cpp_lex_token): Update prototype.
2574         * cpplex.c (_cpp_lex_token): New prototype.
2575         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
2576         lex_macro_node, read_flag, do_pragma_poison): Update.
2577         * cppmacro.c (cpp_get_token, parse_params,
2578         lex_expansion_token): Update.
2579
2580 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2581
2582         * cppmain.c (scan_translation_unit): Don't worry about
2583         putting a space after hashes.
2584         * cpplib.c (directive_diagnostics): New.
2585         (_cpp_handle_directive): Update to use directive_diagnostics.
2586         (run_directive): Don't toggle prevent_expansion.
2587         (do_line): Backup in case of the line extension.
2588         * cpplib.h (cpp_lexer_pos): Remove.
2589         * cppmacro.c (_cpp_create_definition): Precede a leading #
2590         with whitespace.
2591
2592 2001-09-15  Richard Henderson  <rth@redhat.com>
2593
2594         * c-typeck.c (comptypes): Handle zero-length arrays properly.
2595
2596 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2597
2598         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
2599
2600 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
2601
2602         PR preprocessor/3571
2603         * tradcpp.c (handle_directive): Skip non-vertical space.
2604
2605 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
2606
2607         * cppmain.c (setup_callbacks): Set line callback only
2608         if outputting preprocessed source.
2609
2610 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2611
2612         * collect2.c (main): Const-ification.
2613         * gcc.c (translate_options, process_command): Use xstrdup in
2614         lieu of xmalloc/strcpy.
2615         (main): Use concat in lieu of xmalloc/strcpy/strcat.
2616
2617 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2618
2619         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
2620         example.
2621
2622 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
2623
2624         * scan-decls.c (scan_decls): Fix typo.
2625
2626 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
2627
2628         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
2629         Split mlstring_pos into mls_line and mls_col.
2630         * cppinit.c (cpp_create_reader): Initialize line to 1.
2631         (cpp_destroy): Free tokenruns.
2632         (push_include): Don't update lexer_pos.
2633         * cpplex.c (unterminated, parse_string): Update.
2634         (lex_token): Don't update lexer_pos, update.
2635         * cpplib.c (if_stack): Save line instead of line + col.
2636         (start_directive, _cpp_do__Pragma, do_else, do_elif,
2637         push_conditional, _cpp_pop_buffer): Update.
2638         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
2639         (_cpp_create_definition): Update.
2640
2641 2001-09-15  Eric Christopher  <echristo@redhat.com>
2642
2643         * config/mips/abi64.h: Add support for MEABI.
2644
2645 2001-09-15  Eric Christopher  <echristo@redhat.com>
2646
2647         * config/mips/mips.md: Add unspec #2.
2648         (reload_indi): Use.
2649         (reload_outdi): Ditto.
2650         (reload_outsi): Ditto.
2651         (HILO_delay): New.
2652
2653 2001-09-15  Eric Christopher  <echristo@redhat.com>
2654             Jason Eckhardt  <jle@redhat.com>
2655
2656         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
2657         * config/mips/isa32-linux.h: New file.
2658         * config/mips/isa3264.h: Ditto.
2659         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
2660         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
2661         (output_block_mode): Support MEABI.
2662         (function_arg): Ditto. Fix floating point arg passing.
2663         (mips_va_start): Ditto.
2664         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
2665         processors.
2666         (mips_asm_file_start): Add new section to pass abi to gdb.
2667         (function_arg_pass_by_reference): Support MEABI.
2668         (mips_parse_cpu): Support mips32 and mips64 processors.
2669         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
2670         TARGET_MIPS5KC.  Support isa32 and isa64.
2671         (processor_type): Add r4kc, r5kc, r20kc.
2672         (GENERATE_MULT3_SI): New.
2673         (GENERATE_MULT3_DI): Ditto.
2674         (GENERATE_MULT3): Remove.
2675         (ISA_HAS_64BIT_REGS): Add isa == 64.
2676         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
2677         (ISA_HAS_MADD_MSUB): New.
2678         (ISA_HAS_CLZ_CLO): Ditto.
2679         (ISA_HAS_DCLZ_DCLO): Ditto.
2680         (ABI_GAS_ASM_SPEC): New.
2681         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
2682         (ASM_SPEC): Ditto.
2683         (LINK_SPEC): Ditto.
2684         (SUBTARGET_CC1_SPEC): Ditto.
2685         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
2686         (PAD_VARARGS_DOWN): Support MEABI.
2687         (HARD_REGNO_NREGS): Move to mips.c.
2688         (ASM_OUTPUT_IDENT): Add #undef.
2689         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
2690         (mulsi3): Use GENERATE_MULT3_SI.
2691         (mulsi3_mult3): Ditto.  Support mips32, mips64.
2692         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
2693         (mul_sub_si): New pattern.
2694         (unnamed splitters): New.
2695         (muldi3): Use GENERATE_MULT3_DI.
2696         (muldi3_internal2): Ditto.
2697         (movdicc): Support mips32.
2698         * config/mips/t-isa3264: New file.
2699
2700 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
2701
2702         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
2703         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
2704         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
2705
2706         * reorg.c (fill_slots_from_thread): After call to
2707         steal_delay_list_from_target, update own_thread as new_thread may
2708         have branched.
2709
2710 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2711
2712         * cpperror.c (print_location): Take line and column, for
2713         default positioning use the previously lexed token.
2714         (_cpp_begin_message): Take line and column.
2715         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
2716         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
2717         * cpphash.h (_cpp_begin_message): Update prototype.
2718         * cppinit.c (push_include): Don't set output line.
2719         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
2720         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
2721         (do_pragma): Kludge for front ends.  Don't expand macros at all.
2722         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
2723         (struct cpp_token): Remove output_line.
2724         (struct cpp_callbacks): New member line_change.
2725         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
2726         cpp_get_token): Preserve BOL flag.
2727         (cpp_get_line): Remove.
2728         (_cpp_backup_tokens): Remove useless abort().
2729         * cppmain.c (cb_line_change): New.
2730         (scan_translation_unit): Don't worry about starting new lines here.
2731         * scan-decls.c (scan_decls): Update.
2732         * c-lex.c (c_lex, init_c_lex): Update.
2733         (cb_line_change, src_lineno): New.
2734
2735 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
2736
2737         * tree.c (append_random_chars): Generate the random
2738         characters in a reproducable fashion.
2739
2740 2001-09-14  Richard Henderson  <rth@redhat.com>
2741
2742         * config/i386/i386.c (internal_label_prefix): New.
2743         (internal_label_prefix_len): New.
2744         (override_options): Set them.
2745         (local_symbolic_operand): New.
2746         (legitimate_pic_address_disp_p): Use it.
2747         (legitimize_pic_address): Likewise.
2748
2749 2001-09-14  Marc Espie <espie@openbsd.org>
2750
2751         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
2752         correctly.
2753
2754 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2755
2756         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
2757         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
2758
2759 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
2760
2761         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
2762         invocation of SUBREG_REGNO_OFFSET.
2763
2764         * haifa-sched.c: Fix typo in FSF copyright statement.
2765         * sched-deps.c: Fix typo in FSF copyright statement.
2766         * sched-ebb.c: Fix typo in FSF copyright statement.
2767         * sched-rgn.c: Fix typo in FSF copyright statement.
2768         * sched-vis.c: Fix typo in FSF copyright statement.
2769
2770         * config.gcc: Move inclusion of arm elf specific header files
2771         from the files themselves into the tm_file variable.  Make
2772         sure that elfos.h is included before target specific elf
2773         headers.
2774         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
2775         already defined.
2776         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
2777         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
2778         ASM_OUTPUT_CASE_LABEL): Protect definition.
2779         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
2780         not already defined.
2781         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
2782         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
2783         Remove duplicate definition.
2784         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
2785         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
2786         (RDATA_SECTION_FUNCTION): Remove redundant definition.
2787         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
2788         Remove inclusion of arm/elf.h.
2789         * config/arm/unknown-elf.h: as for conix-elf.h.
2790         (STARTFILE_SPEC): Include crti.o and crtn.o.
2791         * config/arm/linux-elf.h: as for conix-elf.h.
2792         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
2793         * config/arm/strongarm-elf.h: Remove inclusion of
2794         unknown-elf.h.
2795         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
2796         * config/arm/unknown-elf-oabi.h: Remove inclusion of
2797         unknown-elf.h and elf.h.
2798         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
2799         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
2800         ASM_WEAKEN_LABEL): Remove redundant definition.
2801         * config/arm/elf.h: Test for inclusion of elfos.h
2802         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
2803         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
2804         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
2805         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
2806         redundant definition.
2807         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
2808         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
2809         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
2810         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
2811         Add rules to build crti.o and crtn.o
2812         * crti.asm: New file.
2813         * crtn.asm: New file.
2814
2815 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2816
2817         * c-parse.in (_yylex): Use _cpp_backup_tokens.
2818         * cpphash.h (struct tokenrun): Add prev.
2819         (struct lexer_state): Remove bol.
2820         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
2821         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
2822         : Remove.
2823         * cppinit.c (cpp_create_reader): Don't set bol.
2824         (cpp_destroy): Don't free lookaheads.
2825         * cpplex.c (lex_directive): Remove.
2826         (next_tokenrun): Update.
2827         (_cpp_lex_token): Clean up logic.
2828         (lex_token): Update to return a pointer to lexed token, since it
2829         can move to the start of the buffer.  Simpify newline handling.
2830         * cpplib.c (SEEN_EOL): Update.
2831         (skip_rest_of_line): Remove lookahead stuff.
2832         (end_directive): Line numbers are already incremented.  Revert
2833         to start of lexed token buffer if we can.
2834         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
2835         parse_answer): Use _cpp_backup_tokens.
2836         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
2837         instead.  Don't check for EOL.
2838         (do_include_common, do_line, do_pragma_system_header): Use
2839         skip_rest_of_line.
2840         * cpplib.h (BOL, _cpp_backup_tokens): New.
2841         * cppmacro.c (save_lookahead_token, take_lookahead_token,
2842         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
2843         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
2844         (builtin_macro): Don't use cpp_get_line.
2845         (cpp_get_line): Short term kludge.
2846         (parse_arg): Handle directives in arguments here.  Back up when
2847         appropriate.  Store EOF at end of argument list.
2848         (funlike_invocation_p): Use _cpp_backup_tokens.
2849         (push_arg_context): Account for EOF at end of list.
2850         (cpp_get_token): Remove lookahead stuff.  Update.
2851
2852 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2853
2854         * c-parse.in (yyerror): Const-ification and/or static-ization.
2855         * c-typeck.c (push_member_name): Likewise.
2856         * collect2.c (main): Likewise.
2857         * dbxout.c (dbxout_parms): Likewise.
2858         * diagnostic.c (format_with_decl): Likewise.
2859         * dwarf2out.c (output_ranges): Likewise.
2860         * dwarfout.c (fundamental_type_code): Likewise.
2861         * except.c (dw2_output_call_site_table): Likewise.
2862         * gcc.c (do_spec_1): Likewise.
2863         * genopinit.c (optabs): Likewise.
2864         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
2865         gen_declaration_1, handle_impent): Likewise.
2866         * protoize.c (default_include, in_system_include_dir, abspath):
2867         Likewise.
2868         * sched-vis.c (visualize_stall_cycles): Likewise.
2869         * sdbout.c (plain_type_1, sdbout_end_function,
2870         sdbout_end_epilogue): Likewise.
2871         * varasm.c (decode_reg_name): Likewise.
2872
2873         * 1750a.c (mod_regno_adjust): Likewise.
2874         * alpha.c (alpha_write_one_linkage,
2875         unicosmk_output_default_externs): Likewise.
2876         * arm.c (arm_condition_codes): Likewise.
2877         * arm.h (arm_condition_codes): Likewise.
2878         * avr.c (output_movsisf, encode_section_info): Likewise.
2879         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
2880         Likewise.
2881         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
2882         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
2883         * m88k.c (output_function_profiler): Likewise.
2884         * mips.c (mips_output_conditional_branch): Likewise.
2885         * ns32k.c (ns32k_out_reg_names): Likewise.
2886         * ns32k.h (ns32k_out_reg_names): Likewise.
2887         * pj.c (pj_output_rval): Likewise.
2888         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
2889         * sparc.c (sparc_flat_function_prologue,
2890         sparc_flat_function_epilogue): Likewise.
2891
2892 2001-09-13  Markus Werle <numerical.simulation@web.de>
2893             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2894
2895         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
2896         Aachen University of Technology".
2897
2898 2001-09-13  Andreas Schwab  <schwab@suse.de>
2899
2900         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
2901         C99.
2902
2903 2001-09-13  Richard Henderson  <rth@redhat.com>
2904
2905         * config/alpha/alpha.c (small_symbolic_operand): New.
2906         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
2907         (some_operand, input_operand): Don't handle HIGH.
2908         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
2909         (alpha_expand_mov): Likewise.
2910         (print_operand) [H]: Just print HIGH symbol.
2911         (print_operand_address): Handle small data.
2912         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
2913         (TARGET_SWITCHES): Add -msmall-data/large-data.
2914         (PIC_OFFSET_TABLE_REGNUM): New.
2915         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
2916         (PREDICATE_COES): Update.
2917         * config/alpha/alpha.md (adddi_er_high): New.
2918         (adddi_er_low): Handle small data.
2919         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
2920         prefer .sdata to .rodata.
2921         (SELECT_RTX_SECTION): Likewise.
2922
2923 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
2924
2925         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
2926         defining __size_t and leaving size_t undefined.
2927
2928 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
2929
2930         * basic-block.h (expunge_block): Declare.
2931         * cfg.c (expunge_block): Remove static declaration.
2932
2933 2001-09-12  Richard Henderson  <rth@redhat.com>
2934
2935         * integrate.c (copy_insn_list): Copy label name from
2936         NOTE_INSN_DELETED_LABEL.
2937
2938 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2939
2940         * c-common.c (c_tree_code_name): Const-ification.
2941         * c-decl.c (c_decode_option): Likewise.
2942         * c-typeck.c (warn_for_assignment): Likewise.
2943         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
2944         Likewise.
2945         * cppinit.c (output_deps): Likewise.
2946         * dependence.c (dependence_string, direction_string): Likewise.
2947         * dwarf2out.c (output_ranges): Likewise.
2948         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
2949         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
2950         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
2951         standard_startfile_prefix, standard_startfile_prefix_1,
2952         standard_startfile_prefix_2, tooldir_base_prefix,
2953         standard_bindir_prefix, find_a_file): Likewise.
2954         * genattrtab.c (make_length_attrs): Likewise.
2955         * gencheck.c (tree_codes): Likewise.
2956         * genemit.c (gen_split): Likewise.
2957         * genrecog.c (special_mode_pred_table): Likewise.
2958         * graph.c (graph_ext): Likewise.
2959         * protoize (default_include): Likewise.
2960         * reload.c (reload_when_needed_name): Likewise.
2961         * sched-vis.c (visualize_stall_cycles): Likewise.
2962         * tlink.c (recompile_files): Likewise.
2963         * toplev.c (decode_g_option): Likewise.
2964         * tradcpp.c (output_deps): Likewise.
2965         * varasm.c (decode_reg_name): Likewise.
2966
2967         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
2968         Const-ification.
2969         * arm.md: Likewise.
2970         * avr.c (avr_regnames, encode_section_info): Likewise.
2971         * c4x.c (float_reg_names): Likewise.
2972         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
2973         * elfos.h (const_section): Likewise.
2974         * i386.c (ix86_comp_type_attributes): Likewise.
2975         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
2976         * ia64/aix.h (UNIQUE_SECTION): Likewise.
2977         * ia64.c (type_names): Likewise.
2978         * m68hc11.c (reg_class_names): Likewise.
2979         * m88k.c (m_options): Likewise.
2980         * mips.c (mips_output_conditional_branch, mips_unique_section):
2981         Likewise.
2982         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
2983         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
2984         ultra_code_names): Likewise.
2985         * sparc.h (OVERRIDE_OPTIONS): Likewise.
2986
2987 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
2988
2989         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
2990         Use --fatal-warnings option for gas.
2991         * configure: Rebuilt.
2992
2993 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2994
2995         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
2996
2997 2001-09-11  Jim Wilson  <wilson@redhat.com>
2998
2999         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
3000
3001 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3002
3003         * builtins.c (c_strlen): Treat an offset too large for a
3004         HOST_WIDE_INT as out of range.
3005
3006 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
3007
3008         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
3009         (EDGE_CRITICAL_P): New predicate.
3010         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
3011         handling.
3012         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
3013         (dump_edge_info): Remove "crit".
3014         * cfganal.c (mark_critical_edges): Kill.
3015         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
3016         * cfgcleanup.c (cleanup_cfg): Likewise.
3017         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
3018         (find_spanning_tree): Likewise.
3019         * reg-stack.c (convert_regs_1): Likewise.
3020         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
3021
3022         * basic-block.h (create_basic_block_structure): New.
3023         (create_basic_block): Update prototype.
3024         (force_nonfallthru): New.
3025         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
3026         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
3027         handle updating of block_for_insn, creating of empty BBs and BBs at
3028         the end of INSN chain.
3029         (create_basic_block): New function.
3030         (split_block): Use create_basic_block.
3031         (force_nonfallthru_and_redirect): Break out from ...; cleanup
3032         (redirect_edge_and_branch_force): ... here.
3033         (force_nonfallthru): New.
3034         (split_edge): Rewrite to use force_nonfallthru and create_block.
3035         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
3036         (find_basic_blocks): Free basic_block_for_insn.
3037         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
3038
3039         * cfg.c: Fix formating.
3040         * cfgcleanup.c: Fix formating.
3041         (merge_blocks, tail_recursion_label_p): Return bool.
3042         (merge_blocks_move_predecessor_nojumps,
3043          merge_blocks_move_successor_nojumps): Return void.
3044
3045 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
3046
3047         * configure.in: Check whether assembler supports section merging.
3048         * config.in: Rebuilt.
3049         * configure: Rebuilt.
3050         * varasm.c (variable_section, output_constant_pool): Pass alignment
3051         to SELECT_SECTION and SELECT_RTX_SECTION.
3052         (mergeable_string_section): New.
3053         (mergeable_constant_section): New.
3054         (default_elf_asm_named_section): Output SECTION_MERGE and
3055         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
3056         * output.h (mergeable_string_section): New.
3057         (mergeable_constant_section): New.
3058         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
3059         * toplev.c (flag_merge_constants): New.
3060         (f_options): Add -fmerge-constants and -fmerge-all-constants
3061         options.
3062         (toplev_main): Default to -fno-merge-constants if not optimizing.
3063         * flags.h (flag_merge_constants): Add extern.
3064         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
3065         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
3066         argument.
3067         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
3068         Define if assembler has working .subsection -1 support.
3069         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
3070         Put constant into special SHF_MERGE sections if the linker should
3071         attempt to merge duplicates.
3072         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
3073         macro argument.
3074         Put constant into special SHF_MERGE sections if the linker should
3075         attempt to merge duplicates.
3076         * config/alpha/elf.h: Likewise.
3077         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
3078         has working .subsection -1 support.
3079         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
3080         SELECT_SECTION.
3081         * config/svr3.h: Likewise.
3082         * config/darwin.h: Likewise.
3083         * config/arm/aof.h: Likewise.
3084         * config/arm/linux-elf.h: Likewise.
3085         * config/avr/avr.h: Likewise.
3086         * config/c4x/c4x.h: Likewise.
3087         * config/d30v/d30v.h: Likewise.
3088         * config/i386/dgux.h: Likewise.
3089         * config/i386/osfrose.h: Likewise.
3090         * config/i386/sco5.h: Likewise.
3091         * config/i386/svr3gas.h: Likewise.
3092         * config/ia64/aix.h: Likewise.
3093         * config/m32r/m32r.h: Likewise.
3094         * config/m68k/m68k.h: Likewise.
3095         * config/m88k/dgux.h: Likewise.
3096         * config/m88k/m88k.h: Likewise.
3097         * config/mcore/mcore-pe.h: Likewise.
3098         * config/mips/mips.h: Likewise.
3099         * config/pa/pa.h: Likewise.
3100         * config/pa/pa-linux.h: Likewise.
3101         * config/romp/romp.h: Likewise.
3102         * config/rs6000/sysv4.h: Likewise.
3103         * config/rs6000/xcoff.h: Likewise.
3104         * config/s390/linux.h: Likewise.
3105         * config/sparc/sparc.h: Likewise.
3106         * config/sparc/sysv4.h: Likewise.
3107         * config/stormy16/stormy16.h: Likewise.
3108         * config/v850/v850.h: Likewise.
3109         * config/vax/vms.h: Likewise.
3110         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
3111         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
3112         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
3113         default_elf_asm_named_section for SHF_MERGE sections.
3114
3115 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
3116
3117         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
3118         is OK.
3119
3120 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
3121
3122         * c-common.c (split_specs_attrs): Allow for empty attributes with
3123         empty TREE_PURPOSE.  Fixes PR c/4294.
3124
3125 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
3126
3127         * basic-block.h (cached_make_edge, make_single_succ): New.
3128         (make_edge): Remove first parameter.
3129         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
3130         * cfg.c (cached_make_edge): Rename from make_edge; return newly
3131         created edge; use obstack allocation.
3132         (make_edge, make_single_succ_edge): New.
3133         (first_removed_edge): New static variable.
3134         (init_flow): Initialize first_removed_edge and n_edges.
3135         (clear_edges): Use remove_edge.
3136         (flow_delete_block): Likewise.
3137         (remove_edge): Add removed edges to the removed edges list.
3138         (split_block, redirect_edge_and_branch_force, split_edge):
3139         Use make_edge.
3140         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
3141         (add_noreturn_fake_exit_edges): Likewise.
3142         (connect_infinite_loops_to_exit): Liekwise.
3143         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
3144         Use cached_make_edge.
3145         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
3146         * profile.c (branch_prob): Update make_edge call.
3147         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
3148
3149 2001-09-11  Richard Henderson  <rth@redhat.com>
3150
3151         * config/alpha/alpha.c: Tidy formatting.
3152         (local_symbolic_operand): Verify mode.
3153         (alpha_sa_mask): Ignore unicos for eh_return.
3154         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
3155         * config/alpha/alpha.md (umk divsi patterns): Remove.
3156         (extendsfdf2): Remove unicos check.
3157         (tablejump): Merge vms and unicos code; always use direct set
3158         plus label_ref use.
3159
3160 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3161
3162         * config.gcc (alpha*-*-unicosmk*): New target.
3163
3164         * config/alpha/alpha-protos.h (symbolic_operand,
3165         unicosmk_add_call_info_word, unicosmk_add_extern,
3166         unicosmk_defer_case_vector, unicosmk_unique_section,
3167         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
3168         unicosmk_asm_file_start, unicosmk_asm_file_end,
3169         unicosmk_output_common): Declare.
3170
3171         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
3172         direct_return, function_arg, alpha_va_start, alpha_va_arg,
3173         alpha_does_function_need_gp, alpha_end_function): Support Cray
3174         Unicos/Mk.
3175         (alpha_init_machine_status, alpha_mark_machine_status,
3176         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
3177         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
3178         unicosmk_asm_named_section, unicosmk_insert_attributes,
3179         unicosmk_section_type_flags, symbolic_operand,
3180         unicosmk_output_module_name, unicosmk_output_default_externs,
3181         unicosmk_output_dex, unicosmk_output_externs,
3182         unicosmk_output_addr_vec, unicosmk_ssib_name,
3183         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
3184         unicosmk_asm_file_end, unicosmk_output_common,
3185         unicosmk_section_type_flags, unicosmk_unique_section,
3186         unicosmk_add_call_info_word, unicosmk_text_section,
3187         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
3188         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
3189         unicosmk_dex_count, unicosmk_special_name): New.
3190         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
3191         TARGET_ABI_UNICOSMK.
3192         (get_aligned_mem, alpha_expand_unaligned_load,
3193         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
3194         alpha_expand_unaligned_store_words): Support big-endian mode.
3195         (print_operand): Likewise. New format specifier 't'. Use
3196         TARGET_AS_SLASH_BEFORE_SUFFIX.
3197         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
3198         (alpha_pv_save_size): Update with above change.
3199         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
3200         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
3201         Unicos/Mk.
3202
3203         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
3204         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
3205         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
3206         (EXTRA_CONSTRAINT): New constraint 'U'.
3207         (PREDICATE_CODES): Add symbolic_operand.
3208
3209         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
3210         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
3211         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
3212         (integer division and modulus patterns): Split in default and
3213         Unicos/Mk versions.
3214         (*divmodsi_internal, *divmoddi_internal): Disable for
3215         TARGET_ABI_UNICOSMK.
3216         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
3217         little-endian and big-endian versions.
3218         (ext, ins, msk): Likewise.
3219         (extv, extzv, insv): Support big-endian mode.
3220         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
3221         (call_umk, call_value_umk, *call_umk, tablejump_umk,
3222         *tablejump_umk_internal, *call_value_umk): New.
3223         (*movdi_nofix): Add pattern for loading an address into a register on
3224         TARGET_ABI_UNICOSMK.
3225         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
3226         (umk_mismatch_args, arg_home_umk): New.
3227         (various insns): Don't use mov, fmov, nop, fnop and unop.
3228         (realign): Support TARGET_ABI_UNICOSMK.
3229
3230         * config/alpha/unicosmk.h: New file.
3231         * config/alpha/t-unicosmk: New file.
3232
3233         * fixinc/inclhack.def (unicosmk_restrict): New.
3234         * fixinc/fixincl.x: Regenerate.
3235
3236         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
3237         (wchar_t): Check for and define __WCHAR_T__.
3238
3239 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
3240
3241         * combine.c (simplify_shift_const): Treat shifts by the mode
3242         size as undefined.
3243
3244 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3245
3246         * cpphash.h (struct tokenrun): New.
3247         (struct cpp_context): New member bol.
3248         (struct cpp_reader): New members.
3249         (_cpp_init_tokenrun): New.
3250         * cppinit.c (cpp_create_reader): Set up the token runs.
3251         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
3252         (lex_token): New internalised version of _cpp_lex_token.  Don't
3253         handle directives or the multiple include opimisation here any
3254         more.  Simply lex a token.
3255         * cpplib.c (run_directive): Clear bol.
3256         (_cpp_pop_buffer): Set bol.
3257         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
3258         arguments.
3259
3260 2001-09-11  Michael Meissner  <meissner@redhat.com>
3261
3262         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
3263         give an error if the user uses -mfp32.
3264         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
3265         default options.
3266         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
3267         floating point register size.
3268         (EXTRA_SPECS): Add CPP_FPR_SPEC.
3269
3270         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
3271         HOST_WIDE_INT_PRINT_DEC to properly print the result of
3272         int_size_in_bytes.
3273         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
3274         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
3275
3276 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
3277
3278         * dbxout.c (dbxout_parms): Fix typo in comment.
3279         * unroll.c (loop_find_equiv_value): Ditto.
3280         * toplev.c (rest_of_compilation): Ditto.
3281         * loop.c (scan_loop): Ditto.
3282         * dwarf2out.c (struct dw_fde_struct): Ditto.
3283
3284 2001-09-10  Zack Weinberg  <zackw@panix.com>
3285
3286         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
3287         copying identifier when we're just going to throw it away.
3288         (parse_identifier_slow): New routine to handle abnormal cases.
3289         (_cpp_lex_token): Update call site.
3290
3291         * hashtable.c (ht_lookup): Don't assume that the string we've
3292         been given is NUL-terminated.
3293         * system.h: #define __builtin_expect(a, b) to (a) if not
3294         GCC >=3.0.
3295
3296 2001-09-10  Michael Meissner  <meissner@redhat.com>
3297
3298         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
3299         binutils, gdb.
3300
3301 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
3302
3303         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
3304
3305 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3306
3307         * builtins.c (c_getstr): Correct thinko in last change and further
3308         cleanup.
3309
3310 2001-09-10  Tim Freeman <tim@fungibole.com>
3311
3312         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
3313         into varray's and register them as roots with the garbage
3314         collector so they are not collected too soon.
3315
3316 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
3317
3318         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
3319         New.
3320         * basic-block.h (flow_obstack, label_value_list,
3321         tail_recursion_label_list): Declare
3322         (tidy_fallthru_edges): Declare.
3323         (expunge_block, last_loop_beg_note): Delete.
3324         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
3325         * cfg.c: New file
3326         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
3327         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
3328         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
3329         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
3330         expunge_block, flow_delete_block, compute_bb_for_insn,
3331         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
3332         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
3333         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
3334         try_redirect_by_replacing_jump, last_loop_beg_note,
3335         redirect_edge_and_branch, redirect_edge_and_branch_force,
3336         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
3337         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
3338         commit_edge_insertions, dump_flow_info, debug_flow_info,
3339         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
3340         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
3341         Move here from flow.c
3342         * cfganal.c: New file.
3343         (forwarder_block_p, can_fallthru, mark_critical_edges,
3344          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
3345          find_unreachable_blocks, create_edge_list, free_edge_list,
3346          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
3347          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
3348          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
3349          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
3350          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
3351          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
3352         Move here from flow.c
3353         * cfgbuild.c: New file
3354         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
3355          make_edges, find_basic_blocks_1, find_basic_blocks,
3356          find_sub_basic_blocks): Move here from flow.c
3357         * cfgcleanup.c: New file.
3358         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
3359          merge_blocks_move_predecessor_nojumps,
3360          merge_blocks_move_successor_nojumps, merge_blocks,
3361          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
3362          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
3363         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
3364         if succeeded.
3365         * cfgloop.c: New file
3366         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
3367          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
3368          flow_loop_exit_edges_find, flow_loop_nodes_find,
3369          flow_loop_pre_header_scan, flow_loop_pre_header_find,
3370          flow_loop_tree_node_add, flow_loops_tree_build,
3371          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
3372          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
3373         Move here from flow.c
3374         * flow.c: Remove everything moved elsewhere
3375         * output.h (cleanup_cfg): Return bool.
3376
3377         * bb-reorder.c (reorder_block_def): Remove 'index'.
3378         (insert_intra_1): Add argument BB, set block for new note.
3379         (make_reorder_chain): Do not depdent on BB indexes.
3380         (make_reorder_chain_1): Do not use BB indexes.
3381         (label_for_bb): Likewise; set BB for new insn.
3382         (emit_jump_to_block_after): Likewise.
3383         (fixup_reoder_chain): Sanity check that all basic blocks
3384         are chained; verify newly created insn chain; remove
3385         undocnitional jump simplifying; Do not use BB indexes;
3386         properly initialize count and frequency information;
3387         dump reordered sequence.
3388         (insert_intra_bb_scope_notes): update call of insert_intra_1.
3389         (insert_inter_bb_scope_notes): Set block for new insn.
3390         (reorder_basic_blocks): Dump flow info before reoredering.
3391
3392 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3393
3394         * alias.c (clear_reg_alias_info): Use K&R format definition.
3395         Avoid unsigned warning.
3396         * builtins.c: Use "unsigned int", not "unsigned".
3397         (target_char_cast): Use host_integerp and tree_low_cst.
3398         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
3399         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
3400         (c_getstr): Likewise.
3401         (std_expand_builtin_va_arg): Use int_size_in_bytes.
3402         (builtin_memcpy_read_str): Avoid unsigned warning.
3403         (expand_builtin_memcpy): Alignments are unsigned.
3404         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
3405         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
3406         * predict.c (expensive_function_p): LIMIT now unsigned.
3407         * resource.c (mark_target_live_regs): Make some vars unsigned.
3408         * sdbout.c: Use "unsigned int", not "unsigned".
3409         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
3410         (sdbout_source_line): Likewise.
3411         (sdbout_record_type_name): Remove "const" for NAME declaration.
3412         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
3413
3414 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
3415
3416         * calls.c (store_one_arg): Expand comment.
3417
3418 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3419
3420         * calls.c (store_one_arg): Make sure that the entire argument is
3421         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
3422
3423 2001-09-09  Richard Henderson  <rth@redhat.com>
3424
3425         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
3426
3427 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
3428
3429         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
3430
3431 2001-09-09  Richard Henderson  <rth@redhat.com>
3432
3433         * config/alpha/alpha.c (alpha_next_sequence_number): New.
3434         (alpha_this_literal_sequence_number): New.
3435         (alpha_this_gpdisp_sequence_number): New.
3436         (some_operand, input_operand): Add HIGH.
3437         (local_symbolic_operand): New.
3438         (alpha_encode_section_info): New.
3439         (alpha_legitimate_address_p): Allow LO_SUM.
3440         (alpha_legitimize_address): Generate HIGH+LO_SUM.
3441         (alpha_expand_mov): Likewise.
3442         (secondary_reload_class): Check memory_operand not general_operand
3443         for FP_REGS test.
3444         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
3445         (alpha_expand_unaligned_store): Likewise.
3446         (alpha_expand_unaligned_load_words): Likewise.
3447         (alpha_expand_unaligned_store_words): Likewise.
3448         (alpha_expand_block_clear): Likewise.
3449         (print_operand): Handle %#, %*, %H.
3450         (print_operand_address): Handle LO_SUM.
3451         (find_lo_sum): New.
3452         (alpha_does_function_need_gp): Use it.
3453         (alpha_expand_block_move): Fix signed compare warnings.
3454         (alpha_sa_mask, alpha_align_insns): Likewise.
3455         * config/alpha/alpha-protos.h: Update.
3456         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
3457         (MASK_EXPLICIT_RELOCS): New.
3458         (TARGET_SWITCHES): Add -mexplicit-relocs.
3459         (EXTRA_CONSTRAINT): Add 'T'.
3460         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
3461         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
3462         (ENCODE_SECTION_INFO): Out line.
3463         (REDO_SECTION_INFO_P): New.
3464         (STRIP_NAME_ENCODING): New.
3465         (ASM_OUTPUT_LABELREF): New.
3466         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
3467         (PREDICATE_CODES): Update.
3468         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
3469         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
3470         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
3471         builtin_setjmp_receiver_er, exception_receiver_1_er,
3472         call_value_osf_1_er): New patterns.
3473         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
3474         (movqi, movhi, movsi): Add explicit $31 base register to lda.
3475         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
3476         (FINAL_PRESCAN_INSN): New.
3477
3478 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
3479
3480         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
3481
3482 2001-09-08  Andreas Jaeger  <aj@suse.de>
3483
3484         * i386.h (TARGET_SWITCHES): Fix description.
3485
3486 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
3487
3488         * rs6000.c (num_insns_constant): Compute number of instructions
3489         more accurately.
3490
3491         * doc/install.texi: Explain AIX exception handling work-around.
3492         Update URL for AIX fixes.
3493
3494 2001-09-07  Jim Wilson  <wilson@redhat.com>
3495
3496         * alias.c (clear_reg_alias_info): New.
3497         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
3498         * rtl.h (clear_reg_alias_info): Declare.
3499
3500 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3501
3502         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
3503         available.
3504         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
3505         (m16m,edivm,emulm): Change declaration to match definition.
3506
3507 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
3508
3509         * reload.c (push_reload): Check for subreg_lowpart_p instead of
3510         SUBREG_BYTE being 0 when determining if the inner part of a subreg
3511         can be reloaded.
3512
3513 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3514
3515         * c-common.c (signed_or_unsigned_type): Handle machine mode types
3516         which have no corresponding C type.
3517         * fold_const.c (target_isinf,target_isnan,target_negative): Update
3518         the representation of 64-bit doubles to work with 64-bit ints.
3519
3520 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
3521
3522         * config/mips/mips.c (override_options): Do not override ISA when ABI
3523         specified if MIPS_CPU_STRING_DEFAULT was specified.
3524
3525 2001-09-07  Richard Henderson  <rth@redhat.com>
3526
3527         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
3528         (express_from_1): Wrap lines.
3529         * rtlanal.c (commutative_operand_precedence): Rename from
3530         operand_preference; export.
3531         * rtl.h: Declare it.
3532         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
3533         (simplify_binary_operation): Invoke simplify_plus_minus on
3534         (CONST (PLUS ...)) as well.
3535         (struct simplify_plus_minus_op_data): New.
3536         (simplify_plus_minus_op_data_cmp): New.
3537         (simplify_plus_minus): Use them.  Avoid infinite recursion with
3538         simplify_binary_operation wrt CONST.
3539
3540 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
3541
3542         * h8300-protos.h (general_operand_dst_push): Remove.
3543         * h8300.c (general_operand_dst_push): Likewise.
3544         * h8300.h (OK_FOR_T): Likewise.
3545         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
3546         * h8300.md (pushqi_h8300): New.
3547         (pushqi_h8300hs): Likewise.
3548         (pushqi): Likewise.
3549         (pushhi_h8300): Likewise.
3550         (pushhi_h8300hs): Likewise.
3551         (pushhi): Likewise.
3552
3553 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3554
3555         * genattrtab.c (attr_printf): First arg is unsigned.
3556         Clean up formatting of callers.
3557
3558 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
3559
3560         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
3561         registers.
3562
3563 2001-09-07  Andreas Jaeger  <aj@suse.de>
3564
3565         * i386.h (TARGET_SWITCHES): Fix descriptions.
3566
3567 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3568
3569         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
3570
3571 2001-09-06  Ira Ruben  <ira@apple.com>
3572
3573         Remove OP_IDENTIFIER.
3574         * tree.def (OP_IDENTIFIER): Remove.
3575         * tree.c (tree_node_kind enum): Remove op_id_kind.
3576         (tree_node_kind_names): Remove "op_identifiers".
3577         (make_node): Remove OP_IDENTIFIER test.
3578         (build_op_identifier): Removed because it isn't being used.
3579         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
3580         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
3581
3582 2001-09-06  Richard Henderson  <rth@redhat.com>
3583
3584         * simplify-rtx.c (simplify_binary_operation): Revert last change.
3585
3586 2001-09-06  Richard Henderson  <rth@redhat.com>
3587
3588         * simplify-rtx.c (simplify_binary_operation): Simplify contents
3589         of CONST.
3590
3591 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3592
3593         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
3594         number used for CR register.
3595
3596 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
3597                           Joern Rennecke (amylaar@cygnus.com)
3598
3599         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
3600         * h8300.c (initial_offset): Handle offset between RP and FP.
3601         (h8300_return_addr_rtx): New function.
3602         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
3603         return register.
3604         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
3605         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
3606         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
3607         (CAN_ELIMINATE, REGISTER_NAMES):
3608         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
3609
3610 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
3611
3612         Remove TYPE_NONCOPIED_PARTS.
3613         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
3614         (struct tree_type): Remove noncopied_parts.
3615         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
3616         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
3617         (fixed_type_p): Remove.
3618         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
3619         (expand_expr, MODIFY_EXPR): Likewise.
3620         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
3621         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
3622
3623 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
3624
3625         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
3626         compiler warnings.
3627         (mask64_operand): Likewise.
3628         (includes_rldic_lshift_p): Likewise.
3629         (includes_rldicr_lshift_p): Likewise.
3630
3631 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
3632
3633         * objc/objc-act.c (build_message_expr): If a class method cannot
3634         be found, do not issue a warning if a corresponding instance
3635         method exists in the root class.
3636
3637 2001-09-05  Richard Henderson  <rth@redhat.com>
3638
3639         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
3640
3641 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
3642
3643         * function.c (ggc_mark_struct_function): Mark f->outer.
3644         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
3645         * integrate.c (output_inline_function): ... not here.
3646
3647 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
3648
3649         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
3650
3651         * i386.c (size_cost): New static variable.
3652         (override_function): Use size_cost when -Os is specified.
3653
3654         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
3655         properly;  Use current_function_calls_eh_return.
3656         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
3657         use leave to avoid depdendancy chain.
3658
3659         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
3660         get BB loop_depth instead of computing it from LOOP notes.
3661
3662         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
3663
3664 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3665
3666         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
3667         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
3668         UNALIGNED_DOUBLE_INT_ASM_OP): Define
3669
3670 2001-09-05  Jeffrey A Law  (law@cygnus.com)
3671             Jason Merrill (jason@redhat.com)
3672
3673         * stor-layout.c (layout_type): Complain if an array's size can
3674         not be represented in a size_t.
3675
3676         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
3677
3678 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
3679
3680         * gcc.c: (process_command) Add parentheses around assignment
3681         used as truth value.
3682
3683 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
3684
3685         * config/mips/mips.c (save_restore_insns): Don't mark any register
3686         save slots as unchanging if current_function_calls_eh_return.
3687
3688 2001-09-05  Richard Henderson  <rth@redhat.com>
3689
3690         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
3691         * config/alpha/alpha-protos.h: Declare it.
3692         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
3693         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
3694         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
3695         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
3696         (REG_OK_FOR_BASE_P): Select one of the above.
3697
3698 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
3699
3700         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
3701         (crti.o): Prefix name of object file with $(T).
3702         (crtn.o): Likewise.
3703
3704 2001-09-05  David S. Miller  <davem@redhat.com>
3705
3706         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
3707         * config/sparc/linux64.h: Likewise.
3708
3709 2001-09-05  Andreas Jaeger  <aj@suse.de>
3710
3711         * doc/invoke.texi (i386 Options): -mwide-multiply is not
3712         available anymore, remove the documentation.
3713         (i386 Options): Fix typo, cleanup index entries.
3714
3715         * prefix.c (concat): Remove, we can use the version from liberty.
3716
3717 2001-09-05  Richard Henderson  <rth@redhat.com>
3718
3719         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
3720         New functions split out of md file expanders.
3721         * config/alpha/alpha-protos.h: Declare them.
3722         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
3723
3724 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3725
3726         * cppmacro.c (funlike_invocation_p): No need to restore context.
3727
3728 2001-09-04  Richard Henderson  <rth@redhat.com>
3729
3730         * reload.c (push_reload): Export.
3731         * reload.h (push_reload): Declare it.
3732
3733         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
3734         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
3735         * config/alpha/alpha.c (alpha_legitimize_address): New.
3736         (alpha_legitimize_reload_address): Likewise.
3737         * config/alpha/alpha-protos.h: Declare them.
3738
3739 2001-09-04  Stan Shebs  <shebs@apple.com>
3740
3741         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
3742         * config/darwin.c (machopic_stub_name): Account for internally
3743         generated lib calls such as memcpy.
3744
3745 2001-09-04  Richard Henderson  <rth@redhat.com>
3746
3747         * unwind.h (_UA_END_OF_STACK): New flag.
3748         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
3749
3750 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
3751
3752         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
3753
3754 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
3755
3756         * config/mips/mips.c (save_restore_insns): Change base_offset to
3757         fp_offset in second call to mips_emit_frame_related_store.
3758
3759 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
3760
3761         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
3762         sometimes be represented as a NOTE of type
3763         NOTE_INSN_DELETED_LABEL.
3764         (Insns): Document NOTE_INSN_DELETED_LABEL.
3765
3766 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
3767
3768         * c-common.h (tree_dump_index): Add more comments.
3769         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
3770         (dump_option_value_info): New struct.
3771         (dump_options): New array.
3772         (dump_switch_p): Parse switch options symbolically.
3773         * doc/invoke.texi (-fdump-ast): Rename to ...
3774         (-fdump-tree): ... here. Document that options are symbolic, and
3775         not all are applicable.
3776
3777 2001-09-04  David S. Miller  <davem@redhat.com>
3778
3779         * config/sparc/sparc.md (define_splits): Kill constraints.
3780
3781         Cleanup redundant and unused insn attributes.
3782         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
3783         binary, and move.  Mark ialu as default.
3784         (commented out define_function_unit "alu"): Kill.
3785         (define_attr "use_clobbered"): Kill.
3786         (whole file): Kill address insn type references.  Replace
3787         all unary/binary/move references with ialu.
3788         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
3789         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
3790         TYPE_IALU.
3791
3792         Simplify length insn attribute and make more judicious use
3793         of insn attribute defaulting.
3794         * config/sparc/sparc.md (all insns with length > one): Mark as
3795         insn type multi if real instructions, else use default if
3796         it is a forced splitter.
3797         (all insns with length == one): Use default insn length.
3798         (all insns of type ialu): Use default insn type.
3799
3800         Fix erroneous insn attribute settings.
3801         (addx): Set insn type to misc.
3802         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
3803         const_umulsidi3_sp64): Set insn type to imul.
3804
3805         Track SFmode vs DFmode insns according to UltraSPARC
3806         scheduling rules.
3807         * config/sparc/sparc.md ("fptype"): New attribute, default
3808         to "single".
3809         (all DFmode single insns): Mark as fptype "double".
3810
3811 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
3812
3813         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
3814
3815 2001-09-03  Richard Henderson  <rth@redhat.com>
3816
3817         * function.h (struct function): Add arg_pointer_save_area_init.
3818         * function.c (expand_function_end): Init arg_pointer_save_area.
3819         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
3820         when called from a nested function.
3821
3822 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
3823
3824         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
3825         is enabled.
3826
3827 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
3828
3829         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
3830
3831 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
3832
3833         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
3834         (emit_push_insn): Use specified padding direction when
3835         STACK_PUSH_CODE is POST_INC.
3836
3837         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
3838
3839 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3840
3841         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
3842
3843 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3844
3845         * cppinit.c (cpp_start_read): Free the imacros list as we
3846         traverse it.  Don't free the chains before returning.
3847         (_cpp_push_next_buffer): Only try pushing buffers if we've
3848         completed -imacros handling.
3849
3850 2001-08-31  Eric Christopher  <echristo@redhat.com>
3851
3852         * gcc.c (handle_braces): Add explaination for abort.
3853
3854 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
3855
3856         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
3857         move adjustment of bitpos instead.
3858
3859 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
3860
3861         * function.c: Remove all_functions.  Make outer_function_chain
3862         static.
3863         (init_function_start): Don't add new function structure to
3864         all_functions.
3865         (find_function_data, push_function_context_to,
3866         pop_function_context_from, put_var_into_stack,
3867         trampoline_address): Update for changed structure element names.
3868         (push_function_context_to): Disentangle.
3869         (free_after_compilation): Also free F.
3870         (expand_dummy_function_end): Don't free cfun here.
3871         (put_var_into_stack): Comment why we can't use find_function_data here.
3872         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
3873         (mark_function_chain): Split into maybe_mark_struct_function and
3874         ggc_mark_struct_function.  Export the latter.
3875         (init_function_once): Mark from cfun and outer_function_chain;
3876         not all_functions.
3877
3878         * function.h (struct function): Kill next_global.  Rename next
3879         to outer.  All users updated to match.
3880         (all_functions, outer_function_chain): Don't declare.
3881
3882         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
3883         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
3884         don't touch f->inlinable, after calling rest_of_compilation.
3885
3886         * tree.h: Forward-declare struct function.  Prototype
3887         ggc_mark_struct_function.
3888
3889 2001-08-31  Kazu Hirata  <kazu@hxi.com>
3890
3891         * config/h8300/h8300.md (*andorhi3): Fix typos.
3892
3893 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3894
3895         * calls.c (emit_library_call_value): Don't use a fixed
3896         argument after VA_CLOSE, i.e. out of scope in traditional C.
3897
3898         * emit-rtl.c (gen_rtvec): Likewise.
3899
3900 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3901
3902         * Makefile.in (c-pragma.o): Depend on output.h.
3903         (reorg.o): Depend on except.h.
3904
3905         * c-pragma.c: Include output.h.
3906
3907         * reorg.c: Include except.h.
3908
3909         * unwind-dw2.c: Call __builtin_alloca, not alloca.
3910
3911 2001-08-31  Richard Henderson  <rth@redhat.com>
3912
3913         * sched-deps.c (add_dependence): Don't elide dependancy if the
3914         conditional used by insn is modified in elem.
3915
3916 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
3917
3918         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
3919
3920 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
3921
3922         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
3923         dump_switch_p.
3924
3925 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
3926
3927         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
3928         function.
3929         (stormy16_asm_out_constructor): New function.
3930         (TARGET_ASM_CONSTRUCTOR): Define.
3931         (TARGET_ASM_DESTRUCTOR): Define.
3932
3933 2001-08-31  Andreas Jaeger  <aj@suse.de>
3934
3935         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
3936         * loop.c (add_label_notes): Likewise.
3937         * reload.c (find_reloads): Likewise.
3938         * config/sh/sh.c (machine_dependent_reorg): Likewise.
3939
3940 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
3941
3942         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
3943         code here.  Take _Unwind_{W,Sw}ord*.
3944         (read_encoded_value_with_base): Use them.
3945         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
3946         words.
3947         (extract_cie_info): Simplify read_?leb128 handling.
3948         (execute_stack_op, execute_cfa_program): Likewise.
3949         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
3950
3951 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
3952
3953         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
3954         the frame pointer to pop the stack if convenient.
3955
3956         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
3957         Don't use post-increment before combine.
3958         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
3959         a call-saved register.
3960
3961 2001-08-31  Andreas Jaeger  <aj@suse.de>
3962
3963         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
3964         code was correct.
3965
3966 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
3967
3968         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
3969         not DIV/MOD, of course.
3970
3971 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
3972
3973         * rtl.def: Undo my patch commited 2001-08-27.
3974
3975         * genattrtab.c: Ditto.
3976
3977         * rtl.h: Ditto.
3978
3979         * sched-int.h: Ditto.
3980
3981         * target-def.h: Ditto.
3982
3983         * target.h: Ditto.
3984
3985         * haifa-sched.c: Ditto.
3986
3987         * sched-rgn.c: Ditto.
3988
3989         * sched-vis.c: Ditto.
3990
3991         * Makefile.in: Ditto.
3992
3993         * doc/md.texi: Ditto.
3994
3995         * doc/tm.texi: Ditto.
3996
3997         * doc/contrib.texi: Ditto.
3998
3999         * doc/gcc.texi: Ditto.
4000
4001         * genattrtab.h: Remove it.
4002
4003         * genautomata.c: Remove it.
4004
4005         * genattr.c: Undo my patch and Richard Henderson's patch commited
4006         2001-08-27.
4007
4008 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
4009
4010         * config.gcc (h8300-*-elf*): New case.
4011         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
4012         (SUBTARGET_CPP_SPEC): Define.
4013         (EXTRA_SPECS): Define.
4014         (SUBTARGET_EXTRA_SPECS): Define.
4015         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
4016         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
4017
4018 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
4019
4020         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
4021         (LIB2FUNCS_EXTRA): Define.
4022         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
4023         config/h8300/fixunssfsi.c: New file.
4024
4025 2001-08-30  Kazu Hirata  <kazu@hxi.com>
4026
4027         * config/h8300/h8300.md (zero_extendqihi2): Changes to
4028         define_expand to accomodate target-specific attributes.
4029         (anonymous zero_extendqihi2 patterns): New.
4030
4031 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
4032
4033         * h8300.md (*andorhi3): New pattern.
4034
4035 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
4036
4037         * h8300.c (dosize): Fix test for "sub".
4038
4039 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
4040
4041         * c-typeck.c (pointer_diff): Try to eliminate common term before
4042         doing conversions.
4043
4044 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
4045
4046         * config/arm/arm.c (arm_compute_initial_elimination_offset):
4047         Account for the saves of the FP registers.
4048
4049         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
4050         (TEXT_SECTION_ASM_OP): Define.
4051         (INIT_SECTION_ASM_OP): Define.
4052         (FINI_SECTION_ASM_OP): Define.
4053         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
4054         (RDATA_SECTION_FUNCITON): Provide prototype.
4055
4056 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
4057
4058         * reload1.c (move2add_note_store): Correct typo checking for
4059         argument pushes.
4060
4061 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
4062
4063         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
4064         note should not be considered outside the libcall block.
4065
4066 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4067
4068         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
4069
4070 2001-08-29  Kazu Hirata  <kazu@hxi.com>
4071
4072         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
4073
4074 2001-08-29  Kazu Hirata  <kazu@hxi.com>
4075
4076         * config/h8300/h8300-protos.h: Add a prototype for
4077         emit_logical_op.
4078         * config/h8300/h8300.c (emit_logical_op): New.
4079         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
4080         (andsi3): Likewise.
4081         (iorhi3): Likewise.
4082         (iorsi3): Likewise.
4083         (xorhi3): Likewise.
4084         (xorsi3): Likewise.
4085
4086 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4087
4088         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
4089         comparison with rtx INTVAL.
4090         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
4091         expression.
4092         * pa.h (FUNCTION_ARG_SIZE): Likewise.
4093
4094 2001-08-29  Kazu Hirata  <kazu@hxi.com>
4095
4096         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
4097         comment typos.
4098
4099 2001-08-29  Kazu Hirata  <kazu@hxi.com>
4100
4101         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
4102         (reg n) to (mem (pre_dec (reg n))
4103         (anonymous movsi pattern): Likewise.
4104
4105 2001-08-29  Kazu Hirata  <kazu@hxi.com>
4106
4107         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
4108
4109 2001-08-29  Kazu Hirata  <kazu@hxi.com>
4110
4111         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
4112         several special constants.
4113
4114 2001-08-29  Kazu Hirata  <kazu@hxi.com>
4115
4116         * config/h8300/lib1funcs.asm: Fix comment typos.
4117
4118 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4119
4120         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
4121         Fix format specifier warnings.
4122
4123         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
4124         inet_makeaddr, semctl): Prototype.
4125
4126         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
4127         (save_restore_insns): Use base_offset, not gp_offset.
4128
4129         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
4130         (ASM_OUTPUT_BYTE): Fix format specifier warning.
4131
4132 2001-08-29  Richard Henderson  <rth@redhat.com>
4133
4134         * bb-reorder.c (function_tail_eff_head): New.
4135         (record_effective_endpoints): Set it.
4136         (fixup_reorder_chain): Use it.
4137
4138 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4139
4140         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
4141
4142 2001-08-28  Dale Johannesen  <dalej@apple.com>
4143
4144         * config/darwin.c (machopic_function_base_name): Add const
4145         qualifier to a string.
4146         (darwin_encode_section_info): Ditto.
4147
4148 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4149
4150         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
4151         function definition.
4152
4153 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
4154
4155         * df.h (struct df): Add rts_order variable.
4156
4157         * df.c (df_visit_next_rts): New function.
4158         (df_visit_next): Renamed to df_visit_next_rc
4159         (df_analyse_1): Allocate/compute/free rts_order as well.
4160         (df_rd_global_compute): Use df_visit_next_rc instead of
4161         df_visit_next.
4162         (df_ru_global_compute): Use df_visit_next_rts instead of
4163         df_visit_next.
4164
4165         * flow.c (flow_reverse_top_sort_order_compute): New function.
4166
4167         * basic-block.h: Add prototype.
4168
4169 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
4170
4171         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
4172         blocks, the BB_REACHABLE is now set, rather than aux being
4173         non-NULL. Update the test to reflect this.
4174
4175 2001-08-28  Eric Christopher  <echristo@redhat.com>
4176
4177         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
4178         config/mips/crti.asm: Ditto.
4179
4180 2001-08-28  Eric Christopher <echristo@redhat.com>
4181             Richard Henderson <rth@redhat.com>
4182
4183         * c-pragma.h (add_weak): Move prototype from here...
4184         * output.h (add_weak): ... to here.
4185         * varasm.c (add_weak): Fix typo.
4186         * config/mips/crti.asm: New file.
4187         * config/mips/crtn.asm: Ditto.
4188         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
4189         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
4190         (INVOKE__main): Ditto.
4191         (INIT_SECTION_ASM_OP): New.
4192         (FINI_SECTION_ASM_OP): Ditto.
4193         (STARTFILE_SPEC): Add crti.
4194         (ENDFILE_SPEC): Add crtn.
4195         * config/mips/elf64.h: Same.
4196         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
4197         Remove.
4198         * config/mips/vxworks.h: Ditto.
4199         * config/mips/t-elf: Support crti and crtn.
4200
4201 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
4202
4203         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
4204         INSN_LIST.
4205
4206 2001-08-28  Richard Henderson  <rth@redhat.com>
4207
4208         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
4209         (one_cmplbi2 splitter): Remove redundant test.
4210
4211 2001-08-28  Dale Johannesen  <dalej@apple.com>
4212
4213         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
4214
4215 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
4216
4217         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
4218
4219 2001-08-28  Stan Shebs  <shebs@apple.com>
4220
4221         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
4222         (UNALIGNED_SHORT_ASM_OP): Define.
4223         (UNALIGNED_INT_ASM_OP): Define.
4224
4225 2001-08-28  Will Cohen  <wcohen@redhat.com>
4226
4227         * config/rs6000/rs6000.md (store_multiple): Correct RTL
4228         generation for first set.
4229
4230 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
4231
4232         * flow.c (redirect_edge_succ_nodup): Return new edge.
4233         (try_simplify_condjump): Use new edge.
4234         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
4235
4236         * cse.c (cse_basic_block): Skip note instructions.
4237
4238 2001-08-27  Richard Henderson  <rth@redhat.com>
4239
4240         * combine.c (combine_simplify_rtx): Don't reverse condition
4241         if there is no reverse for the condition.
4242         (simplify_comparison): Don't simplify subregs from INT to FP.
4243
4244         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
4245         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
4246         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
4247         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
4248         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
4249         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
4250
4251 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
4252
4253         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
4254         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
4255         (pushqi1): New.
4256         (adddi_dilshr32, adddi_dishl32): Only data register can be
4257         source for mem destination.
4258
4259         * expmed.c (store_bit_field): Ignore adjustment to bitpos
4260         and use bitnum to decide about register move.
4261
4262 2001-08-27  Richard Henderson  <rth@redhat.com>
4263
4264         * genattr.c (main): Emit state_t even when not doing scheduling.
4265
4266 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
4267             Richard Henderson  <rth@redhat.com>
4268
4269         * gcse.c (reg_first_set, reg_last_set): Replace with ...
4270         (reg_avail_info, current_bb): ... these.
4271         (oprs_unchanged_p, record_last_reg_set_info): Use them.
4272         (compute_hash_table): Likewise.
4273
4274 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
4275
4276         * flow.c (verify_flow_info): Use checksums to verify edges.
4277
4278 2001-08-27  Richard Henderson  <rth@redhat.com>
4279
4280         * genautomata.c (expand_automata): Always create a description.
4281
4282 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
4283
4284         * optabs.c (expand_binop): Correctly handle the carry in multiword
4285         add/subtract operations.
4286
4287 2001-08-27  Fred Fish  <fnf@be.com>
4288
4289         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
4290         __SIZE_TYPE__.
4291
4292 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
4293
4294         * reload.c (find_reloads_toplev): Back out this change:
4295
4296         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
4297
4298         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
4299         mem if the address is a mode_dependent_address_p.
4300
4301 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
4302
4303         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
4304         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
4305         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
4306         RTL constructions.
4307
4308         * genattr.c (main): New variable num_insn_reservations.  Increase
4309         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
4310         pipeline hazard recognizer interface.
4311
4312         * genattrtab.h: New file.
4313
4314         * genattrtab.c: Include genattrtab.h.
4315         (attr_printf, check_attr_test, make_internal_attr,
4316         make_numeric_value): Move protypes into genattrtab.h.  Define them
4317         as external.
4318         (num_dfa_decls): New global variable.
4319         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
4320         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
4321         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
4322         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
4323
4324         * genautomata.c: New file.
4325
4326         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
4327
4328         * sched-int.h: (curr_state): Add the external definition for
4329         automaton pipeline interface.
4330         (haifa_insn_data): Add comments for members blockage and units.
4331
4332         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
4333         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
4334         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
4335         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
4336         TARGET_SCHED_DFA_POST_CYCLE_INSN,
4337         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
4338         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
4339         macros.
4340         (TARGET_SCHED): Use the new macros.
4341
4342         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
4343         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
4344         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
4345         dfa_bubble): New members in gcc_target.sched.
4346
4347         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
4348         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
4349         (insn_queue): Redefine it as pointer to array.
4350         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
4351         INSN_QUEUE_SIZE.
4352         (max_insn_queue_index_macro_value): New variable.
4353         (curr_state, dfa_state_size, ready_try): New varaibles for
4354         automaton interface.
4355         (ready_element, ready_remove, max_issue): New function prototypes
4356         for automaton interface.
4357         (choose_ready): New function prototype.
4358         (insn_unit, blockage_range): Add comments.
4359         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
4360         FUNCTION_UNITS_SIZE == 0.
4361         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
4362         actual_hazard, potential_hazard): Add comments.
4363         (insn_cost): Use cost -1 as undefined value.  Remove
4364         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
4365         pipeline interface.
4366         (ready_element, ready_remove): New functions for automaton
4367         interface.
4368         (schedule_insn): Add new code for automaton pipeline interface.
4369         (queue_to_ready): Add new code for automaton pipeline interface.
4370         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
4371         (debug_ready_list): Print newline when the queue is empty.
4372         (max_issue): New function for automaton pipeline interface.
4373         (choose_ready): New function.
4374         (schedule_block): Add new code for automaton pipeline interface.
4375         Print ready list before scheduling each insn.
4376         (sched_init): Add new code for automaton pipeline interface.
4377         Initiate insn cost by -1.
4378         (sched_finish): Free the current automaton state and finalize
4379         automaton pipeline interface.
4380
4381         * sched-rgn.c: Include target.h.
4382         (init_ready_list, new_ready, debug_dependencies): Add new code for
4383         automaton pipeline interface.
4384
4385         * sched-vis.c: Include target.h.
4386         (get_visual_tbl_length): Add code for automaton interface.
4387         (target_units, print_block_visualization):  Add comments.
4388
4389         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
4390         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
4391         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
4392         (getruntime.o, genautomata.o): New entries.
4393         (genattrtab.o): Add new dependency file genattrtab.h.
4394         (genattrtab): Add new dependencies.  Link it with `libm.a'.
4395         (getruntime.o, hashtab.o): New entries for canadian cross.
4396
4397         * doc/md.texi: Description of automaton based model.
4398
4399         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
4400         Add comments.
4401         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
4402         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
4403         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
4404         TARGET_SCHED_DFA_POST_CYCLE_INSN,
4405         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
4406         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
4407         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
4408         hook descriptions.
4409         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
4410         MAX_DFA_ISSUE_RATE): New macro descriptions.
4411
4412         * doc/contrib.texi: Add dfa based scheduler contribution.
4413
4414         * doc/gcc.texi: Add more information about genattrtab.
4415
4416 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
4417
4418         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
4419         an RTL basic block.
4420
4421 2001-08-27  Richard Henderson  <rth@redhat.com>
4422
4423         * function.c (expand_function_end): Don't init arg_pointer_save_area.
4424         (get_arg_pointer_save_area): New.  Create an init it here.
4425         (fix_lexical_addr): Use it.
4426         * function.h: Declare it.
4427         * builtins.c (expand_builtin_setjmp_receiver): Use it.
4428         * stmt.c (expand_nl_goto_receiver): Use it.
4429
4430 2001-08-27  Richard Henderson  <rth@redhat.com>
4431
4432         * final.c (final_scan_insn): Don't enter APP_ON mode for
4433         empty asm strings.
4434
4435         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
4436         alignment for assemble_integer for DW_EH_PE_aligned.
4437         * except.c (output_function_exception_table): Likewise.
4438
4439 2001-08-26  Andreas Jaeger  <aj@suse.de>
4440
4441         * c-tree.h: Add prototyp for c_sizeof_nowarn.
4442
4443 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
4444
4445         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
4446
4447 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
4448
4449         * config/rs6000/rs6000.c (mask_operand): Rewrite without
4450         bit-shifting loop.
4451         (mask64_operand): Likewise.
4452         (rldic_operand): Delete.
4453         (includes_lshift64_p): Delete.
4454         (includes_rldic_lshift_p): New function.
4455         (includes_rldicr_lshift_p): New function.
4456         (print_operand): Don't call rldic_operand in case 'W'.
4457         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
4458         (includes_lshift64_p): Remove.
4459         (includes_rldic_lshift_p): Declare.
4460         (includes_rldicr_lshift_p): Declare.
4461         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
4462         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
4463         Replace match_operand rldic_operand predicate with
4464         const_int_operand.  Replace includes_lshift64_p condition with
4465         includes_rldic_lshift_p.
4466         <ashldi3_internal 64 bit rldicr patterns>: New.
4467
4468 2001-08-27  Andreas Jaeger  <aj@suse.de>
4469
4470         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
4471         * errors.c: Likewise.
4472         * final.c: Likewise.
4473         * dwarf2asm.c: Likewise.
4474         * doprint.c (checkit): Likewise.
4475         * diagnostic.c: Likewise.
4476         * collect2.c: Likewise.
4477         * calls.c: Likewise.
4478         * c-semantics.c (build_stmt): Likewise.
4479         * c-format.c (status_warning): Likewise.
4480         * c-errors.c (pedwarn_c99): Likewise.
4481         * builtins.c (validate_arglist): Likewise.
4482         * config/pj/pj.c (pj_printf): Likewise.
4483         * fix-header.c: Likewise.
4484         * gcc.c: Likewise.
4485         * gcov.c (fnotice): Likewise.
4486         * gensupport.c (message_with_line): Likewise.
4487         * mips-tfile.c: Likewise.
4488         * protoize.c (notice): Likewise.
4489         * read-rtl.c (fatal_with_file_and_line): Likewise.
4490         * rtl-error.c: Likewise.
4491         * tradcpp.c: Likewise.
4492         * tree.c: Likewise.
4493         * cp/tree.c (build_min_nt): Likewise.
4494         (build_min): Likewise.
4495         * cp/lex.c: Likewise.
4496         * cp/errfn.c: Likewise.
4497         * cp/rtti.c (create_pseudo_type_info): Likewise.
4498
4499 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
4500
4501         * df.c (df_uses_record): Return after recording all uses
4502         in ASM_OPERANDS.
4503
4504 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
4505
4506         * df.c (df_insn_modify): Realloc the INSN table here, if
4507         necessary, here, too.
4508
4509 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
4510
4511         * config/mips/mips.c (mips_function_value): Handle complex return
4512         values.
4513
4514 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
4515
4516         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
4517         unshared.
4518         * reload.c (make_memloc): Copy result if it is still
4519         reg_equiv_memory_loc[regno] on return.
4520         (subst_reloads) [ENABLE_CHECKING]: Check that none of
4521         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
4522         reg_equiv_mem are modified by the substitutions.
4523
4524 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
4525
4526         * predict.c (expensive_function_p): New.
4527         * rtl.h (expensive_function_p): Declare.
4528         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
4529         (use_fast_prologue_epilogue): New static variable.
4530         (expand_prologue): Set it; emit short prologues if unset.
4531         (expand_epilogue): Likewise.
4532
4533 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
4534
4535         * config.gcc: Add stormy16-*-elf case.
4536         * config/stormy16/stormy-abi: New file.
4537         * config/stormy16/stormy16-lib2.c: New file.
4538         * config/stormy16/stormy16-protos.h: New file.
4539         * config/stormy16/stormy16.c: New file.
4540         * config/stormy16/stormy16.h: New file.
4541         * config/stormy16/stormy16.md: New file.
4542         * config/stormy16/t-stormy16: New file.
4543
4544 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
4545
4546         * i386.h (no-accumulate-outgoing-args): Use proper mask.
4547
4548 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
4549
4550         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
4551         descriptor members are pointer size, not constant 4.
4552         * config/rs6000/rs6000.md (define_splits): Remove more unused
4553         constraints.
4554
4555 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4556
4557         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
4558
4559 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
4560
4561         * cp/rtti.c (VPARAMS): Fix parameter.
4562
4563 2001-08-24  Zack Weinberg  <zackw@panix.com>
4564
4565         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
4566         to zero.
4567         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
4568         to switch.
4569         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
4570         in if controlling use of insv.
4571         (extract_bit_field): Likewise, for extv and extzv.
4572
4573 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
4574
4575         * i386.md (movcc peep2): Fix load of 0.
4576
4577 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4578
4579         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
4580         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
4581
4582 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
4583
4584         * c-pragma.h: Move weak_syms and weak_decls...
4585         * varasm.c: ...here.  Now static.
4586         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
4587         depend on HANDLE_PRAGMA_WEAK.
4588
4589         * c-common.c (c_alignof, c_alignof_expr): Move here...
4590         * c-typeck.c: ...from here.
4591         * c-tree.h, c-common.h: Adjust.
4592
4593 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
4594
4595         * config/ia64/ia64.c (rws_update): If !pred, set write_count
4596         instead of incrementing it.
4597
4598         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
4599         asm ready, don't try to move them all into the same array element.
4600
4601 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
4602
4603         * function.c (thread_prologue_and_epilogue_insns): Avoid
4604         fallthru flag on edge to exit.
4605
4606         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
4607
4608         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
4609         dead edges.
4610
4611 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
4612
4613         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
4614         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
4615         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
4616         Remove prototype.
4617
4618 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
4619
4620         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
4621         replace "GNU CC" with "GCC".
4622
4623 2001-08-23  Richard Henderson  <rth@redhat.com>
4624
4625         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
4626         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
4627         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
4628         Need GR between FR and not GR_AND_FR.
4629         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
4630         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
4631         AR regs before GR regs.
4632         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
4633         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
4634         (REGISTER_MOVE_COST): Update.
4635         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
4636
4637 2001-08-23  Richard Henderson  <rth@redhat.com>
4638
4639         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
4640         a register class.
4641
4642 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
4643
4644         * reload1.c (emit_reload_insns): Don't look for notes
4645         on a NULL store_insn.
4646
4647 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4648
4649         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
4650         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
4651         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
4652         format specifier warnings.
4653         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
4654
4655 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
4656
4657         * config/i386/i386-protos.h: Correct declaration of
4658         i386_pe_asm_named_section.
4659
4660 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4661
4662         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
4663         variable i.
4664         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
4665
4666 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4667
4668         * cpperror.c (print_location): Don't show _Pragma.
4669         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
4670         and file change callback generation here.
4671         (stack_include_file): Update use of cpp_push_buffer.
4672         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
4673         (struct cpp_buffer): Remove type, pfile members.
4674         * cppinit.c (cpp_handle_option): Use free_chain.
4675         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
4676         (skip_escaped_newlines, get_effective_char, lex_percent): Take
4677         a cpp_reader rather than a cpp_buffer.
4678         (skip_escaped_newlines, get_effective_char, skip_block_comment,
4679         skip_line_comment, parse_string, lex_percent, lex_dot,
4680         _cpp_lex_token): Update accordingly.
4681         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
4682         generation here.
4683         (cpp_push_buffer): Update prototype.
4684         (run_directive): Update use of cpp_push_buffer.
4685         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
4686         handle_assertion): Update use of run_directive.
4687         * cpplib.h (enum cpp_buffer_type): Remove.
4688         (cpp_push_buffer): Update prototype.
4689         * fix-header.c (read_scan_file): Update.
4690
4691 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
4692
4693         * gcc.c (struct prefix_list): Change prefix to const char *.
4694
4695 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
4696
4697         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
4698
4699 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
4700
4701         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
4702         from a new MEM.
4703
4704         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
4705         a squeezable note.
4706         * rtl.h: Adjust.
4707         * ifcvt.c (dead_or_predicable): Adjust.
4708         * loop.c (find_and_verify_loops): Adjust.
4709         * stmt.c (expand_end_case): Adjust.
4710         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
4711         head and end insn pointers in the basic block, not just local copies.
4712         (merge_blocks_move_predecessor_nojumps): Likewise.
4713
4714 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
4715
4716         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
4717         bitmap.h, builtin-types.def, builtins.c, builtins.def,
4718         c-aux-info.c, c-common.c, c-common.def, c-common.h,
4719         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
4720         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
4721         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
4722         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
4723         conditions.h, config.gcc, configure.frag, configure.in,
4724         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
4725         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
4726         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
4727         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
4728         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
4729         emit-rtl.c, errors.c, errors.h, except.c, except.h,
4730         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
4731         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
4732         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
4733         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
4734         gencheck.c, gencodes.c, genconfig.c, genemit.c,
4735         genextract.c, genflags.c, gengenrtl.c, genmultilib,
4736         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
4737         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
4738         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
4739         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
4740         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
4741         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
4742         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
4743         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
4744         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
4745         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
4746         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
4747         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
4748         params.h, predict.c, predict.def, predict.h, prefix.c,
4749         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
4750         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
4751         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
4752         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
4753         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
4754         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
4755         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
4756         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
4757         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
4758         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
4759         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
4760         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
4761         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
4762         xcoffout.h: replace "GNU CC" with "GCC".
4763
4764 2001-08-21  Richard Henderson  <rth@redhat.com>
4765
4766         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
4767         (final_scan_insn): Consider jump tables data even if we have no
4768         independant text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
4769         ADDR_VEC_ALIGN.
4770         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
4771         (ASM_OUTPUT_CASE_END): Remove.
4772         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
4773         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
4774         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
4775
4776 2001-08-21  Richard Henderson  <rth@redhat.com>
4777
4778         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
4779         at barrier insns.  Emit stop bits before barriers.
4780
4781         * flow.c (flow_find_cross_jump): Don't consider unconditional
4782         return insns for commoning.
4783
4784         * final.c (compute_alignments): Fix typo.
4785
4786         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
4787         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
4788         (store_bit_field): Use mode_for_extraction more places.
4789         (extract_bit_field): Likewise.
4790
4791 2001-08-21  Zack Weinberg  <zackw@panix.com>
4792
4793         * caller-save.c: Don't include insn-codes.h.
4794         (reg_save_code, reg_restore_code): Make arrays of int.
4795         All uses updated to match.
4796         (insert_save, insert_restore): No need to initialize "code"
4797         variable upon declaration.
4798         * Makefile.in: update dependencies; fix typo in clean rule.
4799
4800 2001-08-21  Richard Henderson  <rth@redhat.com>
4801
4802         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
4803         (merge_if_block): Handle fallout from same.
4804
4805 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4806
4807         * builtins.c (type_to_class): Fix typo in last change.
4808
4809 2001-08-21  Richard Henderson  <rth@redhat.com>
4810
4811         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
4812         ia64_asm_output_label.
4813
4814         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
4815         copy of gp while the real gp register contains garbage.
4816
4817 2001-08-21  Zack Weinberg  <zackw@panix.com>
4818
4819         * expmed.c (mode_for_extraction): New function.
4820         (store_bit_field, extract_bit_field): Use it.
4821         * expr.h: Prototype it and provide an enum for its first argument.
4822
4823         * combine.c, function.c, recog.c: Don't include insn-codes.h.
4824         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
4825         and digging through the insn_data tables.
4826         * Makefile.in: Update dependencies.
4827
4828 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4829
4830         * cppfiles.c (stack_include_file): line-map.c now handles include
4831         depth.
4832         (handle_missing_handler): Similarly.
4833         (_cpp_execute_include): Similarly.
4834         (_cpp_pop_file_buffer): Similarly.
4835         * cpphash.h (struct cpp_reader): Remove system_include_depth,
4836         buffer_stack_depth and include_depth.
4837         * cpplib.c (do_include_common): line-map.c now handles include depth.
4838         (cpp_push_buffer): Similarly.
4839         (_cpp_pop_buffer): Similarly.
4840         * cppmacro.c (builtin_macro): Update.
4841         * line-map.c (init_line_maps): Set depth.
4842         (add_line_map): Increment "used" earlier.  Update and use the
4843         include depth.
4844         (trace_include): Use the include depth.
4845         * line-map.h (struct line_maps): New member depth.
4846
4847 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4848
4849         * cppfiles.c (stack_include_file): Don't handle -H here.
4850         * cppinit.c (cpp_start_read): Set include tracing after
4851         cpp_post_options and after stacking the main file.
4852         * line-map.c (trace_include): New.
4853         (init_line_maps, add_line_map): Update.
4854         * line-map.h (struct line_maps): New member trace_includes.
4855
4856 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4857
4858         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
4859         * cppfiles.c (stack_include_file): Only stack a file if there
4860         is something to do.  Return a boolean indicating whether a
4861         buffer was stacked or not.
4862         (_cpp_execute_include): Similarly.
4863         (_cpp_read_file): Similarly.
4864         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
4865
4866 2001-08-21  Sam Steingold  <sds@gnu.org>
4867
4868         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
4869         (RECACHE): keep obufp_before_macroname up to date
4870
4871 2001-08-21  Zack Weinberg  <zackw@panix.com>
4872
4873         * stmt.c: Don't include insn-codes.h.
4874         (expand_end_case): Machine specific logic moved to expr.c.
4875         No need to worry about __builtin_classify_type.
4876         (check_for_full_enumeration_handling, emit_case_nodes):
4877         Kill #if 0 blocks.
4878
4879         * builtins.o (expand_builtin_classify_type): Split up so code
4880         can be shared with fold_builtin_classify_type.
4881         (type_to_class, fold_builtin_classify_type): New functions.
4882         (fold_builtins): Handle __builtin_classify_type.
4883
4884         * expr.c (do_tablejump): Now static.
4885         (case_values_threshold, try_casesi, try_tablejump): New;
4886         code mostly from stmt.c (expand_end_case).
4887         (expr.h): Update prototypes.
4888
4889         * Makefile.in (stmt.o): Update dependencies.
4890
4891 2001-08-21  Will Cohen  <wcohen@redhat.com>
4892
4893         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
4894         declaration of variable i.
4895         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
4896         declaration of variable i.
4897
4898 2001-08-21  Richard Henderson  <rth@redhat.com>
4899
4900         * crtstuff.c: Fix thinko last change.  Move list tails to start
4901         of CRT_END section.  Tidy ifdefs.
4902         (__EH_FRAME_BEGIN__): Always static for ELF.
4903         (__do_global_ctors_1): Rename from __frame_dummy.
4904         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
4905         name change; don't hide __EH_FRAME_BEGIN__.
4906
4907 2001-08-21  Richard Henderson  <rth@redhat.com>
4908
4909         * gdbinit.in: Move break on exit after break on fancy_abort.
4910
4911         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
4912         sized types.
4913
4914 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4915
4916         * cpphash.h (_cpp_push_next_buffer): New.
4917         * cppinit.c (do_includes): Remove.
4918         (push_include, free_chain, _cpp_push_next_buffer): New.
4919         (cpp_start_read): Use them to rework command line option handling.
4920         (cpp_handle_option): Combine handling of -include and -imacros.
4921         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
4922         appropriate.  Always insert missing \n at EOF.
4923         * cpplib.c (start_directive): Get the directive position right.
4924         * cppmain.c (cb_file_change): Always print the first line, unless
4925         preprocessed.
4926
4927 2001-08-20  Andreas Jaeger  <aj@suse.de>
4928
4929         * profile.c (compute_branch_probabilities): Remove extra new-line
4930         in error message.
4931         * flow.c (verify_flow_info): Likewise.
4932
4933 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
4934
4935         * basic-block.h (basic_block): Add new field 'flags'.
4936         (BB_REACHABLE): Define.
4937         (expunge_block): Declare.
4938         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
4939         (EXIT_BLOCK_PTR): Ditto.
4940         (expunge_block): Remove static declaration.
4941         (cleanup_cfg): Clear bb->aux on every basic block.
4942         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
4943         computing reachability.
4944         (delete_unreachable_blocks): Delete block b if b->flags has
4945         BB_REACHABLE unset.
4946
4947 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
4948
4949         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
4950
4951 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4952
4953         * sparc.c (sparc_variable_issue): Fix typo in last change.
4954
4955 2001-08-20  Richard Henderson  <rth@redhat.com>
4956
4957         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
4958
4959 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4960
4961         * pa.h (RETURN_IN_MEMORY): Improve comment.
4962
4963 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
4964
4965         * doc/invoke.texi (Profiling options): Clarify the interactions
4966         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
4967
4968 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
4969
4970         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
4971         command.
4972
4973 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
4974
4975         * gcc.c (make_relative_prefix): Allocate a sufficiently large
4976         buffer.
4977
4978 2001-08-20  Richard Henderson  <rth@redhat.com>
4979
4980         * final.c (end_final): Fix typo last change.
4981
4982 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
4983
4984         * cppinit.c (init_standard_includes): The returned buffer
4985         is already malloc-ed.
4986         * gcc.c (add_prefix): Similarly.
4987         * prefix.c (translate_name): Update to support clear buffer
4988         ownership rules.
4989         (update_path): Similarly.  Be sure to free any newly allocated
4990         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
4991         (tr): New function.
4992         * prefix.h (update_path): Update prototype and document.
4993         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
4994         up and update to new buffer ownership rules.
4995         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
4996
4997 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
4998
4999         * final.c (compute_alignments): New function.
5000         (init_insn_lengths): Do not care label_align.
5001         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
5002         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
5003         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
5004         (shorted_branches): Realloc label_align array; do
5005         not call init_insn_lengths; Do not care about loop alignments.
5006         * output.h (compute_alignments): Declare.
5007         * toplev.c (rest_of_compilation): Call compute_alignments.
5008         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
5009
5010         * predict.c (block_info_def): Add npredecesors, remove nvisited;
5011         change visited to tovisit.
5012         (propagate_freq): Use faster traversing algorithm.
5013         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
5014         to tovisit; reverse meaning.
5015
5016         * predict.c (struct block_info_def): Remove nvisited.
5017         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
5018         (estimate_bb_frequencies): Call mark_dfs_back_edges.
5019
5020 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
5021
5022         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
5023         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
5024         (TARGET_FUSED_MADD): New.
5025         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
5026         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
5027         the multiply-add instructions.
5028
5029 2001-08-19  Richard Henderson  <rth@redhat.com>
5030
5031         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
5032         is aligned to pointer size.
5033
5034 2001-08-19  Richard Henderson  <rth@redhat.com>
5035
5036         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
5037         display markers during final schedule.
5038
5039 2001-08-19  Richard Henderson  <rth@redhat.com>
5040
5041         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
5042
5043 2001-08-19  Richard Henderson  <rth@redhat.com>
5044
5045         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
5046         in the same string.
5047         (ASM_NAME_TO_STRING): Remove.
5048         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
5049         in the same string.  Remove support for expressions.
5050
5051 2001-08-19  Richard Henderson  <rth@redhat.com>
5052
5053         * config/i386/i386.md (tablejump): Make an expander; handle
5054         pic relative addressing here.
5055         (tablejump_1): Rename from tablejump_pic.
5056         (casesi): Remove.
5057
5058 2001-08-19  Richard Henderson  <rth@redhat.com>
5059
5060         * regclass.c (fix_register): Fix typo.
5061
5062 2001-08-18  Richard Henderson  <rth@redhat.com>
5063
5064         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
5065         (struct _Unwind_Context): Expand br_loc to hold it.
5066         (uw_frame_state_for): Handle leaf functions better.
5067         (uw_update_reg_address): Update for br_loc change.
5068
5069 2001-08-18  Richard Henderson  <rth@redhat.com>
5070
5071         * crtstuff.c: Move list heads before code that uses them.
5072         (__JCR_LIST__): Remove initial null.
5073         (frame_dummy, __frame_dummy): Do java registration here ...
5074         (__do_global_ctors_aux): ... not here.
5075
5076         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
5077         (__do_global_dtors_aux): Update to match.
5078         (__JCR_LIST__, __do_jv_register_classes): New.
5079         (.init): Call it.
5080         * config/ia64/crtend.asm (__JCR_END__): New.
5081         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
5082         instead of an indirect LTOFF22 reloc.
5083
5084 2001-08-18  Richard Henderson  <rth@redhat.com>
5085
5086         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
5087         * regclass.c (init_reg_sets_1): Fix typo.
5088         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
5089         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
5090         (ia64_compute_frame_size): Make ar.unat live when in use.
5091         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
5092         for ar.pfs; remove ar.unat handling.
5093         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
5094         call-saved.
5095         (PREDICATE_CODES): Add ar_pfs_reg_operand.
5096         * config/ia64/ia64-protos.h: Update decls.
5097         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
5098         (sibcall_pic): Likewise.
5099
5100 2001-08-18  Richard Henderson  <rth@redhat.com>
5101
5102         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
5103         pred_rel_mutex when searching for insn_group_barrier.
5104         * config/ia64/ia64.md (cycle_display): Combine the expander
5105         and insn patterns.
5106
5107         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
5108         bit before asm as needed.
5109
5110 2001-08-18  Richard Henderson  <rth@redhat.com>
5111
5112         * timevar.def (TV_MACH_DEP): New.
5113         * toplev.c (rest_of_compilation): Use it.
5114         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
5115
5116 2001-08-18  Zack Weinberg  <zackw@panix.com>
5117
5118         * unwind-dw2.c (execute_stack_op): Add default aborts to
5119         the inner switches to prevent warnings.
5120
5121 2001-08-18  Richard Henderson  <rth@redhat.com>
5122
5123         * timevar.h (struct timevar_time_def): Change element type to float.
5124         (ticks_to_msec, clocks_to_msec): Likewise.
5125         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
5126         (get_time): Likewise.
5127         (timevar_print): Adjust zero check and printing to match.
5128
5129 2001-08-18  Zack Weinberg  <zackw@panix.com>
5130
5131         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
5132         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
5133         Eliminate overfull or underfull hboxes.
5134
5135 2001-08-18  Zack Weinberg  <zackw@panix.com>
5136
5137         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
5138
5139 2001-08-18  Zack Weinberg  <zackw@panix.com>
5140
5141         * haifa-sched.c: Convert to target hooks.  Macros replaced
5142         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
5143         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
5144         MD_SCHED_FINISH, and HAVE_cycle_display.
5145         * target-def.h (TARGET_SCHED_ADJUST_COST,
5146         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
5147         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
5148         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
5149         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
5150         New hook #defines to be overridden.
5151         (TARGET_SCHED): Bring them all together.
5152         (TARGET_INITIALIZER): Update.
5153         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
5154         instead of 'struct rtx_def *' throughout.
5155         (struct sched): New set of hooks for the scheduler.
5156         * Makefile.in (haifa-sched.o): Depend on target.h.
5157         * doc/tm.texi: Document the new scheduler hooks, together in
5158         their own section, instead of scattered around.
5159         Fix a bunch of underfull/overfull hboxes.
5160
5161         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
5162         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
5163         sparc.h: Don't define any of the old scheduler macros.
5164
5165         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
5166         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
5167         sparc.c: Create hook functions from code extracted from
5168         corresponding target header, or make existing hooks static, as
5169         appropriate.  Set the appropriate entries in targetm.
5170
5171         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
5172         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
5173         rs6000-protos.h, s390-protos.h, sparc-protos.h:
5174         Remove prototypes for functions which are now static.
5175
5176         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
5177         related gunk; the Haifa scheduler is now the only choice.
5178
5179 2001-08-18  Zack Weinberg  <zackw@panix.com>
5180
5181         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
5182         * genopinit.c: Put floating point divide insns in sdiv_optab.
5183         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
5184         * config/gofast.h, config/c4x/c4x.h,
5185         config/ia64/hpux_longdouble.h, config/mips/mips.h,
5186         config/pa/long_double.h, config/rs6000/sysv4.h,
5187         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
5188         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
5189         (init_optabs): Use init_optabv for overflow-trapping optabs.
5190         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
5191         cmp_optab RTX codes so have_insn_for can find them.
5192
5193         * optabs.c (expand_simple_binop, expand_simple_unop,
5194         have_insn_for, gen_sub3_insn): New interfaces.
5195         * expr.h: Prototype new functions.
5196         (enum optab_methods): Move here from optabs.h.
5197
5198         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
5199         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
5200         Use new functions instead of working directly with optabs.
5201         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
5202         unroll.c: Don't include optabs.h.
5203         * caller-save.c, combine.c, function.c, stmt.c: Just include
5204         insn-codes.h, not optabs.h.
5205         * Makefile.in: Update dependencies.
5206
5207         * combine.c (make_compound_operation, simplify_comparison):
5208         Fix typos testing for this or that instruction.
5209
5210 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
5211
5212         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
5213         generating libgcc.a.
5214
5215 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5216
5217         * except.c (TYPE_HASH): Delete.
5218
5219         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
5220         HOST_WIDE_INT.
5221
5222         * tree.c (TYPE_HASH): Delete.
5223
5224         * tree.h (TYPE_HASH): Define.
5225
5226 2001-08-18  Graham Stott  <grahams@redhat.com>
5227
5228         * config/mips/mips.md (adddi3_internal_2+1): Remove contraints from
5229         define_split.
5230         (adddi3_internal_2+2): Likewise.
5231         (eh_set_lr_di+1): Likewise.
5232
5233 2001-08-17  Richard Henderson  <rth@redhat.com>
5234
5235         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5236         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
5237         * dwarf2asm.c: ... here.
5238         * dwarfout.c: Remove them.
5239
5240         * varasm.c (assemble_integer): Add align parameter.
5241         (assemble_real, output_constant, output_constructor): Likewise.
5242         * output.h: Update decls.
5243         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
5244         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
5245         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
5246         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
5247         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
5248         Update all callers.
5249
5250         * final.c (end_final): Abort profile block generation if we
5251         havn't layed it out properly.
5252         * output.h (assemble_eh_integer): Remove stale decl.
5253         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
5254         (min_align): New.
5255         (assemble_integer): Handle unaligned data.
5256         (assemble_real): Abort on unaligned data.
5257         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
5258         anything useful.
5259         (default_dtor_section_asm_out_destructor): Use assemble_align.
5260         (default_named_section_asm_out_constructor): Likewise.
5261         (default_ctor_section_asm_out_constructor): Likewise.
5262         * config/darwin.c (machopic_asm_out_constructor): Likewise.
5263         (machopic_asm_out_destructor): Likewise.
5264         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
5265         (nextstep_asm_out_destructor): Likewise.
5266         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
5267         (vms_asm_out_destructor): Likewise.
5268
5269 2001-08-17  Richard Henderson  <rth@redhat.com>
5270
5271         * config/mips/iris6.h (TARGET_IRIX6): New.
5272         (current_section_name, current_section_flags): New.
5273         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
5274         (MAX_OFILE_ALIGNMENT): New.
5275         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
5276         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
5277         (copy_file_data): Split out from
5278         (mips_asm_file_end): ... here.
5279         (mips_asm_file_start): Remove extra .section directive.  Use
5280         tmpfile instead of mips_make_temp_file.
5281         (mips_unique_section): Use const char * as needed for warnings.
5282         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
5283         re-add align parameter.
5284         (iris6_asm_named_section): New.
5285         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
5286         (iris6_asm_output_align, iris6_section_align_1): New.
5287         (iris6_asm_file_start, iris6_asm_file_end): New.
5288         * config/mips/mips-protos.h: Update decls.
5289
5290 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
5291
5292         * doc/install.texi (Install GCC): Add links to build status pages.
5293         (Specific): Ditto.
5294         (Final install): Ditto; request updates for specific info
5295
5296 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
5297
5298         * cpperror.c (print_location):  Don't take a file name; use the
5299         line map instead.
5300         (_cpp_begin_message): Similarly.
5301         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
5302         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
5303         (cpp_pedwarn_with_file_and_line): Remove.
5304         * cppfiles.c (stack_include_file): Update; set filename to stdin
5305         here when appropriate.
5306         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
5307         (_cpp_begin_message): Don't take a file name.
5308         * cppinit.c: Add comment.
5309         * cpplex.c: Fix end-of-directive indicator.
5310         * cpplib.c: Don't include intl.h.
5311         (run_directive, do_diagnostic): Update.
5312         (do_line): Update to not use nominal_fname.
5313         (cpp_push_buffer): Don't take a filename.
5314         * cpplib.h (struct ht): Remove.
5315         (cpp_push_buffer): Don't take a filename.
5316         (cpp_pedwarn_with_file_and_line): Remove.
5317         * cppmacro.c (struct cpp_macro): Remove file.
5318         (builtin_macro): Update.
5319         (_cpp_create_definition): Update.
5320         * cppmain.c: Correct comment.
5321         * fix-header.c (read_scan_file): Update.
5322
5323 2001-08-17  Kazu Hirata  <kazu@hxi.com>
5324
5325         * sbitmap.c: Fix comment formatting.
5326         * sched-deps.c: Likewise.
5327         * sibcall.c: Likewise.
5328         * simplify-rtx.c: Likewise.
5329         * ssa.c: Likewise.
5330         * ssa-ccp.c: Likewise.
5331         * stor-layout.c: Likewise.
5332         * timevar.c: Likewise.
5333         * toplev.c: Likewise.
5334         * unwind-dw2.c: Likewise.
5335         * unwind-dw2-fde.c: Likewise.
5336         * varasm.c: Likewise.
5337
5338 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5339
5340         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
5341         or larger than an integer in memory.
5342
5343 2001-08-17  Zack Weinberg  <zackw@panix.com>
5344
5345         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
5346         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
5347         * rtl.h: Don't forward-declare union tree_node here.  Don't
5348         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
5349         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
5350         and tree respectively.
5351         * tree.h: Don't forward-declare struct rtx_def here.  Don't
5352         typedef tree here.  Change all uses of struct rtx_def *,
5353         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
5354         and tree respectively.
5355
5356 2001-08-17  Richard Henderson  <rth@redhat.com>
5357
5358         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
5359         config/mips/openbsd.h: Fix typos last change.
5360
5361 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5362
5363         * doc/invoke.texi (Optimize Options): The default for
5364         -finline-limit is 600.
5365
5366 2001-08-17  Richard Henderson  <rth@redhat.com>
5367
5368         * varasm.c (text_section): Allow TEXT_SECTION to override the
5369         printing of TEXT_SECTION_ASM_OP.
5370         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
5371         (DATA_SECTION, BSS_SECTION): Remove.
5372         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
5373         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
5374         Rename from s/_NAME//.
5375         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
5376         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
5377         (TEXT_SECTION): ... here.  New.
5378         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
5379         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
5380         * config/mips/openbsd.h: Likewise.
5381         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
5382         (mips_asm_file_end): Likewise test.
5383         (mips_output_function_epilogue): Likewise.  Switch back to data
5384         section after emitting the function.
5385
5386         * doc/tm.texi (Sections): Document TEXT_SECTION.
5387
5388 2001-08-17  Richard Henderson  <rth@redhat.com>
5389
5390         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
5391         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
5392
5393 2001-08-17  Richard Henderson  <rth@redhat.com>
5394
5395         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
5396         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
5397         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
5398         Add aligned attribute.
5399
5400 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
5401
5402         * config/sh/sh.md: Add modes to unspecs in first insn to match
5403         those in the second.
5404
5405         * Makefile.in: Fix collect2 copy for Cygwin.
5406
5407 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
5408
5409         Install the proper patch.
5410         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
5411         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
5412         (expand_function_start): Likewise.
5413         * stmt.c (expand_decl): Likewise.
5414         * varasm.c (make_decl_rtx): Likewise.
5415
5416 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
5417
5418         * final.c: Undo my previous accidental checkin.
5419         * output.h: Likewise.
5420         * tm.texi: Likewise.
5421
5422 2001-08-16  Richard Henderson  <rth@redhat.com>
5423
5424         * varasm.c (named_section_flags): Remove align parameter.
5425         * varasm.c, dwarf2out.c: Update all callers.
5426         * output.h: Update prototypes.
5427
5428         * target.h (target.asm_out.named_section): Remove align parameter.
5429         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
5430         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
5431         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
5432         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
5433         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
5434
5435         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
5436         (get_named_section_flags, set_named_section_flags): New.
5437         (named_section_flags): Use them.
5438         (named_section): Do decl vs section flags check here...
5439         (default_section_type_flags): ... not here.
5440         (init_varasm_once): Create in_named_htab.
5441         (resolve_unique_section): Mark reloc unused.
5442
5443 2001-08-16  Richard Henderson  <rth@redhat.com>
5444
5445         * varasm.c (force_const_mem): Keep pool alignment in bits.
5446         (output_constant_pool): Use assemble_align.
5447
5448 2001-08-16  Zack Weinberg  <zackw@panix.com>
5449
5450         * doc/tm.texi: Remove extra @table command.
5451
5452 2001-08-16  Zack Weinberg  <zackw@panix.com>
5453
5454         * final.c (shorten_branches): Clear the end of the label_align
5455         array only if we made it larger.  Break up messy expressions
5456         for clarity.
5457
5458         * diagnostic.c (internal_error): Check for error recursion
5459         before doing ICE suppression.
5460
5461         * timevar.c: Timing variables now count in milliseconds.
5462         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
5463         (get_time): Not here.
5464         (timevar_print): Don't print any timer whose user, cpu, and
5465         wall times are all zero as displayed.
5466         * timevar.h: Update comment aboout units.  Make timevar
5467         counters unsigned.
5468
5469 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
5470
5471         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
5472         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
5473         (expand_function_start): Likewise.
5474         * stmt.c (expand_decl): Likewise.
5475         * varasm.c (make_decl_rtx): Likewise.
5476
5477 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
5478
5479         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
5480         (finalize_record_size): Don't set TYPE_USER_ALIGN.
5481
5482 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5483
5484         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
5485         variables.
5486
5487 2001-08-16  Andreas Jaeger  <aj@suse.de>
5488
5489         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
5490         prototype.
5491
5492 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
5493
5494         * rtl.h (only_sets_cc0_p): New prototype.
5495         * jump.c (sets_cc0_p): Handle INSN.
5496         (only_sets_cc0_p): New function.
5497         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
5498         (tidy_fallthru_edge): Likewise.
5499         * integrate.c (copy_insn_list): Likewise.
5500         * unroll.c (unroll_loop): Likewise.
5501         (copy_loop_body): Likewise.
5502
5503 2001-08-15  Jason Eckhardt  <jle@redhat.com>
5504
5505         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
5506
5507 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
5508
5509         * predict.c (struct block_info_def): Remove nvisited.
5510         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
5511         (estimate_bb_frequencies): Call mark_dfs_back_edges.
5512
5513         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
5514         (ix86_adjust_cost): Teach scheduler that latency to load operand can
5515         be masked.
5516
5517 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
5518
5519         * predict.def: Update hitrates.
5520
5521 2001-08-15  Richard Henderson  <rth@redhat.com>
5522
5523         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
5524
5525 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
5526
5527         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
5528         note from its associated jump.
5529
5530 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
5531
5532         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
5533         also on 64-bit s390x targets.
5534
5535 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
5536
5537         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
5538         function.
5539         (arm_expand_prologue): Handled nested functions which take a
5540         variable argument list.
5541         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
5542         macro with an invocation of
5543         arm_compute_initial_elimination_offset.
5544         * config/arm/arm-protos.h: Prototype
5545         arm_compute_initial_elimination_offset.
5546
5547 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5548
5549         * doc/install.texi (Specific, avr): Fix markup.
5550         (Specific, c4x): Ditto.
5551
5552 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5553
5554         * predict.c (dump_prediction): Change `bool' parameter to `int'.
5555
5556 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
5557
5558         * Makefile.in (OBJS): Add rtl-error.o
5559         (rtl-error.o): New rule.
5560         (diagnostic.o): Adjust dependency.
5561         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
5562         error_for_asm, _fatal_insn, _fatal_insn_not_found,
5563         warning_for_asm): Move to...
5564         rtl-error.c: ...here.  New file.
5565
5566 2001-08-14  Richard Henderson  <rth@redhat.com>
5567
5568         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
5569         if USING_SJLJ_EXCEPTIONS.
5570
5571 2001-08-14  Steve Ellcey <sje@cup.hp.com>
5572
5573         * tlink.c (scan_linker_output): Check string for unsatisfied in
5574         addition to undefined and unresolved.
5575
5576 2001-08-14  Graham Stott  <grahams@redhat.com>
5577
5578         * libgcc2.c (*): Replace EH_FRAME_SECTION with
5579         EH_FRAME_SECTION_NAME.
5580
5581 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
5582
5583         * genattrtab.c (simplify_test_exp_in_temp): New function.
5584         (simplify_test_exp): Avoid explicit use of temporary obstack.
5585         (simplify_cond, insert_right_side, evaluate_eq_attr,
5586         simplify_and_tree, simplify_or_tree, eliminate_known_true):
5587         Use simplify_test_exp_in_temp.
5588         (optimize_attrs): Iterate until expression stabilizes.
5589
5590 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
5591
5592         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
5593         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
5594
5595 2001-08-13  Richard Henderson  <rth@redhat.com>
5596
5597         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
5598         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
5599         * config/arm/conix-elf.h: Likewise.
5600
5601 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
5602
5603         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
5604         in gcc.c.
5605         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
5606
5607         * gcse.c (hash_scan_set): Expressions that are set as part of
5608         jump instructions are not available.
5609
5610 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
5611
5612         * config/s390/s390.c (print_operand, s390_function_prologue,
5613         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
5614
5615 2001-08-13  Richard Henderson  <rth@redhat.com>
5616
5617         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
5618         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
5619         * doc/tm.texi (Exception Region Output): Document it.
5620
5621 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
5622
5623         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
5624         DWARF2 instead of stabs by default.
5625
5626 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
5627
5628         * config/rs6000/rs6000.c: Include optabs.h.
5629
5630 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
5631
5632         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
5633         save/restore routines.
5634         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
5635
5636 2001-08-13  Andreas Jaeger  <aj@suse.de>
5637
5638         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
5639         the english is correct.
5640
5641 2001-08-13  Zack Weinberg  <zackw@panix.com>
5642
5643         * expr.h: Split out optab- and libfunc-related code to...
5644         * optabs.h, libfuncs.h: ... these new headers.
5645
5646         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
5647         (OPTABS_H): New.
5648         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
5649         dependencies.
5650         * mkconfig.sh: Don't include insn-codes.h from config.h.
5651
5652         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
5653         enum insn_code is available.  Move reload_in_optab and
5654         reload_out_optab array declarations to optabs.h.
5655         * regmove.c (gen_add3_insn): Move to optabs.c, export from
5656         there, prototype in expr.h.
5657         * gencodes.c: Cleanup: zap global variables, don't use
5658         printf where puts will do, don't bother defining MAX_INSN_CODE
5659         which nothing uses, let CODE_FOR_nothing get its value implicitly.
5660
5661         * genemit.c, genopinit.c: Include optabs.h in generated file.
5662         * genoutput.c: Include insn-codes.h in generated file.
5663         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
5664         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
5665         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
5666         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
5667         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
5668         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
5669         Include optabs.h.
5670         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
5671         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
5672         config/m88k/m88k.c, config/sparc/sparc.c:
5673         Include libfuncs.h.
5674         * reload.c: Include expr.h and optabs.h before reload.h.
5675         * config/alpha/alpha.c: Include tree.h before reload.h.
5676         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
5677         and reload.h in that order.
5678         * config/sparc/sparc.c: Include debug.h.
5679         * recog.c: Include insn-codes.h.
5680
5681 2001-08-13  Andreas Jaeger  <aj@suse.de>
5682
5683         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
5684         s390*linux.
5685
5686 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
5687
5688         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
5689         * gcc.c (init_spec): Fix typo in comment.
5690         * varasm.c (data_section): Fix typo in comment.
5691
5692 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
5693
5694         * predict.c (dump_prediction): New argument "USED".
5695         (combine_predictions_for_insn): Determine the used heuristics,
5696         output the case no heuristic applied.
5697         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
5698
5699 2001-08-13  Andreas Jaeger  <aj@suse.de>
5700
5701         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
5702         register %rip.
5703
5704 2001-08-13  Kazu Hirata  <kazu@hxi.com>
5705
5706         * jump.c: Fix formatting.
5707
5708 2001-08-13  Kazu Hirata  <kazu@hxi.com>
5709
5710         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
5711         length.
5712
5713 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
5714
5715         * loop.c (check_dbra_loop): Use condjump_label to compute
5716         jump_label.
5717
5718         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
5719         to better document the files they're in.
5720
5721 2001-08-12  Zack Weinberg  <zackw@panix.com>
5722
5723         * recog.h (struct insn_operand_data): Shrink 'mode' field
5724         to 16 bits.
5725
5726 2001-08-12  Kazu Hirata  <kazu@hxi.com>
5727
5728         * gcc.c: Fix comment formatting.
5729         * gccspec.c: Likewise.
5730         * gcov.c: Likewise.
5731         * gcse.c: Likewise.
5732         * genemit.c: Likewise.
5733         * gengenrtl.c: Likewise.
5734         * genrecog.c: Likewise.
5735         * gensupport.c: Likewise.
5736         * ggc-page.c: Likewise.
5737         * global.c: Likewise.
5738         * graph.c: Likewise.
5739         * ifcvt.c: Likewise.
5740         * integrate.c: Likewise.
5741         * lcm.c: Likewise.
5742         * libgcc2.c: Likewise.
5743         * loop.c: Likewise.
5744         * mbchar.c: Likewise.
5745         * optabs.c: Likewise.
5746         * predict.c: Likewise.
5747         * prefix.c: Likewise.
5748         * profile.c: Likewise.
5749         * protoize.c: Likewise.
5750         * real.c: Likewise.
5751         * recog.c: Likewise.
5752         * regclass.c: Likewise.
5753         * regmove.c: Likewise.
5754         * reg-stack.c: Likewise.
5755         * reload1.c: Likewise.
5756         * resource.c: Likewise.
5757         * rtlanal.c: Likewise.
5758         * rtl.c: Likewise.
5759
5760 2001-08-12  Kazu Hirata  <kazu@hxi.com>
5761
5762         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
5763         a tree representing a constant is passed to the macro.
5764
5765 2001-08-12  Richard Henderson  <rth@redhat.com>
5766
5767         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
5768         (rs6000_elf_asm_out_destructor): New.
5769         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
5770         (DTORS_SECTION_ASM_OP): Remove.
5771         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
5772         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
5773
5774 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
5775
5776         Revert:
5777         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5778         * gcc.c (set_collect_gcc_options): New function, split out from
5779         main.
5780         Ignore elided switches.
5781         (do_spec_1): Invoke before executing command.
5782         (set_input): Export.
5783         Move declaration ...
5784         * gcc.h (set_input): ... here.
5785         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
5786         file.
5787
5788 2001-08-12  Richard Henderson  <rth@redhat.com>
5789
5790         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
5791         thinko wrt TARGET_RELOCATABLE.
5792
5793 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
5794
5795         * fix-header.c (cb_file_change): Update prototype.
5796
5797 2001-08-11  Zack Weinberg  <zackw@panix.com>
5798
5799         * toplev.c (set_float_handler): Make static.
5800         * toplev.h: Don't prototype set_float_handler.
5801
5802         * simplify-rtx.c: Don't include setjmp.h.
5803         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
5804         New functions.
5805         (simplify_unary_operation, simplify_binary_operation): Use them,
5806         via do_float_handler.
5807
5808         * fold-const.c: Don't include setjmp.h.
5809         (exact_real_inverse_1): New function.
5810         (exact_real_inverse): Use it, via do_float_handler.
5811
5812         * varasm.c: Don't include setjmp.h.
5813         (assemble_real_1): New function.
5814         (assemble_real): Use it, via do_float_handler.
5815         Call internal_error if we get a trap here.
5816
5817         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
5818         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
5819
5820 2001-08-11  Zack Weinberg  <zackw@panix.com>
5821
5822         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
5823         STACK_BOUNDARY if not already defined.
5824
5825         * calls.c, function.c, reload1.c, explow.c: Don't default
5826         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
5827         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
5828
5829         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
5830         to run-time test.
5831
5832         * doc/tm.texi: Document that STACK_BOUNDARY is required;
5833         clarify difference between it and PREFERRED_STACK_BOUNDARY.
5834
5835 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5836
5837         * cppmacro.c (enter_macro_context): Push macro expansions even
5838         if empty.
5839
5840 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5841
5842         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
5843         (rs6000_elf_section_type_flags): Actually return a value.
5844
5845 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
5846
5847         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
5848         Clean up code: add missing comments and prototypes, fix warnings,
5849         remove obsolete code, fix spacing to conform to coding style.
5850
5851 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
5852
5853         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
5854         and TARGET_ASM_CLOSE_PAREN.
5855         (regclass_map): CC register belongs to class NO_REGS.
5856         (legitimize_pic_address): Don't generate unnecessary moves
5857         (to avoid confusing loop optimization).
5858         (check_and_change_labels): Replace jump_long by indirect_jump.
5859         (s390_final_chunkify): Don't start a new literal pool on section
5860         switch in 64-bit code.
5861         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
5862
5863         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
5864         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
5865         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
5866         modes correctly.
5867         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
5868         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
5869         (CONST_COSTS): Fixed incorrect costs.
5870
5871         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
5872         Use emit_jump instead of emit_jump_insn (gen_jump).
5873         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
5874         (to avoid confusing flow analysis).
5875         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
5876         (casesi, casesi_jump): New.
5877         (jump_long): Removed.  Functionality merged into indirect_jump.
5878         (indirect_jump): Accept address_operand, not just register_operand.
5879         (cjump_long, icjump_long): Use same logic as indirect_jump.
5880         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
5881         Fixed broken setjmp/longjmp handling.
5882         (do_builtin_setjmp_setup): Removed.
5883
5884         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
5885         broken GNU as versions that don't accept .quad with large
5886         negative values.  Use hexadecimal output instead.
5887         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
5888         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
5889         FUNCTION_EPILOGUE): Removed.  Now in targetm.
5890
5891         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
5892
5893         * config/s390/fixdfdi.h: Add missing copyright statement.
5894         Fix type conflicts on 64-bit.  Add missing SFmode routines.
5895
5896         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
5897         email address.
5898
5899 2001-08-11  Richard Henderson  <rth@redhat.com>
5900
5901         * rtl.h (REG_EH_RETHROW): Remove.
5902         * rtl.c (reg_note_name): Update.
5903         * combine.c (distribute_notes): Don't check for it.
5904
5905 2001-08-11  Richard Henderson  <rth@redhat.com>
5906
5907         * combine.c (distribute_notes): Place REG_SETJMP.
5908
5909 2001-08-11  Richard Henderson  <rth@redhat.com>
5910
5911         * doc/extend.texi (Arrays and pointers implementation): Discourage
5912         relying on sign-extension of pointers.
5913
5914 2001-08-11  H.J. Lu <hjl@gnu.org>
5915
5916         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
5917         in_dtors.
5918         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
5919         RDATA_SECTION_ASM_OP.
5920
5921 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5922
5923         * doc/install.texi (Specific, c4x): Fix cross-reference to the
5924         main manual to work both for info and HTML versions.
5925
5926 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5927             Matt Kraai <kraai@alumni.carnegiemellon.edu>
5928
5929         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
5930         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
5931         (struct cpp_pool): New member first.
5932         * cppinit.c (append_include_chain): Plug memory leaks.
5933         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
5934         Allocate pragma structures from the (aligned) macro pool to
5935         avoid leaking memory.
5936         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
5937         so we don't leak memory.
5938         * hashtable.c (ht_destroy): New.
5939         * hashtable.h (ht_destroy): New.
5940
5941 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5942             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5943
5944         * c-lex.c (map): Make const.
5945         (cb_file_change): Update for callback passing a line map.
5946         Don't assume we have a previous map.  Remove sanity check
5947         about popping too many files.
5948         * cpperror.c (print_location): Make map const.
5949         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
5950         (cpp_make_system_header): Similarly.
5951         (search_from): Similarly.
5952         (_cpp_execute_include): Don't remember where we came from.
5953         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
5954         (struct cpp_reader): Make map const.
5955         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
5956         * cpplib.c (do_line): Update; line maps now hold sysp.
5957         (cpp_push_buffer): Similarly.
5958         (_cpp_do_file_change): Similarly; callback with map instead.
5959         (cpp_get_line_maps): Constify return value.
5960         (_cpp_pop_buffer): Update.
5961         * cpplib.h (struct cpp_file_change): Remove.
5962         (struct cpp_callbacks): Update.
5963         (cpp_get_line_maps): Constify return value.
5964         * cppmacro.c (_cpp_create_definition): Update.
5965         * cppmain.c (struct printer): Constify map.
5966         (maybe_print_line): Similarly.
5967         (print_line): Similarly.  Deduce flags 1 and 2 here.
5968         (cb_file_change): Update.
5969         * line-map.c (free_line_maps): Warn regardless.
5970         (add_line_map): Return pointer to const.  When passed NULL to_file
5971         with LC_LEAVE, use the obvious values for the return point so the
5972         caller doesn't have to figure them out.
5973         (lookup_line): Return pointer to const.
5974         (print_containing_files): Take pointer to const.
5975         * line-map.h (struct line_map): New members reason, sysp.
5976         (add_line_map): Return pointer to const.
5977         (lookup_line): Similarly.
5978         (print_containing_files): Take pointer to const.
5979
5980 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
5981             Richard Henderson  <rth@redhat.com>
5982
5983         * regmove.c (regmove_optimize): Avoid setting a register twice in
5984         a parallel set.
5985
5986 2001-08-10  Richard Henderson  <rth@redhat.com>
5987
5988         * doc/extend.texi (Arrays and pointers implementation): Document
5989         behavior of pointer/integer conversion.
5990
5991 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
5992
5993         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
5994
5995 2001-08-10  Richard Henderson  <rth@redhat.com>
5996
5997         * doc/extend.texi (C Implementation): New chapter.
5998         * doc/gcc.texi (Top): Link it in.
5999
6000 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
6001
6002         * doc/install.texi (Specific): Fix CVS merge botch.
6003
6004 2001-08-10  Richard Henderson  <rth@redhat.com>
6005
6006         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
6007         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
6008
6009 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
6010
6011         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
6012         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
6013         this macro is now required.
6014
6015         * cselib.c (cselib_process_insn), flow.c (propagate_block),
6016         loop.c (find_and_verify_loops), reload.c (reload): Check
6017         for rtx code of CALL_INSN, not CALL, when deciding if we
6018         need to check for REG_SETJMP note.
6019
6020         * gcse.c (compute_hash_table, compute_store_table): Update
6021         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
6022         logic.
6023
6024         * config/avr/avr.c: Fix typo.
6025         * config/convex/convex.c (expand_movstr): Use adjust_address.
6026         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
6027         variable.
6028         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
6029         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
6030         Fix typo.
6031         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
6032         Do define STACK_BOUNDARY.
6033         * config/i370/i370.c: Include expr.h.
6034         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
6035         config/pa/som.h, config/v850/v850.h: Take in_ctors and
6036         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
6037         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
6038         * config/m88k/m88k.c: Include c-tree.h after expr.h.
6039         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
6040         * config/romp/romp.c: Include expr.h after tree.h.
6041         Include toplev.h.
6042         (output_fpop): Use xmalloc, not oballoc.
6043         * config/we32k/we32k.c: Include expr.h.
6044
6045 2001-08-10  Kazu Hirata  <kazu@hxi.com>
6046
6047         * config/h8300/h8300.h: Fix formatting.
6048
6049 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
6050
6051         * c-common.h (RETURN_NULLIFIED_P): Lose.
6052         * c-semantics.c (genrtl_return_stmt): Don't check it.
6053
6054 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
6055
6056         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
6057         (mips_annotate_frame_insn): New function.
6058         (mips_emit_frame_related_store): New function.
6059         (save_restore_insns): Don't mark instructions that set up the base
6060         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
6061         the store instructions instead.
6062         (mips_expand_prologue): If the stack size is moved into a temporary
6063         register, do not mark that move as frame-related.  Add a
6064         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
6065
6066 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
6067
6068         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
6069         stack slot as unchanging if current_function_calls_eh_return.
6070
6071 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
6072
6073         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
6074         access the second half of the TFmode scratch operand.
6075
6076 2001-08-10  Anthony Green  <green@redhat.com>
6077
6078         * java/class.c (emit_register_classes): Conditionalize code on
6079         JCR_SECTION_NAME.
6080
6081 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6082
6083         * doc/install.texi (Specific, avr): Fix cross-reference to the
6084         main manual to work both for info and HTML versions.
6085
6086 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6087
6088         * stmt.c (expand_null_return_1): Remove code to generate simple returns
6089         and "use_goto" argument.
6090         (expand_null_return, expand_value_return): Update all callers.
6091         * function.c (expand_function_end): Remove code to generate simple
6092         return.
6093         * config/vax/vax.md (epilogue): New expander for function return.
6094         * doc/md.texi (epilogue): Remove "if defined".
6095
6096 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
6097
6098         * Makefile.in: Partially revert my previous change:
6099         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
6100         of the hashtab.o and safe-ctype.o rules.
6101
6102 2001-08-09  Richard Henderson  <rth@redhat.com>
6103
6104         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
6105         (USE_COLLECT2): Remove duplicate definition.
6106         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
6107         (use_collect2): Remove dead code.
6108         * configure.in (use_collect2): Remove will_use_collect2 and
6109         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
6110         * configure: Rebuild.
6111
6112         * target.h (targetm.asm_out.constructor): New.
6113         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
6114         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
6115         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
6116         * varasm.c (in_ctors, in_dtors): New.
6117         (assemble_constructor, assemble_destructor): Remove.
6118         (default_stabs_asm_out_destructor): New.
6119         (default_named_section_asm_out_destructor): New.
6120         (dtors_section, default_dtor_section_asm_out_destructor): New.
6121         (default_stabs_asm_out_constructor): New.
6122         (default_named_section_asm_out_constructor): New.
6123         (ctors_section, default_ctor_section_asm_out_constructor): New.
6124         * output.h: Update declarations.
6125         * c-decl.c (c_expand_body): Use target hooks instead of
6126         assemble_constructor and assemble_destructor.
6127         * profile.c (output_func_start_profiler): Likewise.
6128         * objc/objc-act.c (finish_objc): Likewise.
6129         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
6130         for the constructor.
6131         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
6132
6133         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
6134         (DTORS_SECTION_ASM_OP): Likewise.
6135         (__CTOR_LIST__): Use attribute section when possible.
6136         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
6137
6138         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
6139         ASM_OUTPUT_CONSTRUCTOR.
6140
6141         * config/darwin.c (machopic_asm_out_constructor): New.
6142         (machopic_asm_out_destructor): New.
6143         * config/darwin-protos.h: Update declarations.
6144         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
6145         (ASM_OUTPUT_DESTRUCTOR): Remove.
6146         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
6147         * config/nextstep.c (nextstep_asm_out_constructor): New.
6148         (nextstep_asm_out_destructor): New.
6149         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
6150         (ASM_OUTPUT_DESTRUCTOR): Remove.
6151         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
6152         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
6153         ASM_OUTPUT_*STRUCTOR.
6154         * config/i386/aix386ng.h: Likewise.
6155
6156         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
6157         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
6158         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
6159         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
6160         * config/lynx.h: Likewise.
6161         * config/netware.h: Likewise.
6162         * config/psos.h: Likewise.
6163         * config/alpha/alpha-interix.h: Likewise.
6164         * config/alpha/elf.h: Likewise.
6165         * config/arc/arc.h: Likewise.
6166         * config/arm/aof.h: Likewise.
6167         * config/arm/coff.h: Likewise.
6168         * config/arm/elf.h: Likewise.
6169         * config/c4x/c4x.h: Likewise.
6170         * config/h8300/h8300.h: Likewise.
6171         * config/i386/cygwin.h: Likewise.
6172         * config/i386/djgpp.h: Likewise.
6173         * config/i386/i386-coff.h: Likewise.
6174         * config/i386/i386-interix.h: Likewise.
6175         * config/i386/sco5.h: Likewise.
6176         * config/i386/vsta.h: Likewise.
6177         * config/i386/win32.h: Likewise.
6178         * config/i960/i960-coff.h: Likewise.
6179         * config/ia64/sysv4.h: Likewise.
6180         * config/m68hc11/m68hc11.h: Likewise.
6181         * config/m68k/coff.h: Likewise.
6182         * config/m68k/mot3300.h: Likewise.
6183         * config/m88k/m88k.h: Likewise.
6184         * config/mcore/mcore-pe.h: Likewise.
6185         * config/mcore/mcore.h: Likewise.
6186         * config/mips/elf.h: Likewise.
6187         * config/mips/elf64.h: Likewise.
6188         * config/mips/iris6.h: Likewise.
6189         * config/pa/pa64-hpux.h: Likewise.
6190         * config/rs6000/sysv4.h: Likewise.
6191         * config/sh/sh.h: Likewise.
6192         * config/sparc/litecoff.h: Likewise.
6193
6194         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
6195         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
6196         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
6197         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
6198         (ASM_OUTPUT_DESTRUCTOR): Remove.
6199         * config/a29k/a29k.c: Move include of tree.h.
6200         * config/a29k/udi.h: Delete file.
6201         * config/alpha/alpha.c (vms_asm_out_constructor): New.
6202         (vms_asm_out_destructor): New.
6203         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
6204         (EXTRA_SECTION_FUNCTIONS): Likewise.
6205         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
6206         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
6207         * config/c4x/c4x.c: Move include of tree.h.
6208         * config/clipper/clipper.c (clix_asm_out_constructor): New.
6209         (clix_asm_out_destructor): New.
6210         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
6211         (ASM_OUTPUT_DESTRUCTOR): Remove.
6212         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
6213         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
6214         (TARGET_ASM_CONSTRUCTOR): New.
6215         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
6216         (sco_asm_out_constructor): New.
6217         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
6218         * config/i386/svr3gas.h: Remove stack grows up code.
6219         Remove code duplicated from i386/sysv3.h.
6220         (TARGET_ASM_CONSTRUCTOR): New.
6221         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
6222         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
6223         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
6224         (TARGET_ASM_CONSTRUCTOR): New.
6225         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
6226         (m68hc11_asm_out_destructor): New.
6227         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
6228         (TARGET_ASM_DESTRUCTOR): New.
6229         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
6230         * config/m68k/dpx2.h: Properly undef all the bits inherited from
6231         config/svr3.h pertaining to section manipulation.
6232         * config/m68k/dpx2g.h: Remove #if 0 code.
6233         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
6234         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
6235         (ASM_OUTPUT_CONSTRUCTOR): Remove.
6236         (TARGET_ASM_CONSTRUCTOR): New.
6237         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
6238         (m88k_svr3_asm_out_constructor): New.
6239         (m88k_svr3_asm_out_destructor): New.
6240         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
6241         (ASM_OUTPUT_DESTRUCTOR): Remove.
6242         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
6243         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
6244         * config/rs6000/aix.h: Likewise.
6245         * config/mips/rtems64.h: Don't undef removed constructor related bits.
6246         * config/mips/vxworks.h: Likewise.
6247         * config/rs6000/lynx.h: Likewise.
6248         * config/sh/elf.h: Likewise.
6249         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
6250         (DTORS_SECTION_ASM_OP): New.
6251         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
6252         (ASM_OUTPUT_DESTRUCTOR): Remove.
6253         * config/sparc/sol2-sld-64.h: Likewise.
6254         * config/vax/vax.c (vms_asm_out_constructor): New.
6255         (vms_asm_out_destructor): New.
6256         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
6257         (ASM_OUTPUT_DESTRUCTOR): Remove.
6258         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
6259
6260         * doc/tm.texi (@node Initialization): Update.
6261
6262 2001-08-09  Richard Henderson  <rth@redhat.com>
6263
6264         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
6265         (__do_global_dtors_aux): Use gp-relative static data to avoid
6266         one dynamic relocation.
6267         (__do_frame_setup): Register Java classes.
6268         * config/alpha/crtend.asm (__JCR_END__): New.
6269
6270 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
6271
6272         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
6273         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
6274         (GEN, STAGESTUFF): Add new files.
6275         (insn-constants.h, s-constants, tm-preds.h, s-preds,
6276         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
6277         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
6278         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
6279         as well as insn-codes.h and insn-flags.h in config.h; and no
6280         extra headers in tconfig.h and hconfig.h.
6281
6282         * gencodes.c: Eliminate code to generate predicate declarations
6283         or #defines for md-file constants.
6284         * genconstants.c, genpreds.c: New files.
6285
6286         * i386.md: Re-order guard expressions such that TARGET_64BIT
6287         comes first, when this permits better optimization.  Add
6288         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
6289         why this is desirable.
6290
6291 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
6292
6293         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
6294         (find_fde_for_dso): Remove.
6295         (_Unwind_IteratePhdrCallback): New.
6296         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
6297         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
6298
6299 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6300
6301         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
6302         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
6303
6304 2001-08-09  Graham Stott  <grahams@redhat.com>
6305
6306         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
6307         (vis_no_unit): Use it.
6308         (visualize_no_unit): Add the insn only if room exists.
6309
6310 2001-08-09  Graham Stott  <grahams@redhat.com>
6311
6312         * predict.c (estimate_probability): Replace magic numbers with
6313         appropriate enumeration.
6314
6315 2001-08-09  Graham Stott  <grahams@redhat.com>
6316
6317         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
6318         parameter.
6319         (EXTRACT_FLAGS): Likewise.
6320
6321 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
6322
6323         * config/mips/mips.c    (mips_legitimate_address_p): Check for
6324         CONST_INT in last patch.
6325
6326 2001-08-08  Anthony Green  <green@redhat.com>
6327
6328         * java/class.c (emit_register_classes): Use assemble_jcr if
6329         possible.  Keep the original mechanism as a fallback.
6330         * defaults.h (JCR_SECTION_NAME): Define if we have named section
6331         and weak symbol support.
6332         * crtstuff.c (__JCR_LIST__): Define.
6333         (__JCR_END__): Define.
6334         (_Jv_RegiserClasses): Define weak symbol if possible.
6335         (__do_global_ctors_aux): Register classes for ELF targets with
6336         weak symbol support.
6337
6338 2001-08-08  Kazu Hirata  <kazu@hxi.com>
6339
6340         * dbxout.c: Fix comment formatting.
6341         * dependence.c: Likewise.
6342         * df.c: Likewise.
6343         * diagnostic.c: Likewise.
6344         * dominance.c: Likewise.
6345         * doprint.c: Likewise.
6346         * dwarf2out.c: Likewise.
6347         * dwarfout.c: Likewise.
6348         * emit-rtl.c: Likewise.
6349         * except.c: Likewise.
6350         * explow.c: Likewise.
6351         * expmed.c: Likewise.
6352         * expr.c: Likewise.
6353         * flow.c: Likewise.
6354         * fold-const.c: Likewise.
6355         * function.c: Likewise.
6356
6357 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6358
6359         * global.c (retry_global_alloc): Avoid shadowing allocno.
6360
6361 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
6362
6363         * except.c (remove_fixup_regions): Fix typo.
6364
6365 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
6366
6367         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
6368         unsigned HOST_WIDE_INT to avoid warning.
6369         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
6370         * flow.c (set_block_for_new_insns): Likewise.
6371
6372 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
6373
6374         * sibcall.c (return_value_pseudo): New static variable.
6375         (skip_copy_to_return_value): Handle return_value_pseudo.
6376         (call_ends_block_p): Ensure that return_value_pseudo is set.
6377         (optimize_sibling_and_tail_recursive_call): Discover the
6378         load of pseudo return value in alternate exit block.
6379
6380 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
6381
6382         * calls.c (ECF_ALWAYS_RETURN): New constant.
6383         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
6384         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
6385         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
6386         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
6387         * rtl.c (reg_note_name): New name.
6388         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
6389
6390 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
6391
6392         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
6393
6394 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
6395
6396         * alias.c (get_alias_set): Return a previously calculated
6397         alias set for a VAR_DECL.
6398         * function.c (gen_mem_addressof): Calculate the alias set before
6399         touching the RTL.
6400
6401 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
6402
6403         * predict.def: Set hitrates according our experimental run.
6404
6405 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
6406
6407         * i386.h (HARD_REGNO_RENAME_OK): New macro.
6408
6409 2001-08-08  H.J. Lu <hjl@gnu.org>
6410
6411         * config/mips/mips.c (mips_unique_section): New. Copied from
6412         config/mips/elf.h.
6413
6414         * config/mips/mips-protos.h (mips_unique_section): New
6415         prototype.
6416
6417         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
6418
6419         * config/mips/little.h: New. Generic little endian mips
6420         targets. Only mips*-*-linux* is converted to use it so far.
6421
6422         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
6423         (WCHAR_TYPE): Defined
6424         (WCHAR_TYPE_SIZE): Likewise.
6425         (INIT_SUBTARGET_OPTABS): Likewise.
6426         (BSS_SECTION_ASM_OP): Likewise.
6427         (SBSS_SECTION_ASM_OP): Likewise.
6428         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
6429         (ASM_DECLARE_OBJECT_NAME): Likewise.
6430         (UNIQUE_SECTION): Likewise.
6431         (EXTRA_SECTIONS): Likewise.
6432         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
6433         (ASM_OUTPUT_DESTRUCTOR): Likewise.
6434         (ASM_OUTPUT_DEF): Likewise.
6435         (HANDLE_SYSV_PRAGMA): Removed.
6436         (NO_IMPLICIT_EXTERN_C): Likewise.
6437         (TARGET_MEM_FUNCTIONS): Likewise.
6438         (STARTFILE_SPEC): Likewise.
6439         (ENDFILE_SPEC): Likewise.
6440         (LIB_SPEC): Likewise.
6441         (INVOKE__main): Likewise.
6442         (CTOR_LIST_BEGIN): Likewise.
6443         (CTOR_LIST_END): Likewise.
6444         (DTOR_LIST_BEGIN): Likewise.
6445         (DTOR_LIST_END): Likewise.
6446         (SET_ASM_OP): Likewise.
6447         (ASM_OUTPUT_SOURCE_LINE): Likewise.
6448         (ASM_OUTPUT_DEF): Likewise.
6449         (ASM_OUTPUT_IDENT): Likewise.
6450
6451         * config/mips/mips.h (ASM_SPEC): Undefine before define.
6452         (CPLUSPLUS_CPP_SPEC): Likewise.
6453         (ASM_APP_ON) Redefine only if not defined.
6454         (ASM_APP_OFF): Likewise.
6455         (ASM_OUTPUT_SOURCE_LINE): Likewise.
6456         (ASM_OUTPUT_IDENT): Likewise.
6457
6458         * config.gcc: Update tm_file for Linux/mips.
6459
6460 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
6461
6462         * cselib.c (cselib_record_sets): If insn is predicated, turn
6463         sources into IF_THEN_ELSEs.
6464
6465         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
6466         Turn into define_insn_and_split.
6467
6468         * sched-deps.c: Include "cselib.h".
6469         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
6470         Use cselib to turn memory addresses into VALUEs.
6471         (sched_analyze): Call cselib_init/cselib_finish if necessary.
6472         * sched-int.h (struct sched_info): New member USE_CSELIB.
6473         * sched-ebb.c (ebb_sched_info): Initialize it.
6474         * sched-rgn.c (rgn_sched_info): Likewise.
6475         * Makefile.in (sched-deps.o): Update dependencies.
6476
6477         * cselib.h (cselib_subst_to_values): Declare.
6478         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
6479         that have no value and autoincs to be handled by generating a new
6480         dummy value.
6481
6482 2001-08-08  Graham Stott  <grahams@redhat.com>
6483
6484         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
6485         within fixed length SEQUENCE.
6486
6487 2001-08-08  Graham Stott  <grahams@redhat.com>
6488
6489         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
6490         (diagnostic_prefixing_rule): Likewise.
6491         (diagnostic_line_cutoff): Likewise.
6492         (diagnostic_kind_count): Likewise.
6493
6494 2001-08-08  Graham Stott  <grahams@redhat.com>
6495
6496         * alias.c (find_base_decl): Delete redundent assignment.
6497
6498 2001-08-08  Graham Stott  <grahams@redhat.com>
6499
6500         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
6501         (abs): Uppercase and paranthesize macro parameter.
6502         (MEM_DEPENDENCY): Add whitespace.
6503
6504 2001-08-08  Graham Stott  <grahams@redhat.com>
6505
6506         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
6507         failure check for CONST_INT
6508
6509 2001-08-08  Graham Stott  <grahams@redhat.com>
6510
6511         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
6512         (libcall_dead_p): Likewise.
6513
6514         (mark_used_regs): Constify fmt.
6515         (find_use_as_address): Likewise.
6516
6517 2001-08-08  Graham Stott  <grahams@redhat.com>
6518
6519         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
6520          parameter.
6521
6522 2001-08-08  Graham Stott  <grahams@redhat.com>
6523
6524         * combine.c (combine_simplify_rtx): Update comment and
6525         remove erroneous test.
6526
6527 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
6528
6529         * cppinit.c (cpp_finish): Pop the final buffer without comment.
6530         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
6531         take care to avoid multiple no-newline at EOF warnings in that
6532         case.
6533
6534 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
6535
6536         * calls.c (expand_call): Do not emit INSN_SETJMP note.
6537         (emit_library_call_value_1): Likewise.
6538         (emit_call_1): Emit REG_SETJMP note.
6539         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
6540         of INSN_SETJMP
6541         * cselib.c (cselib_process_insn): Likewise.
6542         * flow.c (propagate_block): Likewise.
6543         * loop.c (find_and_verify_loops): Likewise.
6544         * reload.c (find_equiv_regs): Likewise.
6545         * reload1.c (reload): Likewise.
6546         * resource.c (mark_referenced_resources,
6547         mark_set_resources): Likewise.
6548         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
6549         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
6550         * haifa-sched.c (unlink_other_notes): Likewise.
6551         (reemit_notes): Likewise.
6552         * sched-ebb.c (sched_ebb): Likewise.
6553         * sched-rgc.c (sched_region): Likewise.
6554         * rtl.c (note_insn_name): Likewise.
6555         (reg_note_name): Add REG_SETJMP
6556         * rtl.h (reg_note): Add REG_SETJMP.
6557         (insn_note): Remove NOTE_INSN_SETJMP.
6558
6559         * profile.c (branch_prob): Add fake edges for setjmp.
6560
6561 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
6562
6563         * config.gcc: Quote target_cpu_default2 correctly for
6564         powerpc*-*-* targets.
6565
6566 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
6567
6568         * cpplib.h, line-map.h: Update comments.
6569         * cppmain.c (printer_init): Move inline.
6570         (maybe_print_line, print_line): Take a map pointer.
6571         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
6572         (cb_file_change): Don't use prior value of print.map.
6573
6574 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
6575
6576         * doc/install.texi: Document fine-grained multilib configuration.
6577
6578 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
6579
6580         * rtlanal.c (find_first_parameter_load): Call note_stores
6581         only on the instructions.
6582
6583 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
6584
6585         * alias.c (nonlocal_mentioned_p):
6586         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
6587         * calls.c (emit_call_1): Likewise.
6588         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
6589         * cselib.c (cselib_process_insn): Likewise.
6590         * df.c (df_insns_modify): Likewise.
6591         * flow.c (need_fake_edge_p): Likewise.
6592         (propagate_one_insn): Likewise.
6593         * haifa-sched.c (reemit_notes): Likewise.
6594         * integrate.c (copy_insn_list): Likewise.
6595         * jump.c (delete_prior_computation): Likewise.
6596         * local-alloc.c (validate_equiv_mem): Likewise.
6597         * loop.c (scan_loop): Likewise.
6598         * predict.c (estimate_probability): Likewise.
6599         * reload.c (reload): Likewise.
6600         * sched-deps (sched_analyze): Likewise.
6601         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
6602         * gcse.c (compute_hash_table): Likewise.
6603         (mark_call): Likewise.
6604         (store_killed_in_insn): Likewise.
6605
6606 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
6607
6608         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
6609
6610 2001-08-06  Richard Henderson  <rth@redhat.com>
6611
6612         * varasm.c (assemble_gc_entry): Remove.
6613         * output.h: Likewise.
6614
6615 2001-08-06  Richard Henderson  <rth@redhat.com>
6616
6617         * varasm.c (assemble_constructor): Take a symbol_ref and a
6618         priority instead of a bare string.  Move priority handling
6619         here from cp/decl2.c.
6620         * output.h: Update decls.
6621
6622         * c-decl.c (c_expand_body): Update calls to assemble_constructor
6623         and assemble_destructor.
6624         * profile.c (output_func_start_profiler): Likewise.
6625         * objc/objc-act.c (finish_objc): Likewise.
6626         (build_module_descriptor): Return the symbol not the symbol name.
6627
6628 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
6629
6630         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
6631         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
6632         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
6633         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
6634         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
6635         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
6636
6637 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
6638
6639         * cpperror.c (print_containing_files): Moved to line-map.c.
6640         (print_location): line-map.c handles re-listing or otherwise.
6641         * cpphash.h (struct lexer_state): Remove next_bol.
6642         (struct cpp_buffer): Remove include_stack_listed.
6643         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
6644         Remove faked buffer handling.
6645         (_cpp_do_file_change): Tweak.
6646         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
6647         * cppmain.c (struct printer): Remove filename.
6648         (print_line, cb_file_change): Update accordingly.
6649         * line-map.c: Include intl.h.
6650         (init_line_maps): Initialize last_listed.
6651         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
6652         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
6653         (print_containing_files): New.
6654         * line-map.h (struct line_maps): New member last_listed.
6655         (print_containing_files, INCLUDED_FROM): New.
6656         * Makefile.in: Update.
6657         * po/POTFILES.in: Add line-map.c.
6658
6659 2001-08-06  Richard Henderson  <rth@redhat.com>
6660
6661         * except.c (convert_from_eh_region_ranges_1): Never mark
6662         USE or CLOBBER insns as throwing.
6663
6664         * expr.c (store_constructor): Don't clobber memory targets.
6665
6666 2001-08-06  Andreas Jaeger  <aj@suse.de>
6667
6668         * profile.c (branch_prob): Remove unused variable insn.
6669
6670         * Makefile.in (local-alloc.o): Add dependency on except.h.
6671
6672         * local-alloc.c: Include except.h for can_throw_internal prototype.
6673
6674 2001-08-06  Richard Henderson  <rth@redhat.com>
6675
6676         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
6677         * function.c (expand_main_function): Implement it.
6678         * doc/tm.texi: Document it.
6679
6680 2001-08-06  Stan Shebs  <shebs@apple.com>
6681
6682         * doc/install.texi: Document powerpc-*-darwin* details.
6683
6684 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
6685
6686         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
6687         (ASM_CPU_SPEC): Move back to rs6000.h
6688         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
6689
6690         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
6691
6692         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
6693         readded.
6694
6695         * config/rs6000/linux64.h: Ditto.
6696
6697         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
6698         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
6699         nothing.
6700
6701         Remove accidently readded definitions of FUNCTION_PROLOGUE,
6702         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
6703
6704         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
6705         to rs6000.h
6706
6707 2001-08-05  Richard Henderson  <rth@redhat.com>
6708
6709         * local-alloc.c (update_equiv_regs): Do not move insns that
6710         can throw.
6711
6712 2001-08-05  Jan Hubicka  <jh@suse.cz>
6713
6714         * Makefile.in (reload1.o): Add dedendancy on except.h
6715         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
6716         prototypes.
6717         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
6718         indicating wehther edges has been cleaned up.
6719         * reload1.c: Inlucde except.h
6720         (fixup_abnormal_edges): Accept deleted insns.
6721         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
6722         after combine.
6723
6724 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
6725
6726         * cpplib.c (do_line): Correct line number after pop_buffer.
6727
6728 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
6729
6730         PR preprocessor/3824
6731         * line-map.c: Update comments.
6732         * line-map.h: Update comments.
6733         * tradcif.y: Don't consider large numbers unsigned.
6734
6735 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
6736
6737         PR preprocessor/3081
6738         * c-lex.c (map): New.
6739         (cb_file_change): Update map and use it.
6740         (cb_def_pragma, cb_define, cb_undef): Use map and line.
6741         (c_lex): Update to use map.
6742         * cpperror.c (print_location): Move to using logical line numbers.
6743         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
6744         (cpp_make_system_header): Similarly.
6745         (_cpp_execute_include): Stop line numbering hacks.  Store the
6746         line we will return to.
6747         * cpphash.h (CPP_BUF_LINE): Remove.
6748         (struct cpp_buffer): Remove lineno and pseudo_newlines.
6749         Add map and return_to_line.
6750         (_cpp_do_file_change): Update.
6751         * cppinit.c (cpp_start_read): Update line kludge.
6752         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
6753         (trigraph_ok): Use logical line numbers for diagnostics.
6754         (skip_block_comment): Likewise.
6755         (skip_whitespace): Likewise.
6756         (skip_line_comment): Use pfile->line instead.
6757         (_cpp_lex_token): Update to use logical line numbering exclusively.
6758         Handle BOL locally.  Accept new lines in directives, but keep
6759         pfile->line decremented.  Diagnostics use logical lines.  Update
6760         directive handling.
6761         * cpplib.c (SEEN_EOL): New.
6762         (skip_rest_of_line, check_eol): Use it.
6763         (end_directive): Increase line number when accepting the newline
6764         at the end of a directive.
6765         (run_directive): Simplify.
6766         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
6767         (_cpp_do_file_change): Update to take buffer line number as an
6768         argument, and store the current map in the cpp_reader.  Remove
6769         line number kludges.
6770         (_cpp_do__Pragma): Restore output position after a _Pragma.
6771         (cpp_push_buffer): Don't set output line or lineno.
6772         (_cpp_pop_buffer): Transfer more info from a faked buffer.
6773         Remove line kludge.  Set output_line.
6774         * cppmacro.c (builtin_macro): Update handling of __LINE__.
6775         (parse_arg): Use logical lines.
6776         (save_lookahead_token): Save EOFs too now.
6777         * cppmain.c (struct printer): Fix comments.
6778         (printer_init): Simplify, let caller do errors.
6779         (scan_translation_unit, check_multiline_token, dump_macro): Update.
6780         (maybe_print_line): Simplify.
6781         (print_line): Don't print a linemarker if -P.
6782         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
6783         (cb_file_change): Simplify.
6784         * line-map.h (LAST_SOURCE_LINE): Fix.
6785         (CURRENT_LINE_MAP): New.
6786
6787 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
6788
6789         * doloop.c (doloop_modify_runtime): Properly compute number of
6790         iterations if loop was unrolled.
6791
6792         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
6793         if their CSELIB_VAL_PTRs are.
6794
6795         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
6796         (setup_spill_pointers): Initialize it.
6797         (spill_restore_mem): Set it.
6798         (do_spill, do_restore): Use it to add REG_INC note.
6799         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
6800
6801         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
6802         asms if other insns are available.
6803
6804         * config/ia64/ia64.c (condop_operator): New predicate.
6805         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
6806         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
6807         patterns.
6808
6809         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
6810         temporary register than directly using a MEM.
6811
6812 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
6813
6814         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
6815         parameter in last change.
6816
6817 2001-08-04  Zack Weinberg  <zackw@panix.com>
6818
6819         * sparc.md: Don't use #if inside C test expression.
6820
6821 2001-08-04  Richard Henderson  <rth@redhat.com>
6822
6823         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
6824
6825 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6826
6827         * cpphash.h (struct cpp_reader): New member directive_line.
6828         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
6829         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
6830         do_pragma): Pass line to callbacks.
6831         (start_directive): Record line of directive.
6832         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
6833         cb_include): Similarly.
6834         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
6835         Similarly.
6836
6837 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
6838
6839         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
6840         comment.
6841
6842 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
6843
6844         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
6845
6846         * reload1.c (fixup_abnormal_edges): New static function.
6847         (reload): Use it.
6848
6849         * flow.c (need_fake_edge_p): New function.
6850         (flow_call_edges_add): Fix handling of noreturn and sibbling calls;
6851         avoid call insn to be very last insn in the insn stream.
6852
6853         * profile.c (branch_prob): Call flow_call_edges_add instead of
6854         doing that by hand; cleanup cfg to re-merge basic blocks once
6855         we are done.
6856
6857 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
6858
6859         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
6860         are also on line-map.h.
6861         * cppfiles.c (stack_include_file): Update.
6862         * cpphash.h (struct cpp_buffer): New member return_at_eof.
6863         (_cpp_pop_buffer): New.
6864         * cppinit.c (cpp_destroy, cpp_finish): Update.
6865         (do_includes): Mark each buffer to return at EOF.
6866         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
6867         return as requested.
6868         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
6869         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
6870         * cpplib.h (cpp_pop_buffer): Remove.
6871         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
6872         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
6873         buffers.
6874         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
6875         to pop buffers.
6876         (do_preprocessing): Update.
6877         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
6878         * c-parse.in (_yylex): Similarly.
6879         * scan-decls.c (scan_decls): Similarly.
6880         * line-map.h: Update comments.
6881
6882         * objc/Make-lang.in (objc-act.o): Update dependencies.
6883
6884 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6885
6886         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
6887         and soft register for operand 0.
6888         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
6889
6890 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6891
6892         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
6893         register for operand 0.
6894         ("bitcmpqi_z_used"): Allow memory for operand 0.
6895         (split "bitcmpqi"): New split to handle address reg as operand 1.
6896
6897 2001-08-04  Andreas Jaeger  <aj@suse.de>
6898
6899         * gcse.c: Revert Daniel's last patch.
6900
6901 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
6902
6903         * sparc-protos.h: Add prototypes for fp_zero_operand and
6904         reg_or_0_operand.
6905         * sh-protos.h: Add prototype for fpul_operand.
6906
6907 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
6908
6909         * doc/extend.texi (Other Builtins): Fix typo in last change.
6910
6911 2001-08-03  Richard Henderson  <rth@redhat.com>
6912
6913         * target.h (gcc_target): Add asm_out.named_section,
6914         section_type_flags, have_named_sections.
6915         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
6916         (TARGET_HAVE_NAMED_SECTIONS): New.
6917         (TARGET_SECTION_TYPE_FLAGS): New.
6918
6919         * Makefile.in (toplev.o): Depend on TARGET_H.
6920         (varasm.o, dbxout.o): Likewise.
6921         * c-common.c (decl_attributes): Check targetm.have_named_sections
6922         instead of ifdef ASM_OUTPUT_SECTION_NAME.
6923         * dbxout.c (dbxout_function_decl): Likewise.
6924         (dbxout_function_end): Likewise.
6925         * toplev.c (compile_file): Likewise.
6926         * varasm.c (exception_section): Likewise.
6927         * cp/decl2.c (finish_objects): Likewise.
6928
6929         * defaults.h (EH_FRAME_SECTION): Remove.
6930         (EH_FRAME_SECTION_ASM_OP): Remove.
6931         (EH_FRAME_SECTION_NAME): New.
6932         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
6933         (UNIQUE_SECTION_P): Remove.
6934         * dwarf2out.c (SECTION_FORMAT): Remove.
6935         (ASM_OUTPUT_SECTION): Remove.
6936         (output_call_frame_info): Use named_section_flags.
6937         (output_comp_unit, dwarf2out_start_source_file): Likewise.
6938         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
6939         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
6940         * varasm.c (in_eh_frame, eh_frame_section): Remove.
6941         (named_section_flags): New.
6942         (named_section): Use it and targetm.section_type_flags.
6943         (resolve_unique_section): New.
6944         (assemble_start_function): Use it.
6945         (asm_emit_uninitialised, assemble_variable): Likewise.
6946         (default_section_type_flags): New.
6947         (default_no_named_section, default_elf_asm_named_section): New.
6948         (default_coff_asm_named_section, default_pe_asm_named_section): New.
6949         * output.h: Update varasm.c decls.
6950         (SECTION_*): New flags.
6951
6952         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
6953         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
6954
6955         * config/elfos.h (UNIQUE_SECTION_P): Remove.
6956         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
6957         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
6958         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
6959         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
6960         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
6961         * config/mips/elf.h, config/mips/elf64.h: Likewise.
6962         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
6963         * config/pa/pa64-hpux.h,
6964
6965         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
6966         (TARGET_ASM_NAMED_SECTION): New.
6967         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
6968         * config/alpha/vms.h, config/arm/coff.h: Likewise.
6969         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
6970         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
6971         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
6972         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
6973         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
6974         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
6975         * config/i386/sco5.h, config/i386/win32.h: Likewise.
6976         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
6977         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
6978         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
6979         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
6980         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
6981         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
6982         * config/sparc/sysv4.h: Likewise.
6983
6984         * config/nextstep.h: Error until named sections implemented.
6985
6986         * config/a29k/a29k.c (a29k_asm_named_section): New.
6987         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
6988         (vms_section_type_flags, vms_asm_named_section): New.
6989         * config/arm/arm.c (arm_elf_asm_named_section): New.
6990         * config/avr/avr.c (asm_output_section_name): Remove.
6991         * config/avr/avr-protos.h: Update.
6992         * config/c4x/c4x.c (c4x_asm_named_section): New.
6993         * config/h8300/h8300.c (h8300_asm_named_section): New.
6994         * config/i386/i386.c (sco_asm_named_section): New.
6995         * config/i386/winnt.c (SECTION_PE_SHARED): New.
6996         (i386_pe_section_type_flags): New.
6997         (i386_pe_asm_named_section): New.
6998         * config/i386/i386-protos.h: Update.
6999         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
7000         * config/mcore/mcore.c (mcore_asm_named_section): New.
7001         * config/mips/mips.c (iris6_asm_named_section): New.
7002         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
7003         instead of UNIQUE_SECTION_P.
7004         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
7005         (xcoff_asm_named_section): New.
7006         * config/sh/sh.c (sh_asm_named_section): New.
7007         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
7008
7009         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
7010         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
7011         (EH_FRAME_SECTION_NAME): New.
7012         (EXCEPTION_SECTION): New.
7013         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
7014         (DEBUG_*_SECTION): Remove.
7015         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
7016         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
7017         (EH_FRAME_SECTION_ASM_OP): Remove.
7018
7019         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
7020         (ASM_OUTPUT_SECTION_NAME): Remove.
7021         (TARGET_ASM_NAMED_SECTION): New.
7022         (TARGET_HAVE_NAMED_SECTIONS): New.
7023         (TARGET_SECTION_TYPE_FLAGS): New.
7024         (EH_FRAME_SECTION_ASM_OP): Remove.
7025         (EH_FRAME_SECTION_NAME): New.
7026
7027 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
7028
7029         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
7030         for complex expressions when cfun == 0.
7031         * doc/extend.texi: Document that __builtin_constant_p can be
7032         used in data initializers as well as functions.
7033
7034 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
7035
7036         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
7037         variable I locally, instead of expecting a declaration in the
7038         calling context.
7039
7040 2001-08-03  Richard Henderson  <rth@redhat.com>
7041
7042         * except.c (collect_one_action_chain): Add an explicit cleanup
7043         action if regions surrounding a catch were encoded entirely
7044         within the call-site entry.
7045
7046 2001-08-03  Richard Henderson  <rth@redhat.com>
7047
7048         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
7049         don't take REGNO of a non-register.
7050
7051 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7052
7053         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
7054         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
7055         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
7056         (__gthread_mutex_init_function): New function for mutex initialization.
7057
7058 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
7059
7060         * Makefile.in: Revert screwed up commit.
7061
7062 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7063
7064         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
7065         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
7066         merged by linker script to get a final _exit().
7067         (__do_global_dtors): New for destructor handling in specific exit
7068         section.
7069         (__do_global_ctors): New for constructors in specific install section.
7070         (__map_data_section): Map data sections before running constructors.
7071         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
7072         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
7073         (DTORS_SECTION_ASM_OP): Likewise.
7074         (CTORS_SECTION_FUNCTION): Define to force a reference to
7075         __do_global_ctors.
7076         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
7077
7078 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
7079
7080         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
7081
7082         * Makefile.in: Add df.h to gcse.c dependencies.
7083
7084 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7085
7086         * varasm.c (output_constant_def_contents): Use for the length of a
7087         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
7088         depending on which is larger.
7089
7090 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
7091
7092         * gcse.c: Include df.h for use as a dataflow analyzer.
7093         Remove regvec.
7094         Declaration of reg_set_info: gone.
7095         New df_analyzer variable used by store motion.
7096         (reg_set_info): Deleted.
7097         (mark_mem_regs): New function, analyze regs used by a mem.
7098         (store_ops_ok): Use dataflow analyzer results to determine if
7099         necessary regs are changed in the block.
7100         (find_moveable_store): Remove check for symbol ref, we can handle
7101         much more complex expressions now.
7102         (compute_store_table): Remove most of the code, it's unnecessary
7103         now that the dataflow analyzer records the info for us.
7104         (store_killed_after): Add parameter to say whether to do the
7105         store_ops_okay test, used to speed up testing when we already know
7106         the answer, and just want to know if the store itself was killed.
7107         (build_store_vector): Largely rewritten to calculate the various
7108         vectors properly, and somewhat optimized.
7109         (store_motion): Init the df_analyzer, get REG_DEF chains.
7110         Also handle trapping expressions (since mems almost always trap)
7111         (simple_mem): Redefine what a simple mem is.
7112
7113 2001-08-03  DJ Delorie  <dj@redhat.com>
7114
7115         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
7116         set from a constant part of the condition.
7117
7118 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
7119
7120         * mkdeps.c (deps_add_default_target): Make local variable
7121         ``start'' a const char pointer.
7122         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
7123
7124 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7125
7126         * doc/install.texi (Configuration): Fix markup.
7127         (Specific, i?86-*-udk): Likewise.
7128         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
7129         --with-gnu-ld.
7130         Document --enable-threads and --enable-libgcj status.
7131         (Specific, mips-sgi-irix*): Canonicalize triples.
7132         (Specific, mips-sgi-irix5): Warn about problems with this config.
7133         Mention required GNU as patch.
7134         Native assembler problems are fixed.
7135         (Specific, mips-sgi-irix6): Update O32 ABI support status.
7136         Document --enable-threads and --enable-libgcj status.
7137
7138 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
7139
7140         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
7141         of mkinstalldirs.
7142
7143 2001-08-03  Richard Henderson  <rth@redhat.com>
7144
7145         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
7146         constant data.
7147
7148 2001-08-03  Richard Henderson  <rth@redhat.com>
7149
7150         * rtlanal.c (find_first_parameter_load): Stop if we
7151         reach a CODE_LABEL at BOUNDARY.
7152
7153 2001-08-03  Richard Henderson  <rth@redhat.com>
7154
7155         * config/alpha/alpha.md (force_movdi): New insn.
7156         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
7157         Tweek FRP marking of VMS prologue insns.
7158         * config/alpha/vms.h (EPILOGUE_USES): New.
7159
7160 2001-08-02  Richard Henderson  <rth@redhat.com>
7161
7162         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
7163
7164 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
7165
7166         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
7167         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
7168         config/convex/convex.h, config/d30v/d30v.c,
7169         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
7170         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
7171         config/mips/mips.h, config/mn10200/mn10200.h,
7172         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
7173         config/v850/v850.h, config/vax/openbsd.h,
7174         config/vax/openbsd1.h, config/vax/ultrix.h,
7175         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
7176         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
7177         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
7178         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
7179         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
7180         in comments and documentation.
7181
7182 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7183
7184         * line-map.c: New.
7185         * line-map.h: New.
7186         * Makefile.in (line-map.o): New.
7187         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
7188         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
7189         * cpperror.c (print_containing_files): Similarly.
7190         (print_location): Update.  Don't output a space before _Pragma.
7191         * cppfiles.c (stack_include_file): Set to line 1 immediately.
7192         (stack_include_filee, cpp_make_system_header): Update.
7193         (_cpp_execute_include): Get logical line number right for calling
7194         as-yet-unterminated #include.
7195         * cpphash.h (struct cpp_reader): Add line_maps.
7196         (_cpp_do_file_change): Update.
7197         * cppinit.c (cpp_create_reader): Initialize line maps.
7198         (cpp_destroy): Destroy line maps.
7199         (cpp_start_read): Get logical line number right.
7200         * cpplex.c (parse_string): Only warn once for multi-line strings.
7201         Use boolean variable for null warning.
7202         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
7203         already.
7204         (do_include_common): End the directive early.
7205         (do_line): Don't warn about out-of-range lines in preprocessed
7206         source.  Update.  Remove unused variables.
7207         (_cpp_do_file_change): Update for new line mapping.
7208         (pragma_cb): New typedef.
7209         (cpp_register_pragma): Stop looking ahead before calling the
7210         handler.  Clean up.
7211         (do_pragma_system_header): End directive early.
7212         (cpp_get_line_maps): New.
7213         (cpp_pop_buffer): Fudge logical line.  Update.
7214         * cpplib.h: Include line-map.h
7215         (enum cpp_fc_reason): Remove.
7216         (struct cpp_file_change): Update.
7217         (cpp_get_line_maps): New.
7218         * cppmain.c (struct_printer): New member map.
7219         (cb_file_change): Update for new mappings.
7220         * fix-header.c (cb_file_change): Similarly.
7221
7222 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
7223
7224         * Makefile.in (libgcc.mk): Define mkinstalldirs.
7225         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
7226
7227 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
7228
7229         * config/vax/vax.c: include expr.h.
7230
7231 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
7232
7233         * Makefile.in ($(srcdir)/configure): Only rebuild in
7234         maintainer mode.
7235         ($(srcdir)/config.in): Only define in maintainer mode.
7236         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
7237
7238 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
7239
7240         * doc/install.texi (Install GCC: Binaries): Update Bull info.
7241
7242 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7243
7244         * gcc.c (set_collect_gcc_options): New function, split out from
7245         main.
7246         Ignore elided switches.
7247         (do_spec_1): Invoke before executing command.
7248         (set_input): Export.
7249         Move declaration ...
7250         * gcc.h (set_input): ... here.
7251         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
7252         file.
7253
7254 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
7255
7256         Kill -fhonor-std.
7257         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
7258         interaction.
7259         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
7260
7261 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
7262
7263         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
7264         for the unnamed instructions it expands to.
7265
7266 2001-08-02  Richard Henderson  <rth@redhat.com>
7267
7268         * regclass.c (call_really_used_regs): Conditionally define.
7269         (init_reg_sets_1): Don't use it if not defined.
7270         (fix_register): Similarly, don't set it.
7271
7272 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7273
7274         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
7275         Correct comment that had been missed in the previous change.
7276
7277 2001-08-01  Stan Shebs  <shebs@apple.com>
7278
7279         * config/darwin.c (machopic_stub_name): Try matching by name.
7280         (update_stubs): New function.
7281         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
7282         unconditionally.
7283
7284 2001-08-01  Richard Henderson  <rth@redhat.com>
7285
7286         * except.c (output_function_exception_table): Use assemble_align.
7287         * varasm.c (assemble_eh_label): Remove.
7288         (assemble_eh_align, assemble_eh_integer): Remove.
7289
7290 2001-08-01  Robert Lipe  <robertl@caldera.com>
7291
7292         * dwarfout.c: Remove reference to README.DWARF.
7293
7294 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
7295
7296         * regclass.c (call_really_used_regs): New array for registers which
7297         are actually used by a call.
7298         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
7299         new array.
7300         (fix_register): Set call_really_used too.
7301         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
7302         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
7303
7304 2001-08-01  Richard Henderson  <rth@redhat.com>
7305
7306         * read-rtl.c (read_name): Consider \r whitespace.
7307
7308 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
7309
7310         * config.gcc: Recognize powerpc-*-netbsd*.
7311
7312         * doc/install.texi (Host/target specific installation notes for
7313         GCC): Mention powerpc-*-netbsd*.
7314
7315         * config/rs6000/netbsd.h: New file.
7316         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
7317         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
7318         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
7319         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
7320         (TARGET_VERSION): Redefine.
7321
7322         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
7323         mcall-netbsd as a match for mcall-sysv.
7324         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
7325         (ncrti.S, ncrtn.S): New targets.
7326         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
7327
7328         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
7329         "netbsd' as a V4 ABI.
7330         (ASM_SPEC): Check for -mcall-netbsd.
7331         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
7332         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
7333         (LIB_SPEC, ENDFILE_SPEC): Ditto.
7334         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
7335         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
7336         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
7337         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
7338
7339         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
7340         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
7341
7342 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
7343
7344         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
7345         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
7346         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
7347         including "unwind-pe.h".
7348
7349 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
7350
7351         * rs6000.md (define_splits): Kill unused constraints.
7352
7353 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
7354                               Jan Hubicka  <jh@suse.cz>
7355
7356         * function.c (thread_prologue_and_epilogue_insns): Kill code
7357         dealing with non-existent CFG.
7358
7359 2001-08-01  Kazu Hirata  <kazu@hxi.com>
7360
7361         * alias.c: Fix comment formatting.
7362         * bitmap.c: Likewise.
7363         * builtins.c: Likewise.
7364         * calls.c: Likewise.
7365         * c-common.c: Likewise.
7366         * c-decl.c: Likewise.
7367         * c-dump.c: Likewise.
7368         * c-lex.c: Likewise.
7369         * collect2.c: Likewise.
7370         * combine.c: Likewise.
7371         * conflict.c: Likewise.
7372         * cppfiles.c: Likewise.
7373         * cppinit.c: Likewise.
7374         * cpplex.c: Likewise.
7375         * cpplib.c: Likewise.
7376         * cppmacro.c: Likewise.
7377         * cppspec.c: Likewise.
7378         * c-pragma.c: Likewise.
7379         * crtstuff.c: Likewise.
7380         * cse.c: Likewise.
7381         * cselib.c: Likewise.
7382         * c-semantics.c: Likewise.
7383         * c-typeck.c: Likewise.
7384
7385 2001-08-01  H.J. Lu <hjl@gnu.org>
7386
7387         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
7388
7389 2001-08-01  H.J. Lu <hjl@gnu.org>
7390
7391         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
7392
7393 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
7394
7395         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
7396         contextualizing Objective-C class name lookup by the lexer.
7397         (typespec_reserved_nonattr): Disable ObjC class name lookup after
7398         seeing a TYPESPEC.
7399         (protocoldef): Add support for forward @protocol declarations.
7400         (yylexname): Suppress ObjC class name lookup in certain contexts;
7401         re-enable after lookup is complete.
7402         (_yylex): Re-enable ObjC class name lookup when certain
7403         punctuation marks are seen.
7404
7405         * objc/objc-act.c (check_protocol_recursively): New function used
7406         for finding circular dependencies in protocols.
7407         (objc_declare_protocols): New function for handling forward
7408         @protocol declarations.
7409         (receiver_is_class_object): Detect the case when 'self' is used
7410         inside of a class method.
7411         (build_message_expr): Issue a warning if class method is desired
7412         but instance method is found instead.
7413         (conforms_to_protocol): Streamline.
7414         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
7415         protocol Foo, even if 'Bar foo' does not.
7416         (check_protocols): Streamline.
7417         (start_protocol): Add checks for circular and duplicate protocol
7418         definitions.
7419         (encode_aggregate_within): For typedefs of structs, encode the
7420         underlying struct.
7421         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
7422         (objc_declare_protocols): New prototype.
7423
7424 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7425
7426         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
7427         * cpplex.c (handle_newline): Update prototype.  Maintain logical
7428         line number.
7429         (skip_escaped_newlines, skip_block_comment, parse_string):
7430         Update accordingly.
7431         (_cpp_lex_token): Update, and store token position within the token.
7432         * cpplib.h (struct cpp_token): Add line and column entries.
7433         * cppmacro.c (replace_args): Position stringified tokens correctly.
7434
7435 2001-08-01  Andreas Jaeger  <aj@suse.de>
7436
7437         * basic-block.h: Add prototype for last_loop_beg_note.
7438
7439 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
7440
7441         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
7442         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
7443         comment.
7444         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
7445         while handling WITH_CLEANUP_EXPR node. Use second operand calling
7446         expand_decl_cleanup.
7447         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
7448         the first RTX.
7449         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
7450         operand while calling simple_cst_equal.
7451         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
7452         operand is the cleanup expression, the third is the RTL_EXPR.
7453         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
7454
7455 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
7456
7457         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
7458
7459 2001-07-31  matthew green  <mrg@eterna.com.au>
7460
7461         * config.gcc (i386-*-netbsdelf): New description.
7462         * config/i386/netbsd-elf.h: New file.
7463
7464 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
7465
7466         * loop.c (check_dbra_loop): Use single_set to compute
7467         jump_label.
7468
7469 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
7470
7471         PowerPC reorg and support for powerpc64-*-linux*.
7472
7473         Also fixes emitting of constants on 32 bit and 64 bit
7474         platforms.
7475
7476         * config.gcc: powerpc64-*-linux* is a new target.
7477         Things that needed aix.h now also include xcoff.h
7478
7479         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
7480         xcoff.h.
7481         Move AIX specific stuff into aix.h.
7482         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
7483         with more than just XCOFF now.
7484         (SET_ASM_OP): Remove, now defined where needed.
7485         (FUNCTION_PROLOGUE): New macro definition.
7486         (FUNCTION_EPILOGUE): New macro definition.
7487         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
7488
7489         * config/rs6000/xcoff.h: New file.
7490
7491         * config/rs6000/linux64.h: New file.
7492
7493         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
7494
7495 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
7496
7497         * rs6000.c (print_operand_address): Handle ELF syntax.
7498         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
7499         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
7500         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
7501
7502 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
7503
7504         * rs6000.c (rs6000_override_options): Only disable
7505         flag_function_sections for XCOFF.
7506         (exact_log2_cint_operand): New predicate.
7507         (reg_or_{add,sub}_cint64_operand): New predicates.
7508         (add_operand): Compare CONST_INT with fewer function calls.
7509         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
7510         (print_operand, case 'p'): Ensure positive operand.
7511         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
7512         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
7513         (PREDICATE_CODES): Add new predicates.
7514         * rs6000.md (addsi3): Split 32-bit constants more correctly.
7515         (divsi3, modsi3): Ensure positive power-of-2.
7516         (adddi3): Use new predicate.  Split 32-bit constants more
7517         correctly.  Re-arrange splitter to handle any constant.
7518         (subdi3): Use new predicate.
7519         (divdi3, moddi3): Ensure positive power-of-2.
7520         (movdi): Use rs6000_emit_set_const.
7521         (load_toc_v4_pic_di): Delete.
7522
7523 2001-07-31  Graham Stott <grahams@redhat.com>
7524
7525         * function.c (pad_below): Revert 2001-07-26 patch.
7526
7527 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
7528
7529         * reg-stack (convert_regs_1): Fix best edge condition.
7530
7531 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
7532
7533         * jump.c (duplicate_loop_exit_test): Better test for jumps
7534         entering the loop; create loop pre_header.
7535
7536 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
7537
7538         * doc/install.texi: Add s390 and s390x as new targets.
7539         * doc/invoke.texi: Add documantation of S/390 and zSeries
7540         target options.
7541         * doc/md.texi: Add documantation of S/390 and zSeries constraints.
7542
7543 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
7544
7545         * config/m68k/m68k.md: Replace all general_operand with
7546         nonimmediate_operand for all destinations.
7547         * config/m68k/m68k.c (not_sp_operand): Likewise.
7548
7549 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
7550
7551         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
7552
7553 2001-07-30  Richard Henderson  <rth@redhat.com>
7554
7555         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
7556         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
7557
7558 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
7559
7560         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
7561         Add missing doc strings
7562         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
7563         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
7564
7565 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
7566
7567         * i386.c (ix86_output_main_function_alignment_hack): New function.
7568         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
7569
7570         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
7571         edges by EDGE_DFS_BACK flag.
7572         (dump_edge_info): Add dfs_back flag.
7573         * basic-block.h (EDGE_DFS_BACK): New constant.
7574         (mark_dfs_back_edges): Declare.
7575         * alias.c (loop_p): Remove.
7576         (mark_constant_function): Use mark_dfs_back_edges.
7577
7578         * reg-stack.c (block_info_def): Add predecesors counter and stack_out.
7579         (reg_to_stack): Call mark_dfs_back_edges; count the predecesors.
7580         (compensate_edge): Break out from ...
7581         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
7582         (convert_regs_2): Set block_done once block is really done;
7583         Do updating of the predecesors counts.
7584
7585         * toplev.c (rest_of_compilation): Recompute block_for_insn
7586         before post-reload cfg_cleanup.
7587         * function.c (thread_prologue_epilogue_insns):
7588         Call set_block_for_new_insns when emitting prologue directly.
7589
7590 2001-07-30  Andreas Jaeger  <aj@suse.de>
7591
7592         * jump.c: Add prototype for mark_modified_reg.
7593
7594         * cse.c (set_live_p): Add unused attribute.
7595
7596         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
7597         overflow.
7598         (scan_for_source_files): Use long for count to avoid overflow.
7599         (output_data): Likewise.
7600         (output_data): Don't use string concatatenation to silence gcc
7601         -traditional.
7602
7603         * predict.c: Fix typos and grammar.
7604
7605         * gcse.c (insert_insn_end_bb): Remove unused variables.
7606
7607 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
7608
7609         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
7610         (attempt_auto_inc): LIkewise.
7611         (mark_used_reg): Likewise.
7612         (try_pre_increment_1): Likewise.
7613         * regclass.c (regclass): Likewise.
7614         * global.c (allocno_compare): Update comment; change scaling factor.
7615         * local-alloc.c (QTY_CMP_PRI): Likewise.
7616         * regs.h (REG_FREQ_FROM_BB): New.
7617         (REG_FREQ_MAX): Likewise.
7618
7619 2001-07-30  H.J. Lu <hjl@gnu.org>
7620
7621         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
7622         -D_GNU_SOURCE.
7623
7624 2001-07-30  H.J. Lu  (hjl@gnu.org)
7625
7626         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
7627         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
7628         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
7629
7630 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
7631
7632         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
7633         as -mthumb-interwork when -mcpu=arm7 is specified.
7634
7635 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
7636
7637         * predict.def (noreturn, loop branch, loop exit): Mark as first
7638         match heuristics.
7639
7640 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
7641
7642         * combine.c (try_combine): Avoid barrier after noop jumps.
7643
7644 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7645
7646         * cpphash.h (struct cpp_reader): Remove import_warning.
7647         * cpplib.c (skip_rest_of_line): Don't bother turning off
7648         macro expansion.
7649         (parse_include): Move include handling to...
7650         (do_include_common): ... here.  Move import warning from...
7651         (do_import): ... here.
7652         (do_pragma_poison): Don't do a callback for poison identifiers.
7653         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
7654         * cppmain.c (setup_callbacks): Similarly.
7655
7656 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
7657
7658         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
7659         handle multiple sets.
7660         * except.c (sjlj_mark_call_sites): .... here.
7661         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
7662
7663 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
7664
7665         Suggested by Richard Henderson and Richard Kenner:
7666         * combine.c (recog_for_combine): Use the fake recog
7667         only if instruction does not match.
7668         * rtl.h (NOOP_MOVE_INSN_CODE): New.
7669         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
7670
7671         * combine.c (try_combine): Discover noop jump as direct jump.
7672
7673 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
7674
7675         * df.c (df_rd_global_compute): Add successors to worklist, not
7676         current item.
7677         (df_ru_global_compute): Ditto.
7678
7679 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
7680
7681         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
7682         increment REG_N_SETS.
7683
7684 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
7685
7686         * sbitmap.h: New prototype for sbitmap_a_xor_b.
7687
7688         * sbitmap.c (sbitmap_a_xor_b): New function.
7689         ifdef the basic block stuff on IN_GCC.
7690
7691 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7692
7693         * cppexp.c (parse_defined): Always record the macro name.
7694         (lex): Don't worry about identifiers, or special-case
7695         CPP_NOT here.
7696         (_cpp_parse_expr): Figure out at the end of the routine
7697         whether we saw a valid !defined() expression.
7698         * cppfiles.c (stack_include_file): Update for mi_valid.
7699         (_cpp_pop_file_buffer): Similarly.
7700         * cpplex.c (_cpp_lex_token): Similarly.
7701         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
7702         mi_if_not_defined, mi_lexed): Remove.
7703         (mi_valid): New.
7704         * cpplib.c (do_if): Simplify.
7705         (do_endif, push_conditional, _cpp_handle_directive): Update
7706         for renaming of mi_state to mi_valid.
7707 doc:
7708         * cpp.texi: Add index entries for digraphs, and add comment
7709         that C++ refers to them as alternative tokens.
7710
7711 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
7712
7713         * basic-block.h (CLEANUP_PRE_LOOP): New.
7714         * except.c (finish_eh_generation): Update call of cleanup_cfg.
7715         * sibcall.c (optimize_sibling_calls): Likewise.
7716         * toplev.c (rest_of_compilation): Likewise.
7717         * flow.c (try_forward_edges): Take argument MODE;
7718         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
7719         (try_optimize_cfg): Update call of try_forward_edges.
7720
7721 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
7722                                Jan Hubicka  <jh@suse.cz>
7723
7724         * (validate_replace_rtx_1): Fix simplification of MINUS.
7725
7726 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7727
7728         PR preprocessor/3669
7729         * cppinit.c (init_dependency_output): Turn off dump requests
7730         if sending dependencies to stdout.
7731
7732 2001-07-28  Richard Henderson  <rth@redhat.com>
7733
7734         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
7735         not optimizing.
7736
7737 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
7738
7739         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
7740
7741 2001-07-28  Kazu Hirata  <kazu@hxi.com>
7742
7743         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
7744         is VAR_DECL first to prevent an ICE.
7745
7746 2001-07-28  Richard Henderson  <rth@redhat.com>
7747
7748         * varasm.c (immed_real_const_1): Don't elide special cases for
7749         nested functions.
7750         (clear_const_double_mem): Clear const_tiny_rtx too.
7751
7752 2001-07-28  Richard Henderson  <rth@redhat.com>
7753
7754         * dwarf2out.c (dw_val_class_offset): New.
7755         (struct dw_ranges_struct, dw_ranges_ref): New.
7756         (ranges_table, ranges_table_allocated): New.
7757         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
7758         (add_AT_offset, add_ranges, output_ranges): New.
7759         (print_die, output_die): Handle dw_val_class_offset.
7760         (attr_checksum, size_of_die, value_format): Likewise.
7761         (gen_lexical_block_die): Handle non-contiguous blocks.
7762         (gen_block_die): Likewise.
7763         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
7764         if needed.  Dump the ranges table.
7765         * final.c (final_start_function): Remove unnecessary notes and
7766         rebuild the block tree before numbering the blocks.
7767         * function.c (reorder_blocks_0): Walk the existing block tree
7768         to unmark all blocks.
7769         (reorder_blocks_1): Create block fragments when duplicate block
7770         notes are seen.
7771         (reorder_fix_fragments): New.
7772         (reorder_blocks): Call it.
7773         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
7774
7775 2001-07-28  Richard Henderson  <rth@redhat.com>
7776
7777         * emit-rtl.c (adjust_address): Make a copy of the memory address.
7778
7779 2001-07-28  Richard Henderson  <rth@redhat.com>
7780
7781         * flow.c (add_to_mem_set_list): New function.
7782         (init_propagate_block_info): Use it.
7783         (mark_set_1): Likewise.
7784         (insn_dead_p): Canonicalize memory address for dead store
7785         comparison.  Allow wider mode stores to kill narrower mode stores.
7786         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
7787         (invalidate_mems_from_set): Don't handle MEMs.
7788
7789 2001-07-28  Kazu Hirata  <kazu@hxi.com>
7790
7791         * config/h8300/h8300.h: Fix formatting.
7792
7793 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
7794
7795         * basic-block.h (EDGE_FREQUENCY): New macro.
7796         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
7797         for new BB/edges.
7798         * flow.c (find_sub_basic_blocks): Likewise.
7799         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
7800         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
7801
7802         * predict.c (DEF_PREDICTOR): New argument FLAGS.
7803         (HITRATE): New macro.
7804         (PRED_FLAG_FIRST_MATCH): New constant.
7805         (predictor_info): New field flgags.
7806         (combine_predictions_for_insn): Use DS theory to combine
7807         probabilities; set the edge probabilities when finished.
7808         (estimate_probability): Avoid duplicated matches
7809         of LOOP_BRANCH heuristics for nested loops; update comment.
7810         * predict.def: Add flags for each prediction, set probabilities
7811         according to B&L paper.
7812         * predict.h (DEF_PREDICTOR): New argument FLAGS.
7813
7814         * profile.c (compute_branch_probabilities):  Cleanup way the edge
7815         probabilities are computed and REG_BR_PROB notes are dropped; if
7816         values does not match, emit error.
7817         (init_branch_prob): Do error instead of warning when profile driven
7818         feedback is missing or corrupt.
7819
7820 2001-07-27  DJ Delorie  <dj@redhat.com>
7821
7822         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
7823         against a constant, try to adjust the compare to have the desired
7824         constant in it so that min/max optimizations happen more often.
7825
7826 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
7827
7828         * flow.c (last_loop_beg_note): New function.
7829         (redirect_edge_and_branch): Use it.
7830         (split_edge): Likewise.
7831
7832         * alias.c (loop_p): Avoid uninitialized memory access.
7833
7834         * flow.c (try_forward_edges): Avoid accessing freed memory.
7835
7836         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
7837         variable access.
7838
7839 2001-07-26  Andrew Haley  <aph@redhat.com>
7840         Joern Rennecke <amylaar@redhat.com>
7841
7842         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
7843         (SUBTARGET_CPP_ENDIAN_SPEC): New.
7844         (SUBTARGET_CPP_SPEC): New.
7845         (CPP_SPEC): Remove.
7846         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
7847         (SUBTARGET_CPP_PTR_SPEC): New.
7848         (CPP_DEFAULT_CPU_SPEC): New.
7849         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
7850         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
7851         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
7852         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
7853         (SUBTARGET_CPP_SPEC): Define as an empty string.
7854
7855 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7856
7857         * doc/install.texi (Configuration): Properly link the host
7858         specific instructions also when generating HTML.
7859
7860 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
7861
7862         * flow.c (redirect_edge_and_branch_force): Test
7863         target->global_live_at_start.
7864
7865 2001-07-26  Richard Henderson  <rth@redhat.com>
7866
7867         * simplify-rtx.c (avoid_constant_pool_reference): Export.
7868         * rtl.h (avoid_constant_pool_reference): Declare it.
7869         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
7870         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
7871
7872 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
7873
7874         * rtl.h (cleanup_barriers): Declare.
7875         * jump.c (cleanup_barriers): New function.
7876         * toplev.c (rest_of_compilation): Call cleanup_barriers
7877         before loop optimizer and after bb_reorder.
7878
7879         * flow.c (back_edge_of_syntactic_loop_p): New.
7880         (split_edge): Use it.
7881
7882 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7883
7884         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
7885
7886 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
7887
7888         * cse.c (cse_process_notes): Replace any registers if the address
7889         remains valid.
7890
7891 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
7892
7893         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
7894         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
7895         (propagate_block): Update prototype.
7896         * flow.c (update_life_info): Simplify the CFG and
7897         recalculate the global regs which are alive when
7898         removing dead code during a global update.
7899         (propagate_block): Return non-zero if an INSN is
7900         deleted.
7901
7902 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7903
7904         * Makefile.in (LIBICONV): Define.
7905
7906 2001-07-26  Catherine Moore  <clm@redhat.com>
7907
7908         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
7909         of conditional to avoid tree checking errors.
7910
7911 2001-07-26  Kazu Hirata  <kazu@hxi.com>
7912
7913         * regmove.c (regmove_optimize): Don't replace a reg with
7914         another reg of a different mode.
7915
7916 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
7917
7918         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
7919         limit length of dependancy flush list.
7920         * params.h (MAX_PENDING_LIST_LENGTH): Define.
7921         * sched-int.h  (struct deps): Add pending_flush_length field.
7922         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
7923         has 1 element in it.
7924         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
7925         (sched_analyze): After a jump, if the pending memory flush list is too
7926         large, flush the pending lists.
7927         (init_deps): Initialize pending_flush_length to 0.
7928         * doc/invoke.texi (max_pending_list_length): Document parameter.
7929
7930 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
7931
7932         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
7933         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
7934         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
7935
7936 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7937
7938         * cpphash.h (struct_lexer_state): Delete was_skipping.
7939         Move skipping here from struct cpp_reader.
7940         * cpplex.c (parse_identifier): Update.
7941         (_cpp_lex_token): Don't skip tokens in a directive.
7942         * cpplib.c (struct if_stack): Update.
7943         (start_directive, end_directive): Don't change skipping state.
7944         (_cpp_handle_directive): Update.
7945         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
7946         (do_else, do_endif): Update; only check for excess tokens if not
7947         in a skipped conditional block.
7948         (push_conditional): Update for new struct if_stack.
7949
7950 2001-07-26  Graham Stott  <grahams@redhat.com>
7951
7952         * function.c (locate_and_pad_parm): Also pad initial offset
7953         so that the total argument size also includes the padding.
7954
7955 2001-07-26  Graham Stott <grahams@redhat.com>
7956
7957         * gensupport.c (alter_output_for_insn): Correct enable checking failure
7958         change XSTR to XTMPL.
7959
7960         (process_one_cond_exec): Likewise
7961
7962 2001-07-25  Richard Henderson  <rth@redhat.com>
7963
7964         * varasm.c (assemble_variable): Create DECL_RTL before setting
7965         TREE_ASM_WRITTEN.
7966
7967 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
7968
7969         * predict.c (estimate_probability): Avoid duplicated predictions.
7970
7971         * loop.c (find_and_verify_loops): Grok multiple barriers.
7972
7973 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7974
7975         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
7976
7977         * dbxout.c: Consistently use putc instead of fputc.
7978         (print_wide_int): New function; call instead of direct fprintf.
7979         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
7980         (dbxout_type_fields, dbxout_type_method_1): Likewise.
7981         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
7982         (print_int_cst_octal): Likewise.
7983         (print_octal): Show we wrote characters.
7984         (dbxout_type): Set have_used_extensions in more places.
7985
7986 2001-07-25  Catherine Moore  <clm@redhat.com>
7987
7988         * config/v850/v850.c (v850_va_arg):  Use addr
7989         instead of valist to build incr.
7990
7991 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
7992
7993         * flow.c (delete_dead_jumptables): New function.
7994         (life_analyzis): Call it.
7995         * bb-reorder.c (skip_insns_after_block): Handle contradictory
7996         sequences.
7997
7998 2001-07-25  Richard Henderson  <rth@redhat.com>
7999
8000         * except.c (reachable_handlers): Handle a region being removed
8001         out from under a RESX.
8002
8003 2001-07-25  Richard Henderson  <rth@redhat.com>
8004
8005         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
8006         swap GE/GT if it is an fp comparison.
8007
8008 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
8009
8010         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
8011         operands.
8012
8013 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
8014
8015         * ssa.c (rename_insn_1): Do not wrap an assignment to a
8016         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
8017         glitch.
8018
8019         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
8020         throw an exception.
8021         (visit_expression): When attempting to simplify an expression,
8022         retrieve any modes for arguments before they are simplified
8023         to constants.
8024
8025 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
8026             Janis Johnson  <janis@us.ibm.com>
8027
8028         * stmt.c (expand_goto): A nonlocal goto can be a call too.
8029         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
8030         pointer parameters to match documented usage of nonlocal_goto.
8031         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
8032         parameters to their correct order.
8033         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
8034         parameters to their correct order.
8035
8036 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
8037
8038         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
8039
8040 2001-07-25  Jan Hubicka  <jh@suse.cz>
8041             Richard Henderson  <rth@redhat.com>
8042
8043         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
8044         the sequence.
8045         (make_edges): New argument update_p; populate the edge cache if set.
8046         (find_basic_blocks): Update make_edges invocation.
8047
8048 2001-07-24  Joel Sherrill <joel@OARcorp.com>
8049
8050         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
8051
8052 2001-07-24  Joel Sherrill <joel@OARcorp.com>
8053
8054         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
8055         -Acpu and -Amachine.h.
8056         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
8057         Corrected header to say ELF not a.out.
8058         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
8059         when given -msoft-float.
8060
8061 2001-07-24  Joel Sherrill <joel@OARcorp.com>
8062
8063         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
8064         extra multilib parts like arm-elf.
8065         (i960-*-coff*, i960-*-rtems): Should not use collect2.
8066         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
8067         crtfini.o as extra multilib parts.
8068
8069 2001-07-24  Joel Sherrill <joel@OARcorp.com>
8070
8071         * configure.in: Add rtems as a supported thread model.
8072         * gthr-rtems.h: Add missing entry point __gthread_active_p.
8073         * configure: Rebuilt.
8074
8075 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
8076
8077         * stor-layout.c (get_mode_alignment): make it work when
8078         BITS_PER_UNIT is not a power of two.
8079         * builtins.c (get_pointer_alignment): Likewise.
8080
8081 2001-07-24  Richard Henderson  <rth@redhat.com>
8082
8083         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
8084         the retrieved constant into the expected mode.
8085
8086 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
8087
8088         * flow.c (try_simplify_condjump): Avoid duplicated edges.
8089         (verify_flow_info): Check for duplicated edges; clarify
8090         error reporting.
8091
8092         * flow.c (block_label): Update basic_block_for_insn.
8093         (commit_edge_insertions): Call compute_bb_for_insn.
8094
8095         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
8096         returns too.
8097
8098         * flow.c (redirect_edge_and_branch,
8099         try_optimize_cfg): Use redirect_edge_succ_nodup
8100         (redirect_edge_succ_nodup): New.
8101         * basic_block.h (redirect_edge_succ_nodup): Declare.
8102
8103         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
8104         after gcse.
8105
8106 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
8107
8108         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
8109         (try_crossjump_to_edge): Update commetns.
8110         (try_crossjump_bb): Likewise.
8111
8112 2001-07-24  Richard Henderson  <rth@redhat.com>
8113
8114         * combine.c (distribute_notes): Move set of need_refresh
8115         for noop_move_p down to catch all cases.
8116
8117 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
8118
8119         * recog.c (split_all_insns_noflow): New.
8120         * rtl.h (split_all_insns_noflow): Declare.
8121         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
8122         * m68hc11.c (m68hc11_reorg): Likewise.
8123         * sh.c (machine_dependent_reorg): Likewise.
8124         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
8125         call.
8126
8127 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
8128
8129         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
8130         (ashlsi3_n splitter): Likewise.
8131         (lshrsi3_n splitter): Likewise.
8132
8133         (GOTaddr2picreg): Make const SImode.
8134         (sym_label2reg): Likewise.
8135         (symGOT2reg): Likewise.
8136         (symGOTOFF2reg) Likewise.
8137
8138         (casesi_worker_0): Make unspec SImode.
8139
8140 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
8141
8142         * config/sh/sh.c (barrier_align): Check that an operand really is
8143         an insn before extracting its INSN_CODE.
8144
8145 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
8146
8147         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
8148         dangling else.
8149
8150         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
8151         for SImode to prevent overflow.
8152
8153 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8154
8155         * config/mips/irix6-libc-compat.c: New file.
8156         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
8157         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
8158         passing workaround.
8159
8160 2001-07-24  lars brinkhoff  <lars@nocrew.org>
8161
8162         * rtl.texi (REG_POINTER): Document.
8163         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
8164         QFmode, HFmode, TQFmode, QCmode, and HCmode.
8165
8166 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
8167
8168         * flow.c (delete_noop_moves): Do not confuse libcall regions.
8169
8170 2001-07-23  Richard Henderson  <rth@redhat.com>
8171
8172         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
8173
8174 2001-07-23  Kazu Hirata  <kazu@hxi.com>
8175
8176         * config/h8300/h8300-protos.h: Add a prototype for
8177         general_operand_dst_push.
8178         * config/h8300/h8300.c (general_operand_dst_push): New.
8179         * config/h8300/h8300.h (OK_FOR_T): New.
8180         (EXTRA_CONSTRAINT): Use it.
8181         * config/h8300/h8300.md (movqi_push): Remove and integrate into
8182         the existing movqi pattern.
8183         (movhi_push): Likewise.
8184
8185         * reload.c: Fix comment typos.
8186
8187 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
8188
8189         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
8190
8191 2001-07-23  H.J. Lu  (hjl@gnu.org)
8192
8193         * doc/extend.texi: Update __builtin_return_address and
8194         __builtin_frame_address.
8195
8196 2001-07-23  Richard Henderson  <rth@redhat.com>
8197
8198         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
8199         before CSE.
8200         * config/i386/i386.md: New setcc+movzbl peephole2.
8201
8202 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8203
8204         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
8205         * objc/objc-act.c: Include debug.h.
8206         (synth_module_prologue): Save and restore debug hooks too.
8207
8208 2001-07-23  lars brinkhoff  <lars@nocrew.org>
8209
8210         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
8211         and C4X_FLOAT_FORMAT.
8212         (BOOL_TYPE_SIZE): Document.
8213
8214 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
8215
8216         * unroll.c (loop_iterations): Fix miscalculation of initial
8217         giv offset.
8218
8219 2001-07-13  Andrew Haley  <aph@redhat.com>
8220
8221         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
8222         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
8223         * config/sh/sh.c (sh_can_redirect_branch): New function.
8224         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
8225         * reorg.c (steal_delay_list_from_target): Use
8226         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
8227
8228 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
8229
8230         * flow.c (try_simplify_condjump): Unlink insn chain on
8231         fallthru edge; use can_fallthru.
8232
8233 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
8234
8235         * basic-block.h (find_sub_basic_block): Declare.
8236         * flow.c (make_edges): New arguments MIN and MAX;
8237         (find_sub_basic_blocks): Revamp to use make_edges
8238         and purge_dead_edges.
8239         (find_basic_blocks): Update call of find_sub_basic_block.
8240
8241         * recog.c (split_all_insns): Always expect CFG to be consistent;
8242         call find_sub_basic_blocks in case something has changed.
8243         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
8244         has been built.
8245
8246         * basic-block.h (delete_noop_moves): Declare.
8247         * combine.c (combine_instructions): Call it.
8248         (recog_for_combine): Tolerate noop moves
8249         (distribute_notes): Force refresh when register dies at noop move.
8250         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
8251         too.
8252         (life_analysis): Update delete_noop_moves call.
8253         (set_noop_p): Move too ...
8254         * rtlanal.c (noop_move_p): ... here.
8255         * rtl.h (noop_move_p): Declare.
8256
8257         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
8258         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
8259         after combine.
8260         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
8261         (cprop_jump): Likewise; call purge_dead_edges if substitution suceeded.
8262
8263 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
8264
8265         * reload.c (push_reload): Fix typo in comment.
8266         (find_reloads_address): Ditto.
8267         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
8268
8269 2001-07-22  Richard Henderson  <rth@redhat.com>
8270
8271         * flow.c: Grammar check and clarify a lot of comments.
8272         (try_simplify_condjump): Rename variables to be clearer.
8273         (try_forward_edges): Skip complex and fallthru edges.
8274         Rearrange tests to avoid duplicate checks.
8275         (flow_find_cross_jump): Likewise.
8276         (outgoing_edges_match): Allow match if neither branch has
8277         probability data.  Loosen probability match to 5%.
8278         (try_crossjump_to_edge): Hoist repeated indirection into
8279         local variables.
8280         (try_crossjump_bb): Don't check complex edges.  Eliminate
8281         redundant crossjump tests.
8282         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
8283         checks before more expensive checks.
8284
8285 2001-07-22  Richard Henderson  <rth@redhat.com>
8286
8287         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
8288         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
8289         arguments.
8290
8291 2001-07-22  Richard Henderson  <rth@redhat.com>
8292
8293         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
8294         (const_sint32_operand): Likewise.
8295         * m68k.md (anon mulsi pattern): Use const_int_operand not
8296         const_sint32_operand.
8297         (umulsi3_highpart): Zero extend a constant input.
8298         (smulsi3_highpart): Don't bother checking SImode constant.
8299         (const_umulsi3_highpart): Give op3 DImode.
8300         (const_smulsi3_highpart): Likewise.
8301
8302 2001-07-22  Richard Henderson  <rth@redhat.com>
8303
8304         * flow.c (split_block): Make sure bb_note is included in the
8305         new block when splitting before a label.
8306
8307 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
8308
8309         * basic-block.h (redirect_edge_and_branch_force,
8310         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
8311         * flow.c (redirect_edge_and_branch_force,
8312         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
8313         (redirect_edge_and_branch_force): Fix copying of lifeness information.
8314         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
8315         * ifcvt.c (dead_or_predictable): Take BB as an new destionation
8316         instead of label; update CFG after transformation.
8317         (find_if_case_1): Update call, use redirect_edge_and_branch_force
8318         for finishing the transformation; handle even case where ELSE
8319         does not follow THEN.
8320         (find_if_case_2): Update call of dead_or_predictable; simplify
8321         CFG update.
8322
8323         * emit-rtl.c (split_branch_probability): New global variable.
8324         (try_split): Take care to set split_branch_probability and
8325         create REG_BR_PROB note for new jump insns.
8326         * md.texi (define_split): Document new feature.
8327
8328         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
8329
8330 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8331
8332         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
8333         (asm_out_file): Remove redundant declaration.
8334         (assemble_asm): Remove old #if 0 block.
8335         (assemble_variable): Remove end of function; debug output is
8336         now handled with global_decl.  Remove old #if 0 block.  Update.
8337         Remove saved_in_section and associated no-op code.
8338         * Makefile.in (varasm.o): Correct dependencies.
8339
8340 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
8341
8342         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
8343         the definition in defaults.h.
8344
8345 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
8346
8347         * jump.c: Update comments.
8348         (delete_barrier_successors, delete_unreferenced_labels,
8349         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
8350         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
8351         jump_optimize, jump_optimize_minimal): Kill.
8352         (rebuild_jump_labels): Move code from jump_optimize_1.
8353         (purge_line_number_notes): Likewise.
8354         (copy_loop_headers): Likewise.
8355         * reg-stack.c: Update comment.
8356         * stmt.c: Likewise.
8357         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
8358         JUMP_AFTER_REGSCAN): Kill.
8359         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
8360         purge_line_number_notes and copy_loop_headers.
8361
8362 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
8363            Richard Henderson  <rth@redhat.com>
8364
8365         * dbxout.c (dbxout_global_decl): New.
8366         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
8367         * sdbout.c (sdbout_finish): New.
8368         (sdbout_debug_hooks): Use it, add comments.
8369         (sdbout_global_decl): Defer initialised public vars to
8370         sdbout_finish.
8371         * varasm.c (assemble_variable): Don't output debug information
8372         for file-scope variables.
8373
8374 2001-07-22  Richard Henderson  <rth@redhat.com>
8375
8376         * config/alpha/alpha.c (get_trap_mode_suffix): New.
8377         (get_round_mode_suffix): New.
8378         (print_operand): Use them for [/].  Remove support for [&'`()+].
8379         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
8380         * config/alpha/alpha.md (attr round_suffix): New.
8381         (attr trap_suffix): New.
8382         (all insns): Set them appropriately.  Use %/ instead of the
8383         myriad punctuators.
8384
8385 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8386
8387         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
8388
8389 2001-07-22  Richard Henderson  <rth@redhat.com>
8390
8391         * regrename.c (regrename_optimize): Compute nregs for each
8392         potential target register.
8393
8394 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
8395            Richard Henderson  <rth@redhat.com>
8396
8397         * dbxout.c (dbxout_global_decl): New.
8398         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
8399         * sdbout.c (sdbout_finish): New.
8400         (sdbout_debug_hooks): Use it, add comments.
8401         (sdbout_global_decl): Defer initialised public vars to
8402         sdbout_finish.
8403         * varasm.c (assemble_variable): Don't output debug information
8404         for file-scope variables.
8405
8406 2001-07-21  H.J. Lu  (hjl@gnu.org)
8407
8408         * config/mips/mips.c (mips_cpu): Moved into ...
8409         (override_options): Here.
8410
8411         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
8412         mips_tune.
8413         (mips_cpu): Removed.
8414
8415 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8416
8417         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
8418         ("iorqi3"): Likewise.
8419         ("xorqi3"): Likewise.
8420         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
8421         ("*subhi3_sp): Likewise.
8422         ("*subhi3"): Likewise.
8423         ("extendhisi2"): Accept D, X and Y as source operand to avoid
8424         reload problems.
8425
8426 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
8427
8428         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
8429         * config/freebsd.h: Likewise.
8430         * config/linux.h: Likewise.
8431         * config/openbsd.h: Likewise.
8432         * config/alpha/linux-elf.h: Likewise.
8433         * config/arm/linux-elf.h: Likewise.
8434         * config/d30v/d30v.h: Likewise.
8435         * config/fr30/fr30.h: Likewise.
8436         * config/ia64/aix.h: Likewise.
8437         * config/ia64/ia64.h: Likewise.
8438         * config/mips/linux.h: Likewise.
8439         * config/pj/pj.h: Likewise.
8440         * config/rs6000/linux.h: Likewise.
8441         * config/sparc/linux.h: Likewise.
8442         * config/sparc/linux64.h: Likewise.
8443
8444 2001-07-20  Bruce Korb  <bkorb@gnu.org>
8445
8446         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
8447         because getc() and char* may disagree on signedness.
8448
8449 2001-07-20  Richard Henderson  <rth@redhat.com>
8450
8451         * doc/rtl.texi (REG_DEAD): Update for current semantics.
8452
8453         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
8454         insns to delete in the presence of cc0 in a jump insn.
8455
8456 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
8457                                Jan Hubicka  <jh@suse.cz>
8458
8459         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
8460         of doing the change by hand.
8461
8462 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
8463
8464         * rtlanal.c (set_noop_p): Return true for noop jumps.
8465
8466         * expr.c (emit_single_push_insn): Add call to push expander.
8467         * expr.h (optab_index): Add OTI_push
8468         (push_optab): New constant.
8469         * genopinit.c (optabs): Add push_optab.
8470         * optabs.c (init_optab): Init push optab.
8471         * md.texi (push??1): Document
8472
8473 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8474
8475         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
8476         expand to emit the pattern; put a REG_INC note for push/pop
8477         instructions.
8478         ("movdf", "movdf_internal"): Likewise.
8479         ("movsi", "movsi_internal"): Likewise.
8480         ("movsf", "movsf_internal"): Likewise.
8481         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
8482
8483 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8484
8485         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
8486         gen_highpart.
8487
8488 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
8489
8490         * params.def: Change default max inline insns to 100.
8491
8492 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
8493
8494         * combine.c (combine_simplify_rtx): Generate a new shift operation
8495         when simplifying the first operand of a (neg (ashift)) expression.
8496
8497 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
8498
8499         * regclass.c (N_REG_INTS): Use only 32 bits per element.
8500
8501 2001-07-20  Kelley Cook  <kelley.cook@home.com>
8502
8503         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
8504         information.   Move rest into ...
8505         (*-*-solaris): ... here.  Eliminate redundant information and
8506         reword necessary packages section.  Delete 4.x assembler bug info.
8507         (sparc-sun-*): Merge into ...
8508         (sparc-sun-sunos*): here.
8509
8510 2001-07-20  Catherine Moore  <clm@redhat.com>
8511
8512         * config/v850/v850.md (casesi): Generate LABEL_REF
8513         with Pmode.
8514
8515 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
8516
8517         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
8518         * i386.c (ix86_zero_extend_to_Pmode): Make global.
8519         * i386.md (strclrsi expander): Use it.
8520
8521 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
8522
8523         * integrate.c (copy_insn_list): handle
8524         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
8525         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
8526         identically as to CODE_LABEL.
8527
8528         * fold-const (fold): Convert A/B/C to A/(B*C) and
8529         A/(B/C) to (A/B)*C
8530
8531         * except.c (connect_post_landing_pads): Delete the RESX insns.
8532
8533 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
8534
8535         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
8536
8537         * config/mips/mips.md (nmadd/nmsub): Use macro.
8538
8539 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
8540
8541         * cppinit.c (remove_dup_dir): Make static.
8542         (remove_dup_dirs): Make static. Only warn about preempting a
8543         system directory with a non-system directory.
8544
8545 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
8546
8547         * ifcvt.c (noce_try_store_flag_constants): Correct order
8548         of parameters to trunc_int_for_mode.
8549
8550 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
8551
8552         * reorg.c (fill_simple_delay_slots): If an instruction might throw
8553         an exception that will be caught within this function, do not fill
8554         its delay slot with any subsequent instruction.
8555
8556 2001-07-19  Steve Ellcey <sje@cup.hp.com>
8557
8558         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
8559         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
8560         pointer extension instruction.
8561         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
8562         * simplify-rtx.c (simplify_unary_operation) Likewise.
8563         * explow.c (convert_memory_address) Check value of
8564         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
8565         less than zero.
8566         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
8567         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
8568         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
8569         Add Multilib Support.
8570         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
8571         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
8572         Add Multilib Support.
8573         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
8574         support.
8575         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
8576         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
8577         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
8578
8579 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
8580
8581         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
8582         old and new operands in `<', `3' and `b'.
8583
8584 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
8585
8586         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
8587         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
8588         (toplev.o): Don't depend on xcoffout.h.
8589         * c-decl.c: Include debug.h
8590         (duplicate_decls): Use debug hook.
8591         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
8592         (dbx_debug_hooks, xcoff_debug_hooks): Update.
8593         (dbxout_types): Remove.
8594         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
8595         * debug.c (do_nothing_debug_hooks): Update.
8596         (debug_true_tree, debug_nothing_rtx): New.
8597         * debug.h (struct rtx_def): New.
8598         (struct gcc_debug_hooks): New hooks ignore_block,
8599         outlining_inline_function and label.
8600         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
8601         dwarf2out_frame_finish): New.
8602         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
8603         Make static, update prototype.
8604         (dwarf2_debug_hooks): Update.
8605         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
8606         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
8607         * dwarfout.c (dwarf_debug_hooks): Update.
8608         * emit-rtl.c: Include debug.h.
8609         (remove_unnecessary_notes): Use debug hook.
8610         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
8611         (final_scan_insn): Use debug hook.
8612         * integrate.c (output_inline_function): Use debug hook.
8613         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
8614         (sdb_debug_hooks): Update.
8615         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
8616         * toplev.c: Don't include xcoffout.h.
8617         (note_outlining_of_inline_function, debug_ignore_block): Remove.
8618         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
8619         Remove.
8620         * tree.h (dwarf2out_do_frame): Remove.
8621
8622 2001-07-19  Catherine Moore  <clm@cygnus.com>
8623
8624         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
8625
8626 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
8627
8628         * reload1.c (eliminate_regs_in_insn): When updating a set
8629         to the frame pointer to the hardware frame pointer, perform
8630         the update always not just when REPLACE is set.
8631
8632         * reload1.c (choose_reload_regs): Don't inherit a reload
8633         that crosses multiple registers if registers past the first
8634         don't fit in the desired class.
8635
8636         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
8637         when negating constants.
8638
8639 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
8640
8641         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
8642         * doc/tree.texi: Ditto.
8643
8644 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
8645             Jakub Jelinek  <jakub@redhat.com>
8646
8647         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
8648         (extract_cie_info): Handle "eh" augmentation properly,
8649         remember eh_ptr.
8650         (struct frame_state, __frame_state_for): New.
8651
8652 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8653
8654         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
8655         HANDLE_SYSV_PRAGMA): Define.
8656         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
8657         previous args.
8658         (copy_object): Caller changed.
8659
8660 2001-07-19  Andreas Schwab  <schwab@suse.de>
8661
8662         * configure.in (assembler dwarf2 debug_line support): Define nop
8663         insn for m68k.
8664         * configure: Regenerated.
8665
8666 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
8667
8668         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
8669         dwarfout.h.
8670         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
8671         to conditionally compiled block.
8672         (dbx_debug_hooks, xcoff_debug_hooks): Update.
8673         * dbxout.h (dbxout_function): Remove.
8674         * debug.c (do_nothing_debug_hooks): Update.
8675         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
8676         global_decl, deferred_inline_function.
8677         * dwarf2out.c (dwarf2_debug_hooks): Update.
8678         (dwarf2out_global_decl): New.
8679         * dwarfout.c: Don't include dwarfout.h.
8680         (dwarfout_global_decl, dwarfout_function_decl,
8681         dwarfout_deferred_inline_function): New.
8682         (dwarf_debug_hooks): Update.
8683         * dwarfout.h: Remove.
8684         * final.c: Don't include dwarfout.h.
8685         * sdbout.c (sdbout_global_decl): New.
8686         (sdbout_debug_hooks): Update.
8687         * toplev.c: Don't include dwarfout.h.
8688         (check_global_declarations, rest_of_compilation): Use new debug hooks.
8689         (note_deferral_of_defined_inline_function): Remove.
8690         * toplev.h (note_deferral_of_defined_inline_function): Remove.
8691         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
8692         * ch/lex.c: Don't include dwarfout.h.
8693         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
8694         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
8695         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
8696         * cp/optimize.c: Include debug.h.
8697         (maybe_clone_body): Use debug hook.
8698         * cp/semantics.c: Include debug.h.
8699         (expand_body): Use debug hook.
8700         * po/POTFILES.in: Remove dwarfout.h.
8701
8702 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
8703
8704         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
8705         * c-parse.in (yyerror, _yylex): Similarly.
8706         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
8707         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
8708         Update comments.
8709         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
8710         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
8711
8712 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
8713
8714         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
8715         in-class declaration at -g1.  Fixes c++/2814.
8716
8717 2001-07-18  Richard Henderson  <rth@redhat.com>
8718
8719         * doc/md.texi (reload_in/out): Document restrictions in predicates
8720         and constraints for these patterns.  Document empty string matching
8721         ALL_REGS.
8722
8723 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8724
8725         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
8726
8727 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
8728
8729         * cse.c: Undo my previous patch.
8730
8731 2001-07-18  Tom Tromey  <tromey@redhat.com>
8732
8733         For PR java/2812:
8734         * configure: Rebuilt.
8735         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
8736         instead.
8737         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
8738
8739 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
8740                                Jan Hubicka  <jh@suse.cz>
8741
8742         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
8743         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
8744         * jump.c (mark_jump_label): Do not forward branches.
8745
8746 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
8747
8748         * cse.c (delete_trivially_dead_insns): Delete the libcall block
8749         when return value is unused.
8750
8751 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
8752
8753         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
8754
8755 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
8756
8757         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
8758         on error.  We can't blindly return the result of
8759         pthread_mutex_trylock because it returns a positive number on
8760         error, while we must return -1 on error.
8761         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
8762         fixes.
8763         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
8764
8765 2001-07-18  Andreas Jaeger  <aj@suse.de>
8766
8767         * integrate.c (output_inline_function): Correct type of debug_hooks.
8768
8769 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
8770
8771         * combine.c (combine_simplify_rtx): DIV can be treated
8772         associatively for floats if unsafe math optimisations are enabled.
8773
8774 2001-07-17  Richard Henderson  <rth@redhat.com>
8775
8776         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
8777
8778 2001-07-17  Richard Henderson  <rth@redhat.com>
8779
8780         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
8781         don't force the function address into a register.
8782         (expand_call, emit_library_call_value_1): Update callers.
8783         * builtins.c (expand_builtin_apply): Likewise.
8784         * expr.h (prepare_call_address): Update decl.
8785
8786 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
8787
8788         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
8789         config directory.
8790         * config/i386/chorus.h: Move up.
8791         * config/sparc/chorus.h: Likewise.
8792         * config/rs6000/chorus.h: Likewise.
8793         * config/chorus.h: Moved here.
8794
8795 2001-07-17  Andreas Schwab  <schwab@suse.de>
8796
8797        * configure.in  (assembler eh_frame optimization): Handle big
8798        endian.
8799        * configure: Regenerated.
8800
8801 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
8802
8803         * expr.c (epxand_expr): Convert divisions into multiplications by
8804         reciprocals if -ffast-math.
8805
8806 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
8807
8808         * dbxout.c (dbxout_really_begin_function): Rename to
8809         dbxout_begin_function.
8810         (dbx_debug_hooks, xcoff_debug_hooks): Update.
8811         (dbxout_begin_function): Remove.
8812         (dbxout_function): Update.
8813         (dbxout_source_line): Update prototype.
8814         * dbxout.h (dbxout_begin_function): Remove.
8815         * debug.c (do_nothing_debug_hooks): Update.
8816         (debug_nothing_tree): Update.
8817         (debug_nothing_charstar_rtx): Remove.
8818         * debug.h (union tree_node): Declare.
8819         (struct rtx_def): Remove.
8820         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
8821         begin_function.  Change source_line prototype.
8822         (debug_nothing_tree): New.
8823         (debug_nothing_charstar_rtx): Delete.
8824         (dwarf2out_begin_prologue): Moved from ...
8825         * tree.h: ... here.
8826         * dwarf2out.c (dwarf2_debug_hooks): Update.
8827         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
8828         debug info, call dwarf2out_source_line.
8829         (dwarf2out_souce_line): Update prototype.
8830         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
8831         Change prototype, make static.
8832         (dwarfout_source_line): Update prototype.
8833         (dwarf_debug_hooks): Update.
8834         * dwarfout.h (dwarfout_begin_function): Remove.
8835         * final.c (final_start_function, final_scan_insn): Use appropriate
8836         debug hooks, update to use notice_source_line.
8837         (output_source_line): Rename notice_source_line.  Don't call the
8838         source_line debug hook.
8839         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
8840         make static, update prototype.
8841         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
8842         prototype.
8843         (sdbout_end_prologue): New.
8844         (sdbout_source_line): Update prototype.
8845         (sdbout_debug_hooks): Update.
8846         (sdbout_symbol): Remove unused var.
8847         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
8848         Delete.
8849         * varasm.c: Include debug.h.
8850         (assemble_start_function): Use begin_function debug_hook.
8851         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
8852         update with prototype.
8853         (xcoffout_source_line): Update prototype.
8854         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
8855         update prototype.
8856         (xcoffout_source_line): Update prototype.
8857
8858 2001-07-17  Richard Henderson  <rth@redhat.com>
8859
8860         * c-typeck.c (build_binary_op): Do not shorten unsigned
8861         right shift after sign extension.
8862
8863 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
8864
8865         * combine.c (combine_simplify_rtx): Attempt to simplify
8866         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
8867
8868         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
8869         (simplify_binary_operation, simplify_unary_operation,
8870          simplify_relational_operation): Use it.
8871
8872         * combine.c (combine_simplify_rtx): Don't do associative law
8873         on divisions; allow associative law on floats.
8874
8875 2001-07-17  H.J. Lu <hjl@gnu.org>
8876             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8877
8878         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
8879         ASM_OUTPUT_WEAK_ALIAS are defined.
8880         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
8881         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
8882         Moved ...
8883         * config/mips/iris5.h: ... here.
8884         (HANDLE_SYSV_PRAGMA): Defined as 1.
8885         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
8886         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
8887         symbol.
8888
8889 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
8890
8891         * c-parse.in (all_prefix_attributes): New variable.
8892         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
8893         (maybe_resetattrs): New production.
8894         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
8895         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
8896         notype_initdcl, nested_function, notype_nested_function,
8897         component_decl, components, components_notype,
8898         component_declarator, component_notype_declarator,
8899         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
8900         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
8901         after a comma being applied to more than one declarator.
8902         * doc/extend.texi (Attribute Syntax): Update.  Remove
8903         documentation of bugs that are no longer present.
8904
8905 2001-07-13  Eric Christopher  <echristo@redhat.com>
8906
8907         * config/mips/mips.h: Change TUNE_MIPS* options to use
8908         mips_tune.
8909         (EXTRA_SPECS): Add cc1_cpu_spec.
8910         * config/mips/mips.md (muldf3): Fix typo.
8911
8912 2001-07-16  Richard Henderson  <rth@redhat.com>
8913
8914         * config/m68k/m68k.c: Include expr.h and reload.h.
8915         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
8916         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
8917
8918 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
8919             Richard Henderson  <rth@redhat.com>
8920
8921         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
8922         (insn_live_p): Fix fall off end of function.
8923         (dead_libcall_p): Remove COUNTS argument; update callers.
8924         (delete_trivially_dead_insns): Remove unused variables.
8925
8926 2001-07-17  Andreas Jaeger  <aj@suse.de>
8927
8928         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
8929         x86-64 pic support.
8930
8931         * lcm.c (optimize_mode_switching): Avoid warning for unused
8932         variable if !NORMAL_MODE.
8933
8934         * flow.c (try_crossjump_to_edge): Remove unused variable.
8935
8936 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8937
8938         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
8939         atexit declaration in stdlib.h.
8940
8941 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
8942
8943         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
8944
8945 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
8946
8947         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
8948         * except.c (finish_eh_generation): Update call of cleanup_cfg;
8949         do rebuild_jump_labels instead of jump_optimize
8950         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
8951         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
8952         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
8953
8954         * flow.c: Include timevar.h
8955         (find_basic_block): Push/pop timevar;
8956         (cleanup_cfg): Likewise.
8957         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
8958         * Makefile: Add dependencies on timevar.h
8959
8960         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
8961         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
8962
8963         * rtl.h (delete_trivially_dead_insns): Add new parameter.
8964         * toplev.c (rest_of_compilation): Update calls.
8965         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
8966         (delete_trivially_dead_insns): ... here; accept new argument
8967         preserve_basic_blocks; preserve basic blocks if set.
8968
8969         * reg-stack.c (stack_regs_mentioned): Return 0 if
8970         stack_regs_mentioned_data is not initialized.
8971         (reg_to_stack): Make stack_regs_mentioned survive after the
8972         reg-stack is completted; do not call cleanup_cfg.
8973         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
8974         make cleanup_cfg after bb-reorder to output to debug file.
8975
8976 2001-07-16  Richard Henderson  <rth@redhat.com>
8977
8978         * regclass.c (init_reg_sets): Use only 32 bits per initializer
8979         from int_reg_class_contents.
8980
8981 2001-07-16  Richard Henderson  <rth@redhat.com>
8982
8983         * hard-reg-set.h (regs_invalidated_by_call): Declare.
8984         * regclass.c (regs_invalidated_by_call): Move from cse.c.
8985         (init_reg_sets_1): Move initialization from cse_main.
8986         * cse.c (regs_invalidated_by_call): Move to regclass.c.
8987         (cse_main): Move its initialization also.
8988         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
8989         * flow.c (propagate_one_insn): Likewise.
8990         * gcse.c (compute_hash_table): Likewise.
8991         (compute_kill_rd, compute_store_table): Likewise.
8992         * sched-deps.c (sched_analyze_1): Likewise.
8993
8994 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
8995
8996         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
8997         gen_rtx_SET.
8998
8999 2001-07-16  Steve Ellcey <sje@cup.hp.com>
9000
9001         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
9002         in if statement so we don't access undefined memory.
9003
9004 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
9005
9006         * gcse.c: Update comment at top.
9007         Update comment on mem handling.
9008         mem_last_set, mem_first_set, mem_set_in_block: gone.
9009         Declaration of reg_set_info: gone.
9010         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
9011         pointless with load_killed_in_block_p (they are *more*
9012         conservative then it, not less, and less accurate).
9013         (oprs_not_set_p): Ditto.
9014         (alloc_gcse_mem): Don't allocate mem_set_in_block
9015         (free_gcse_mem): Don't free it, either.
9016         (record_last_mem_set_info): Update comment in front, remove
9017         mem_*set_* stuff. Note the reason we don't handle stores directly
9018         here.
9019         (compute_hash_table): Update comments to reflect reality. Remove
9020         mem_*set_* references.
9021         (reset_opr_set_tables): Remove mem_*set_* references.
9022         (mark_call): Ditto.
9023         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
9024         (mark_clobber): Ditto (on both parts, we double set here too).
9025         (expr_killed_p): Remove mem_set_in_block test.
9026         (compute_transp): Remove mem_set_in_block test.
9027
9028         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
9029         of edge, and removal of phi alternative to dump file.
9030         (ssa_ccp_substitute_constants): Add note about register now being
9031         constant, and which uses were replaced in what insns to dump file.
9032
9033 2001-07-16  Andreas Jaeger  <aj@suse.de>
9034
9035         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
9036         variables of type HOST_WIDEST_INT.
9037
9038         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
9039         (__bb_exit_func): Correct type of count_max to avoid overflow.
9040         (num_digits): Handle long long argument.
9041
9042         * combine.c (gen_lowpart_for_combine): Remove unused variable.
9043
9044 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9045
9046         * output.h (sdb_begin_function_line): Restore as an extern
9047         variable.
9048         * sdbout.c (sdb_begin_function_line): Make extern.
9049
9050 2001-07-15  Richard Henderson  <rth@redhat.com>
9051
9052         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
9053         * genrecog.c (maybe_both_true_mode): New.
9054         (maybe_both_true_2): Use it.
9055         (write_switch): Don't put Pmode in a switch.
9056         * rtl.c (mode arrays): Don't explicitly size them.
9057
9058 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
9059
9060         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
9061         handling; move unconditional splitting before mode switching.
9062
9063         * i386.md (type): Add fistp type.
9064         (i387, length_attr, scheduling definitions): Handle this type.
9065         (fix_trunc?f?i2): Revamp to use mode switching.
9066         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
9067         * i386.h (fp_cw_mode): New enum
9068         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
9069         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
9070
9071 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9072
9073         * Makefile.in (integrate.o): Add debug.h.
9074         * integrate.c (debug.h): Add.
9075         (output_inline_function): Save, reset, and restore debug_hooks.
9076
9077 2001-07-15  Richard Henderson  <rth@redhat.com>
9078
9079         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
9080         instead of COMPARE for the EQUIV expression.
9081
9082 2001-07-15  Richard Henderson  <rth@redhat.com>
9083
9084         * flow.c (redirect_edge_and_branch_force): Initialize
9085         global_live_at_start and global_live_at_end.
9086         (allocate_bb_life_data): Export.
9087         * basic-block.h (allocate_bb_life_data): Declare.
9088         * toplev.c (rest_of_compilation): Call it.
9089
9090 2001-07-15  Richard Henderson  <rth@redhat.com>
9091
9092         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
9093         (alpha_tablejump_best_label): New.
9094         * config/alpha/alpha-protos.h: Declare them.
9095         * config/alpha/alpha.md: Use braced strings for code blocks.
9096         (tablejump_osf): Break out add with r29.
9097         (tablejump_osf_internal): Remove.
9098         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
9099         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
9100
9101 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
9102
9103         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
9104         of the movable.
9105
9106         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
9107
9108         * i386-protos.h (ix86_split_fp_branch): Update prototype.
9109         (ix86_fp_jump_nontrivial_p): New.
9110         * i386.md (fp_jcc_?): Update call of split_fp_branch;
9111         use ix86_fp_jump_nontrivial_p.
9112         * i386.c (ix86_fp_jump_nontrivial_p): New.
9113         (ix86_split_fp_branch): Accept code instead of rtx.
9114         (ix86_expand_compare): Expand comparison early in case
9115         doing so is resonably cheap.
9116
9117 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
9118
9119         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
9120         not 'machine'.
9121         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
9122         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
9123
9124 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
9125
9126         * dbxout.c (dbxout_source_line): Make static, update prototype.
9127         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
9128         (dbxout_init, dbxout_finish, dbxout_source_line,
9129         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
9130         * dbxout.h (dbxout_source_line): Delete.
9131         * debug.c (debug_nothing_file, debug_nothing_file_int,
9132         debug_nothing_file_charstar_rtx): New.
9133         (do_nothing_debug_hooks): Update.
9134         (debug_nothing_void, debug_nothing_charstar_rtx,
9135         dwarf2out_end_epilogue): New.
9136         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
9137         * debug.h (struct rtx_def): Declare.
9138         (gcc_debug_hooks): New hooks source_line, end_epilogue
9139         and end_function.
9140         (debug_nothing_void, debug_nothing_charstar_rtx,
9141         dwarf2out_end_epilogue): New.
9142         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
9143         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
9144         (dwarf2_debug_hooks): Update.
9145         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
9146         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
9147         * dwarf2out.h (dwarf2out_source_line): Remove.
9148         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
9149         Make static, update prototype.
9150         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
9151         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
9152         (dwarf_debug_hooks): Update.
9153         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
9154         dwarfout_end_function): Remove.
9155         * final.c (profile_function): Use debug hooks for ending functions
9156         and epilogues.
9157         (output_source_line, final_end_function): Update prototype,
9158         use debug hooks.
9159         (final_start_function, final_scan_insn): Update.
9160         * output.h (sdb_begin_function_line): Remove.
9161         (final_end_function): Update prototype.
9162         * sdbout.c (sdb_begin_function_line): Make static.
9163         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
9164         (sdbout_source_line): New.
9165         (sdbout_end_epilogue, sdbout_end_function): Make static, update
9166         prototypes.
9167         (sdb_debug_hooks): Update.
9168         (sdbout_init, sdbout_source_line,
9169         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
9170         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
9171         * toplev.c (compile_file, rest_of_compilation): Update.
9172         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
9173         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
9174         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
9175         Update for prototype changes.
9176         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
9177         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
9178
9179 2001-07-15  Richard Henderson  <rth@redhat.com>
9180
9181         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
9182         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
9183         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
9184         * config/alpha/alpha.c: Likewise.
9185         * config/alpha/alpha.md: Likewise.
9186         * config/alpha/alpha32.h: Likewise.
9187         * config/alpha/vms.h: Likewise.
9188         (OPEN_VMS): Remove.
9189
9190 2001-07-14  Richard Henderson  <rth@redhat.com>
9191
9192         * config/alpha/alpha.md: Use define_constants for unspec values.
9193         Substitute throughout.
9194
9195 2001-07-14  Tim Josling  <tej@melbpc.org.au>
9196
9197         * tree.def (EXPON_EXPR) remove. Never supported anyway.
9198
9199 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9200
9201         * pa.md: Remove unused constraints from define_split's.
9202
9203 2001-04-14  Richard Henderson  <rth@redhat.com>
9204
9205         * ifcvt.c (find_cond_trap): Test for exit block.
9206
9207 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
9208
9209         Re-install recently reverted patch.
9210         * emit-rtl.c (try_split): Update mark_jump_label call.
9211         * flow.c (find_sub_basic_blocks): Likewise.
9212         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
9213         jump_back_p): Kill.
9214         (mark_all_labels): Kill second parameter.
9215         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
9216         (rebuild_jump_labels, jump_optimize_minimal): Update call
9217         of jump_optimize_1.
9218         (jump_optimize_1): Kill crossjumping code.
9219         (mark_jump_label): Kill cross_jump parameter.
9220         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
9221         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
9222         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
9223          splitting.
9224         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
9225         DFI_bpro.
9226         (dump_file_info): Likewise.
9227         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
9228         reorganize passes to do reg-stack first, bb-reorder second.
9229         * invoke.texi (-d letters doc): Remove the jump2 pass.
9230
9231 2001-07-14  Richard Henderson  <rth@redhat.com>
9232
9233         * ifcvt.c (find_cond_trap): New.
9234         (find_if_header): Call it.
9235         (merge_if_block): Relax existing jump sanity check.
9236         * jump.c (jump_optimize_1): Remove conditional trap handling.
9237
9238 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
9239
9240         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
9241         millicode.
9242         (insn_refs_are_delayed): Correct comment.
9243         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
9244         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
9245         instead of r31.  Make associated insn !TARGET_64BIT, and
9246         provide an additional 64-bit insn that clobbers r2.
9247         (divsi3): Likewise.
9248         (udivsi3): Likewise.
9249         (modsi3): Likewise.
9250         (umodsi3): Likewise.
9251
9252 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
9253
9254         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
9255
9256         * flow.c (redirect_edge_and_branch_force, split_edge,
9257         try_crossjump_to_edge): Use set_block_for_new_insns.
9258         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
9259
9260 2001-07-13  H.J. Lu  (hjl@gnu.org)
9261
9262         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
9263         the correct patch.
9264
9265 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
9266
9267         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
9268
9269 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
9270
9271         * c-common.c (decl_attributes): Take a pointer to the node to
9272         which attributes are to be attached, and a flags argument.
9273         * c-common.h (enum attribute_flags): New.
9274         (decl_attributes): Update prototype.
9275         * c-decl.c (start_decl, push_parm_decl, finish_struct,
9276         finish_enum, start_function): Update calls to decl_attributes.
9277         * c-parse.in (component_declarator, component_notype_declarator,
9278         label): Update calls to decl_attributes.
9279
9280 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
9281
9282         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
9283         * config/avr/avr.c (legitimate_address_p): Return value changed
9284         from letter to register classes. For better debugging.
9285
9286 2001-07-13  Kazu Hirata  <kazu@hxi.com>
9287
9288         * jump.c (reversed_comparison_code_parts): Fix comment typos.
9289
9290 2001-07-13  H.J. Lu  (hjl@gnu.org)
9291
9292         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
9293
9294 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
9295
9296         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
9297         correctly for shared configurations.
9298         * config/t-libgcc-pic:  New.
9299         * config/{i386,m68k,sparc}/t-openbsd:  New.
9300         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
9301         Support -shared.  Support debugging libraries with -g.
9302         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
9303         frame information does not emit pointer diffs.
9304         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
9305         emit pointer diffs.
9306
9307 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
9308
9309         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
9310
9311 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
9312
9313         * combine.c (try_combine): Ensure const_int pow2 is positive.
9314
9315 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
9316
9317         * config.gcc: Add configuration for s/390.
9318         * config/s390/s390.c: New. Subroutines for code generation.
9319         * config/s390/s390.h: New. Definitions for s/390.
9320         * config/s390/s390-protos.h: New. Prototypes.
9321         * config/s390/linux.h: New. Definitions for linux for s/390.
9322         * config/s390/linux64.h: New. Definitions for linux for zSeries.
9323         * config/s390/t-linux: New. Makefile fragment.
9324         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
9325         * config/s390/fixdfdi.h: New. Fix L_fix*di.
9326
9327 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
9328
9329         * emit-rtl.c (try_split): Update mark_jump_label call.
9330         * flow.c (find_sub_basic_blocks): Likewise.
9331         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
9332         jump_back_p): Kill.
9333         (mark_all_labels): Kill second parameter.
9334         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
9335         (rebuild_jump_labels, jump_optimize_minimal): Update call
9336         of jump_optimize_1.
9337         (jump_optimize_1): Kill crossjumping code.
9338         (mark_jump_label): Kill cross_jump parameter.
9339         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
9340         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
9341         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
9342          splitting.
9343         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
9344         DFI_bpro.
9345         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
9346         reorganize passes to do reg-stack first, bb-reorder second.
9347         * invoke.texi (-d letters doc): Remove the jump2 pass.
9348
9349 2001-07-12  Steve Ellcey <sje@cup.hp.com>
9350
9351         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
9352
9353 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
9354
9355         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
9356         basic blocks.
9357         (verify_flow_info): Make diagnostics prettier.
9358
9359 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
9360
9361         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
9362
9363         * flow.c (outgoing_edges_match): Return early if condition reversal
9364         failed.
9365
9366 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
9367
9368         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
9369         (mips_move_2words): When splitting a move into two instructions,
9370         prefix the second address operand with '%D'.
9371
9372 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
9373
9374         * Makefile.in (final.o): Depend on debug.h.
9375         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
9376         (dbx_debug_hooks): Add new hooks.
9377         (xcoff_debug_hooks): New.
9378         * debug.c (debug_nothing_file_int_int): New.
9379         (do_nothing_debug_hooks): Update.
9380         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
9381         (debug_nothing_file_int_int): New.
9382         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
9383         static, update prototype.
9384         (dwarf2_debug_hooks): Update.
9385         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
9386         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
9387         static, update prototype.
9388         (dwarf_debug_hooks): Update.
9389         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
9390         * final.c: Include debug.h.
9391         (final_scan_insn): Use debug hooks when beginning and ending blocks.
9392         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
9393         static, update prototype.
9394         (sdb_debug_hooks): Update.
9395         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
9396         * toplev.c: Distinguish between xcoff and dbx.
9397
9398         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
9399         Call all debug hooks, not just dwarf ones.
9400
9401 2001-07-11  Timothy Wall  <twall@redhat.com>
9402
9403         * config.gcc: Add configuration for AIX5/IA64.
9404         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
9405         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
9406         support prefix/suffix code.
9407         * config/ia64/t-aix: New.  Makefile fragment.
9408         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
9409
9410 2001-07-11  Kazu Hirata  <kazu@hxi.com>
9411
9412         * recog.c (validate_change): Fix a comment typo.
9413
9414 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9415
9416         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
9417         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
9418         hooks directly.
9419         * dbxout.c (dbx_debug_hooks): Add new hooks.
9420         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
9421         make static.
9422         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
9423         make static.
9424         * dbxout.h (dbxout_start_new_source_file,
9425         dbxout_resume_previous_source_file): Delete.
9426         * debug.c (do_nothing_debug_hooks): Add new hooks.
9427         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
9428         (debug_nothing_int_charstar, debug_nothing_int): New.
9429         * debug.h (gcc_debug_hooks): New hooks define, undef,
9430         start_source_file and end_source_file.
9431         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
9432         (debug_nothing_int_charstar, debug_nothing_int): New.
9433         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
9434         the conditionally compiled section.
9435         (dwarf2out_start_source_file, dwarf2out_end_source_file,
9436         dwarf2out_define, dwarf2out_undef): Make static.
9437         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
9438         dwarf2out_define, dwarf2out_undef): Remove.
9439         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
9440         (dwarfout_start_source_file, dwarfout_end_source_file,
9441         dwarfout_define, dwarfout_undef): Make static.
9442         (dwarfout_start_source_file_check,
9443         dwarfout_end_source_file_check): New.
9444         (dwarfout_define, dwarfout_finish): Update.
9445         * dwarfout.h (dwarfout_start_new_source_file,
9446         dwarfout_resume_previous_source_file, dwarfout_define,
9447         dwarfout_undef): Remove.
9448         * sdbout.c (sdb_debug_hooks): Add new hooks.
9449         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
9450         make static.
9451         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
9452         make static, take an arg.
9453         * sdbout.h (sdbout_start_new_source_file,
9454         sdbout_resume_previous_source_file): Delete.
9455         * toplev.c (debug_start_source_file, debug_end_source_file,
9456         debug_define, debug_undef): Delete.
9457         * toplev.h (debug_start_source_file, debug_end_source_file,
9458         debug_define, debug_undef): Delete.
9459
9460         * java/jcf-parse.c: Include debug.h.
9461         (parse_class_file): Update to use debug hooks directly.
9462         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
9463
9464 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9465
9466         * alias.c (set_mem_alias_set): New function.
9467         * rtl.h (set_mem_alias_set): Declare it.
9468         * builtins.c (expand_builtin_return_addr): Call it instead of
9469         using MEM_ALIAS_SET accessor.
9470         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
9471         (get_memory_rtx, expand_builtin_va_arg): Likewise.
9472         (expand_builtin_va_copy):Likewise.
9473         * caller-save.c (setup_save_areas): Likewise.
9474         * calls.c (compute_argument_addresses): Likewise.
9475         * explow.c (set_mem_attributes): Likewise.
9476         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
9477         (expand_assignment, store_constructor_field, store_field): Likewise.
9478         (expand_expr_unaligned): Likewise.
9479         * function.c (assign_stack_temp_for_type): Likewise.
9480         (put_reg_into_stack, gen_mem_addressof): Likewise.
9481         * ifcvt.c (noce_try_cmove_arith): Likewise.
9482         * reload1.c (reload, alter_reg): Likewise.
9483         * config/alpha/alpha.c (get_aligned_mem): Likewise.
9484         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
9485         (alpha_expand_unaligned_store): Likewise
9486         (alpha_expand_unaligned_load_words): Likewise.
9487         (alpha_expand_unaligned_store_words): Likewise.
9488         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
9489         (alpha_expand_epilogue): Likewise.
9490         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
9491         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
9492         * config/i386/i386.c (legitimize_pic_address): Likewise.
9493         * config/i960/i960.c (setup_incoming_varargs): Likewise.
9494         * config/ia64/ia64.c (spill_restore_mem): Likewise.
9495         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
9496         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
9497         * config/mips/mips.c (mips_va_arg): Likewise.
9498         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
9499         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
9500         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
9501         (setup_incoming_varargs, rs6000_va_arg): Likewise.
9502         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
9503         (rs6000_emit_epilogue): Likewise.
9504         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
9505         * config/sparc/sparc.c (sparc_va_arg): Likewise.
9506         * config/v850/v850.c (v850_va_arg): Likewise.
9507
9508 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
9509
9510         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
9511         when fallthru edge is present.
9512         (mege_blocks): Handle case where creation of jump insn
9513         is required.
9514
9515         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
9516         CLEANUP_POST_REGSTACK): New constants.
9517         * except.c (finish_eh_generation): Update call of cleanup_cfg,
9518         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
9519         * output.h (cleanup_cfg): Update prototype.
9520         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
9521         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
9522         cleanup_cfg call; kill missleading comment.
9523         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
9524         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
9525         parameter; control optimizations performed using it.
9526         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
9527         try_crossjump_bb): New functions.
9528
9529 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9530
9531         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
9532         extern.
9533         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
9534         pa_output_function_prologue.
9535         * pa-protos.h (pa_output_function_prologue): New prototype.
9536
9537 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9538
9539         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
9540         and low to get correct sign extension in low+high test.
9541
9542 2001-07-11  Janis Johnson <janis@us.ibm.com>
9543
9544         * gcov.c (arcdata): Use gcov_type to fix branch percentage
9545         for large hit count.
9546
9547         * profile.c (branch_prob): Fix .bbg info for computed gotos
9548         and C++ EH code.
9549
9550 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
9551
9552         * stmt.c (parse_output_constraint): New function, split out
9553         from ...
9554         (expand_asm_operands): ... here.  Use parse_output_constraint.
9555         * tree.h (parse_output_constraint): Declare it.
9556
9557 2001-07-11  Richard Henderson  <rth@redhat.com>
9558
9559         * bitmap.c: Comment some functions; fiddle whitespace.
9560         (bitmap_free): Don't export.
9561         (bitmap_element_allocate): Use memset.
9562         * bitmap.h (bitmap_free): Don't declare.
9563
9564 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
9565
9566         * gcse.c, lcm.c, sched-deps.c:
9567         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
9568
9569         * flow.c (flow_loops_find): Free dom if we found no loops, since
9570         we aren't going to save it.
9571
9572         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
9573         done.
9574
9575 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
9576
9577         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
9578
9579 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9580
9581         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
9582         #ifndef DWARF2_DEBUGGING_INFO.
9583
9584 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
9585
9586         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
9587
9588 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
9589
9590         * config/mips/mips.c (gen_int_relational): Tell the caller not to
9591         reverse a branch if a NE comparison is implemented with GTU.
9592
9593 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
9594             H.J. Lu  <hjl@gnu.org>
9595
9596         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
9597         constant addresses.
9598         (call_internal2): Likewise.
9599         (call_value_internal1): Likewise.
9600         (call_value_internal2): Likewise.
9601         (call_value_multiple_internal1): Likewise.
9602         (call_value_multiple_internal2): Likewise.
9603
9604 2001-07-10  Kazu Hirata  <kazu@hxi.com>
9605
9606         * calls.c (emit_library_call_value_1): Fix a comment typo.
9607         * dwarf2out.c (mem_loc_descriptor): Likewise.
9608         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
9609
9610 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
9611
9612         * simplify-rtx.c (simplify_subreg): Fix typo in comment
9613
9614 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9615
9616         * recog.c (offsettable_address_p): Handle LO_SUM case.
9617         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
9618         instead of plus_constant.
9619
9620 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9621
9622         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
9623         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
9624
9625 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9626
9627         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
9628         adjust_address_nv instead of plus_constant.
9629
9630 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
9631
9632         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
9633         dwarf2out.o): Depend on debug.h, wrap long lines.
9634         * dbxout.c: Include debug.h.
9635         (dbx_debug_hooks): New.
9636         (dbxout_init): Make static, take just 2 args.
9637         (dbxout_finish): Make static.
9638         * dbxout.h (dbxout_init, dbxout_finish): Delete.
9639         * debug.c: New file.
9640         * debug.h: New file.
9641         * dwarf2out.c: Include debug.h.
9642         (dwarf2_debug_hooks): New.
9643         (dwarf2out_init): Make static.
9644         (dwarf2out_finish): Make static, take 2 args.
9645         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
9646         * dwarfout.c: Include debug.h.
9647         (dwarf_debug_hooks): New.
9648         (dwarfout_init): Make static.
9649         (dwarfout_finish): Make static, take 2 args.
9650         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
9651         * sdbout.c: Include debug.h.
9652         (sdb_debug_hooks): New.
9653         (sdbout_init): Make static, take 2 args.
9654         * sdbout.h (sdbout_init): Delete.
9655         * toplev.c: Include debug.h.
9656         (debug_hooks): New.
9657         (compile_file): Set deubg_hooks based on command line options.
9658         Use the hooks unconditionally rather than conditional compilation.
9659
9660 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
9661
9662         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
9663         first_insn_after_basic_block_note instead.
9664
9665         * df.c (df_bb_refs_unlink): #if 0 out for now.
9666
9667 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
9668
9669         * ssa.h: Add prototype for ssa_const_prop
9670         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
9671         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
9672         (ssa_fast_dce): Remove unused variable
9673
9674 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
9675
9676         * diagnostic.c (finish_diagnostic): Rename to
9677         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
9678         calls thourghout.
9679
9680 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
9681
9682         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
9683         .loc support.
9684
9685         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
9686         (dump_file): Only pad the demangled name with spaces if the
9687         mangled name was padded with spaces.
9688
9689 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
9690
9691         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
9692         edge detection.
9693
9694 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9695
9696         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
9697         extraction if no direct load if either EXPAND_CONST_ADDRESS or
9698         EXPAND_INITIALIZER.
9699
9700         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
9701         whether can put offset inside LO_SUM to check mode alignment, not size.
9702
9703 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
9704
9705         * doc/tm.texi (Misc): Fix thinko.
9706
9707 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
9708
9709         * regmove.c (replace_in_call_usage): Fix warnings.
9710         * sched-deps.c (add_dependence): Fix warnings.
9711         * simplify-rtx.c (simplify_subreg): Likewise.
9712         Return NULL_RTX instead of NULL.
9713
9714         * reg-stack.c (emit_swap_insn): Eliminate warnings.
9715         (subst_asm_stack_regs): Likewise.
9716
9717         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
9718         warnings.
9719
9720         * dwarf2out.c (output_call_frame_info): Declare i as int.
9721         (build_abbrev_table): Declare n_alloc as int.
9722         (dwarf2out_finish): Initialize die.
9723         * except.c: Declare sjlj_funcdef_number as unsigned.
9724         (connect_post_landing_pads): Declare j as unsigned.
9725         (convert_to_eh_region_ranges): Initialize call_site.
9726         (output_function_exception_table): Initialize tt_format_size.
9727         * expr.c (move_by_pieces_1): Initialize to1.
9728         (store_constructor): Initialize minelt and maxelt.
9729         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
9730         * function.c (instantiate_decls): Avoid signed/unsigned warning.
9731
9732         * c-decl.c (combine_parm_decls): Unused, remove.
9733         * c-tree.h: Remove prototype for combine_parm_decls.
9734
9735         * reload.c (push_reload): Fix warning.
9736         (regno_clobbered_p): Likewise.
9737         * reload1.c (replace_pseudos_in_call_usage): Likewise.
9738         (reload_combine): Likewise.
9739
9740         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
9741         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
9742         warnings.
9743         * bitmap.c (bitmap_operation): Change user.
9744         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
9745
9746 2001-07-10  Eric Christopher  <echristo@redhat.com>
9747
9748         * config/mips/mips.c (override_options): Fix typo.
9749
9750 2001-07-09  Stan Shebs  <shebs@apple.com>
9751
9752         * target.h (struct gcc_target): New fields init_builtins and
9753         expand_builtin.
9754         * target-def.h (TARGET_INIT_BUILTINS): New macro.
9755         (TARGET_EXPAND_BUILTIN): New macro.
9756         (TARGET_INITIALIZER): Add them.
9757         * builtins.c: Include target.h.
9758         (expand_builtin): Use targetm.expand_builtin.
9759         (default_init_builtins): New function.
9760         (default_expand_builtin): New function.
9761         * expr.h (default_init_builtins): Declare.
9762         (default_expand_builtin): Declare.
9763         * c-common.c (c_common_nodes_and_builtins): Use
9764         targetm.init_builtins.
9765         * defaults.h (MD_INIT_BUILTINS): Remove.
9766         * Makefile.in (builtins.o): Depend on target.h.
9767
9768         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
9769         (TARGET_EXPAND_BUILTIN): Define.
9770         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
9771         (MD_EXPAND_BUILTIN): Remove.
9772
9773         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
9774         (TARGET_EXPAND_BUILTIN): Define.
9775         (c4x_init_builtins): Make endlink arg a local.
9776         (c4x_print_operand): Fix typos in adjust_address usages.
9777         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
9778         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
9779         (MD_EXPAND_BUILTIN): Remove.
9780
9781         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
9782         (TARGET_EXPAND_BUILTIN): Define.
9783         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
9784         (ix86_init_builtins): Call new function only if TARGET_MMX.
9785         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
9786         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
9787         (MD_EXPAND_BUILTIN): Remove.
9788
9789         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
9790         (TARGET_EXPAND_BUILTIN): Define.
9791         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
9792         (MD_EXPAND_BUILTIN): Remove.
9793
9794         * doc/tm.texi: Document these changes.
9795
9796 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
9797
9798         * basic-block.h (tree_node): Forward declare if needed.
9799         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
9800         (BLOCK_HEAD_TREE): Define.
9801         (BLOCK_END_TREE): Define.
9802         (struct loops): Rename field 'tree' to 'tree_root'.
9803         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
9804         'end_tree'.
9805         (flow_loops_tree_build): Rename reference to field 'tree' to
9806         'tree_root'.
9807         (flow_loops_level_compute): Ditto.
9808         * predict.c (estimate_bb_frequencies): Ditto.
9809         * tree.h (struct tree_common): Add field 'aux'.
9810
9811 2001-07-09  Stan Shebs  <shebs@apple.com>
9812
9813         * config/darwin.c (darwin_encode_section_info): Don't mark any
9814         DECL_EXTERNAL node as defined.
9815
9816 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9817
9818         * pa.c (pa_init_machine_status, pa_mark_machine_status,
9819         pa_free_machine_status, hppa_init_pic_save): Delete.
9820         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
9821         (hppa_profile_hook): Use hppa_pic_save_rtx.
9822         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
9823         hppa_init_pic_save): Delete.
9824         (hppa_pic_save_rtx): Declare.
9825         * pa.md (call, call_value, sibcall, sibcall_value,
9826         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
9827
9828 2001-07-09  Kazu Hirata  <kazu@hxi.com>
9829
9830         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
9831         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
9832
9833 2001-07-09  Andreas Jaeger  <aj@suse.de>
9834
9835         * output.h: Add declaration of final_forward_branch_p.
9836
9837         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
9838
9839         * varray.c: Include errors.h for internal_error and trim_filename
9840         declarations.
9841
9842         * Makefile.in (varray.o): Add errors.h.
9843
9844 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
9845
9846         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
9847         * optabs.c (have_add2_insn): Check whether the add insn chosen
9848         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
9849         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
9850
9851 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
9852
9853         * Makefile.in (OBJS): Add ssa-ccp.o
9854         (ssa-ccp.o): Add dependencies.
9855         * toplev.c (DFI_ssa_ccp): New dump file enum.
9856         (dump_file): Add entry for dumping after SSA CCP.
9857         (flag_ssa_ccp): New flag variable.
9858         (f_options): Add -fssa-ccp.
9859         (rest_of_compilation): Run SSA CCP if requested.
9860         * timevar.def (TV_SSA_CCP): New timevar.
9861         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
9862         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
9863         Fix minor typo in SSA DCE documentation.
9864         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
9865         Add documentation for new dump option.  Renumber dump files
9866         appropriately.
9867
9868 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
9869
9870         * emit-rtl.c (gen_highpart_mode): New.
9871         * rtl.h (gen_highpart_mode): Declare.
9872         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
9873         operand can be VOIDmode constant.
9874
9875 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
9876
9877         * flow.c (redirect_edge_and_branch_force): New.
9878         (can_fallthru): Ensure that basic blocks are succeeding.
9879         (try_optimize_cfg): Do not delete basic block if it is the last one.
9880
9881         * flow.c (try_redirect_by_replacing_jump): Do not remove
9882         jumps with side effects, unlink chain on fallthru edge;
9883         set block for new jump instruction; avoid basic block to
9884         over by line number note.
9885
9886         * flow.c (try_simplify_condjump): Verify that the condjump
9887         is not always falling trought.
9888
9889         Re-install patch:
9890         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
9891
9892         * flow.c (forwarder_block_p): Fix for fallthru blocks.
9893         (try_redirect_by_replacing_jump): Update properly the count
9894         and frequency information.
9895
9896 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9897
9898         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
9899         address that is a LO_SUM specially.
9900         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
9901
9902         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
9903
9904         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
9905         (operand_subword): Use them.
9906         (change_address_1): Renamed from change_address; new arg VALIDATE.
9907         * expr.h: Reflect above changes; change_address now macro.
9908         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
9909         making MEM.
9910         * cselib.c (add_mem_for_addr): Likewise.
9911         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
9912         * regmove.c (try_apply_stack_adjustment): Likewise.
9913         * reload.c (push_reload, make_memloc): Likewise.
9914         * reload1.c (eliminate_regs): Likewise.
9915         * simplify-rtx.c (simplify_replace_rtx): Likewise.
9916         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
9917         adjust_addess.
9918         * combine.c (make_extraction, simplify_shift_const): Likewise.
9919         (gen_lowpart_for_combine): Likewise.
9920         * cse.c (gen_lowpart_if_possible): Likewise.
9921         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
9922         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
9923         * optabs.c (gen_move_insn): Likewise.
9924         * reload1.c (alter_reg): Likewise.
9925         * simplify-rtx.c (simplify_subreg): Likewise.
9926         * stmt.c (expand_anon_union_decl): Likewise.
9927         * recog.c (validate_replace_rtx_1): Likewise.
9928         (expr.h): Include.
9929         * Makefile.in (recog.o): Add $(EXPR_H).
9930         * explow.c (stabilize): Call replace_equiv_address.
9931         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
9932         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
9933
9934 2001-07-03  Andrew Haley  <aph@redhat.com>
9935
9936         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
9937         the mode of the memory location.
9938
9939 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
9940
9941         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
9942
9943 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9944
9945         * final.c (output_addr_const): Use target opening and
9946         closing parentheses.
9947         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
9948         defaults, add to TARGET_ASM_OUT.
9949         * target.h (struct gcc_target): Add open_paren and close_paren.
9950         * doc/md.texi: Update.
9951         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
9952         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
9953         TARGET_ASM_CLOSE_PAREN.
9954         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
9955         Override.
9956         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
9957         Override.
9958         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
9959         * config/a29k/a29k.h: Similarly.
9960         * config/alpha/alpha.h: Similarly.
9961         * config/arc/arc.h: Similarly.
9962         * config/arm/aof.h: Similarly.
9963         * config/arm/aout.h: Similarly.
9964         * config/avr/avr.h: Similarly.
9965         * config/c4x/c4x.h: Similarly.
9966         * config/clipper/clipper.h: Similarly.
9967         * config/convex/convex.h: Similarly.
9968         * config/d30v/d30v.h: Similarly.
9969         * config/dsp16xx/dsp16xx.h: Similarly.
9970         * config/elxsi/elxsi.h: Similarly.
9971         * config/fr30/fr30.h: Similarly.
9972         * config/h8300/h8300.h: Similarly.
9973         * config/i370/i370.h: Similarly.
9974         * config/i386/i386.h: Similarly.
9975         * config/i860/i860.h: Similarly.
9976         * config/i960/i960.h: Similarly.
9977         * config/ia64/ia64.h: Similarly.
9978         * config/m32r/m32r.h: Similarly.
9979         * config/m68hc11/m68hc11.h: Similarly.
9980         * config/m68k/m68k.h: Similarly.
9981         * config/m88k/m88k.h: Similarly.
9982         * config/mcore/mcore.h: Similarly.
9983         * config/mips/mips.h: Similarly.
9984         * config/mn10200/mn10200.h: Similarly.
9985         * config/mn10300/mn10300.h: Similarly.
9986         * config/ns32k/ns32k.h: Similarly.
9987         * config/pa/pa.h: Similarly.
9988         * config/pdp11/pdp11.h: Similarly.
9989         * config/pj/pj.h: Similarly.
9990         * config/romp/romp.h: Similarly.
9991         * config/rs6000/rs6000.h: Similarly.
9992         * config/sh/sh.h: Similarly.
9993         * config/sparc/sparc.h: Similarly.
9994         * config/v850/v850.h: Similarly.
9995         * config/vax/vax.h: Similarly.
9996         * config/we32k/we32k.h: Similarly.
9997
9998 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
9999
10000         * doc/c-tree.texi: Document representation of attributes.
10001
10002 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10003
10004         * doc/tm.texi: Update some places for the rename of target to
10005         targetm.  Fix typo.
10006
10007 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10008
10009         * target.h (struct gcc_target): Add insert_attributes.
10010         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
10011         (TARGET_INITIALIZER): Update.
10012         * tree.c, tree.h (default_insert_attributes): New function.
10013         Update comments on other default functions to refer to targetm,
10014         not target.
10015         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
10016         TARGET_INSERT_ATTRIBUTES.
10017         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
10018         * c-common.c (decl_attributes): Use targetm.insert_attributes.
10019         Don't use PRAGMA_INSERT_ATTRIBUTES.
10020         * Makefile.in (c-common.o): Depend on $(TARGET_H).
10021         * c-decl.c (start_decl, start_function): Don't call
10022         SET_DEFAULT_DECL_ATTRIBUTES.
10023         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
10024         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
10025         declare.
10026         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
10027         (c4x_check_attribute): Avoid modifying attribute list itself.
10028         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
10029         Make static.
10030         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
10031         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
10032         declare.
10033         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
10034         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
10035         Make static.
10036         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
10037         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
10038         declare.
10039         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
10040         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
10041         Adjust parameters.  Make static.
10042
10043 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10044
10045         * c-common.c (decl_attributes): Only take a single attributes
10046         parameter.
10047         * c-common.h (decl_attributes): Update prototype.
10048         * c-decl.c (start_decl, start_function): Only take a single
10049         attributes parameter.  Update calls to decl_attributes.
10050         (finish_struct, finish_enum): Update calls to decl_attributes.
10051         (push_parm_decl): Expect unified list of attributes.  Update call
10052         to decl_attributes.
10053         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
10054         notype_nested_function, component_declarator,
10055         component_notype_declarator, label): Update calls to
10056         decl_attributes.
10057         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
10058         lists that are passed to push_parm_decl.
10059         * c-tree.h (start_function, start_decl): Update prototypes.
10060         * config/sh/sh-protos.h, config/sh/sh.c
10061         (sh_pragma_insert_attributes): Only take a single attributes
10062         parameter.
10063         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
10064         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
10065         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
10066         build_module_descriptor, generate_static_references,
10067         generate_strings, build_selector_translation_table,
10068         generate_descriptor_table, generate_protocols,
10069         generate_ivars_list, generate_dispatch_table,
10070         generate_protocol_list, generate_category,
10071         generate_shared_structures, really_start_method, add_objc_decls,
10072         generate_classref_translation_entry): Update calls to start_decl
10073         and start_function.
10074         (build_tmp_function_decl, start_method_def): Unify attribute lists
10075         that are passed to push_parm_decl.
10076
10077 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
10078
10079         * final.c (no_asm_to_stream): New.
10080         (final_scan_insn): Use target structures for prologue ends
10081         and epilogue starts.
10082         * output.h (no_asm_to_stream): New.
10083         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
10084         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
10085         (TARGET_ASM_OUT): Update.
10086         * target.h (struct gcc_target): New members function_end_prologue
10087         and function_begin_epilogue.
10088         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
10089         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
10090         * config/alpha/alpha.c (output_end_prologue): Rename to
10091         alpha_output_function_end_prologue.  Use in target struct
10092         and make static.
10093         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
10094         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
10095         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
10096         ia64_output_function_end_prologue.  Use in target struct
10097         and make static.
10098         (ia64_function_prologue, ia64_funciton_epilogue): Rename
10099         mistyped prototypes.
10100         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
10101         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
10102         Delete.
10103         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
10104         an use in target struct, make static.
10105         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
10106         Delete.
10107
10108 2001-07-08  Richard Henderson  <rth@redhat.com>
10109
10110         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
10111
10112 2001-07-08  Richard Henderson  <rth@redhat.com>
10113
10114         * config/i386/i386.md: Remove constraints strings from define_split
10115         and define_peephole2 patterns.
10116         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
10117         (eh_return): Use them.
10118
10119 2001-07-08  Richard Henderson  <rth@redhat.com>
10120
10121         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
10122         Document MD_FALLBACK_FRAME_STATE_FOR.
10123
10124 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10125
10126         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
10127         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
10128         elimination.
10129         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
10130
10131 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
10132
10133         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
10134         of the label inside NAME as opposed to just the end of NAME.
10135
10136 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
10137
10138         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
10139         * config/alpha/alpha.c (alpha_init_machine_status,
10140         alpha_mark_machine_status, alpha_free_machine_status): Delete.
10141         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
10142         (vms_valid_decl_attribute_p): Make static, conditionally compile.
10143         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
10144
10145 2001-07-06  Stan Shebs  <shebs@apple.com>
10146
10147         * target.h (targetm): Rename global from "target", so as not to
10148         conflict with local variables.
10149         * c-decl.c: Ditto.
10150         * c-typeck.c: Ditto.
10151         * final.c: Ditto.
10152         * tree.c: Ditto.
10153         * cp/decl.c: Ditto.
10154         * cp/decl2.c: Ditto.
10155         * cp/typeck.c: Ditto.
10156         * 1750a/1750a.c: Ditto.
10157         * a29k/a29k.c: Ditto.
10158         * arc/arc.c: Ditto.
10159         * arm/arm.c: Ditto.
10160         * avr/avr.c: Ditto.
10161         * clipper/clipper.c: Ditto.
10162         * convex/convex.c: Ditto.
10163         * d30v/d30v.c: Ditto.
10164         * dsp16xx/dsp16xx.c: Ditto.
10165         * elxsi/elxsi.c: Ditto.
10166         * fr30/fr30.c: Ditto.
10167         * h8300/h8300.c: Ditto.
10168         * i370/i370.c: Ditto.
10169         * i386/i386.c: Ditto.
10170         * i860/i860.c: Ditto.
10171         * i960/i960.c: Ditto.
10172         * ia64/ia64.c: Ditto.
10173         * m32r/m32r.c: Ditto.
10174         * m68hc11/m68hc11.c: Ditto.
10175         * m68k/m68k.c: Ditto.
10176         * m88k/m88k.c: Ditto.
10177         * mips/mips.c: Ditto.
10178         * ns32k/ns32k.c: Ditto.
10179         * pa/pa.c: Ditto.
10180         * pdp11/pdp11.c: Ditto.
10181         * romp/romp.c: Ditto.
10182         * rs6000/rs6000.c: Ditto.
10183         * sh/sh.c: Ditto.
10184         * sparc/sparc.c: Ditto.
10185         * vax/vax.c: Ditto.
10186         * we32k/we32k.c: Ditto.
10187         * doc/tm.texi: Update the manual to match.
10188
10189 2001-07-06  Richard Henderson  <rth@redhat.com>
10190
10191         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
10192         DWARF2_UNWIND_INFO not just whether it is defined.
10193
10194 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
10195
10196         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
10197         call to simplify_binary_operation returns a new pattern.
10198
10199 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
10200
10201         * glimits.h (__SHRT_MAX__): New.
10202         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
10203         (SHRT_MAX): Define in terms of __SHRT_MAX__.
10204
10205 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
10206
10207         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
10208         avoid warnings.
10209
10210 2001-07-06  Richard Henderson  <rth@redhat.com>
10211
10212         * bitmap.c (bitmap_release_memory): Move adjacent to the
10213         allocation functions.
10214         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
10215         the implementation.  Binary search for the set bit.
10216         (bitmap_union_of_diff): Allocate the temporary on the stack
10217         instead of using xmalloc.
10218
10219 2001-07-06  Richard Henderson  <rth@redhat.com>
10220
10221         * genrecog.c (validate_pattern): Warn for constraints in
10222         define_{expand,split,peephole2}.  Remove strict_low_part
10223         before looking up match_dup.
10224
10225 2001-07-06  DJ Delorie  <dj@redhat.com>
10226
10227         * doc/gcc.texi (Makefile): Rename to be a more general purpose
10228         chapter about various build hints and history.  Add section
10229         talking about the various types of native and cross builds.
10230
10231 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
10232
10233         * Makefile.in (final.o): Depend on target.h.
10234         * final.c: Include target.h.
10235         (default_function_pro_epilogue): New.
10236         (final_start_function): Use target structure for function prologues.
10237         (final_end_function): Use target structure for function epilogues.
10238         * fold-const.c (real_hex_to_f): Constify s and p.
10239         * output.h (default_function_pro_epilogue): New.
10240         * real.h (real_hex_to_f): Update prototype.
10241         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
10242         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
10243         (TARGET_INITIALIZER): Update.
10244         * target.h (gcc_target): Add struct asm_out.
10245         * doc/tm.texi: Update.
10246
10247 config:
10248         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
10249         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
10250         in cpu/cpu.c, or rename old functions consistently.  Take
10251         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
10252         redundant macros and prototypes.  Make new functions static.
10253
10254         * 1750a/1750a.c: Similarly.
10255         * 1750a/1750a.h: Similarly.
10256         * a29k/a29k-protos.h: Similarly.
10257         * a29k/a29k.c: Similarly.
10258         * a29k/a29k.h: Similarly.
10259         * arc/arc-protos.h: Similarly.
10260         * arc/arc.c: Similarly.
10261         * arc/arc.h: Similarly.
10262         * arm/arm-protos.h: Similarly.
10263         * arm/arm.c: Similarly.
10264         * arm/arm.h: Similarly.
10265         * avr/avr-protos.h: Similarly.
10266         * avr/avr.c: Similarly.
10267         * avr/avr.h: Similarly.
10268         * clipper/clipper-protos.h: Similarly.
10269         * clipper/clipper.c: Similarly.
10270         * clipper/clipper.h: Similarly.
10271         * convex/convex.c: Similarly.
10272         * convex/convex.h: Similarly.
10273         * d30v/d30v-protos.h: Similarly.
10274         * d30v/d30v.c: Similarly.
10275         * d30v/d30v.h: Similarly.
10276         * d30v/d30v.md: Similarly.
10277         * dsp16xx/dsp16xx-protos.h: Similarly.
10278         * dsp16xx/dsp16xx.c: Similarly.
10279         * dsp16xx/dsp16xx.h: Similarly.
10280         * elxsi/elxsi.c: Similarly.
10281         * elxsi/elxsi.h: Similarly.
10282         * fr30/fr30.c: Similarly.
10283         * fr30/fr30.md: Similarly.
10284         * h8300/h8300-protos.h: Similarly.
10285         * h8300/h8300.c: Similarly.
10286         * h8300/h8300.h: Similarly.
10287         * i370/i370-protos.h: Similarly.
10288         * i370/i370.c: Similarly.
10289         * i370/i370.h: Similarly.
10290         * i386/i386.c: Similarly.
10291         * i386/osf1elf.h: Similarly.
10292         * i386/osfrose.h: Similarly.
10293         * i860/i860-protos.h: Similarly.
10294         * i860/i860.c: Similarly.
10295         * i860/i860.h: Similarly.
10296         * i960/i960-protos.h: Similarly.
10297         * i960/i960.c: Similarly.
10298         * i960/i960.h: Similarly.
10299         * ia64/ia64-protos.h: Similarly.
10300         * ia64/ia64.c: Similarly.
10301         * ia64/ia64.h: Similarly.
10302         * m32r/m32r-protos.h: Similarly.
10303         * m32r/m32r.c: Similarly.
10304         * m32r/m32r.h: Similarly.
10305         * m68hc11/m68hc11-protos.h: Similarly.
10306         * m68hc11/m68hc11.c: Similarly.
10307         * m68hc11/m68hc11.h: Similarly.
10308         * m68k/crds.h: Similarly.
10309         * m68k/dpx2.h: Similarly.
10310         * m68k/m68k-protos.h: Similarly.
10311         * m68k/m68k.c: Similarly.
10312         * m68k/m68k.h: Similarly.
10313         * m68k/news.h: Similarly.
10314         * m88k/m88k-protos.h: Similarly.
10315         * m88k/m88k.c: Similarly.
10316         * m88k/m88k.h: Similarly.
10317         * mips/mips-protos.h: Similarly.
10318         * mips/mips.c: Similarly.
10319         * mips/mips.h: Similarly.
10320         * ns32k/merlin.h: Similarly.
10321         * ns32k/ns32k.c: Similarly.
10322         * ns32k/ns32k.h: Similarly.
10323         * ns32k/tek6000.h: Similarly.
10324         * pa/pa-protos.h: Similarly.
10325         * pa/pa.c: Similarly.
10326         * pa/pa.h: Similarly.
10327         * pdp11/2bsd.h: Similarly.
10328         * pdp11/pdp11-protos.h: Similarly.
10329         * pdp11/pdp11.c: Similarly.
10330         * pdp11/pdp11.h: Similarly.
10331         * romp/romp-protos.h: Similarly.
10332         * romp/romp.c: Similarly.
10333         * romp/romp.h: Similarly.
10334         * rs6000/rs6000-protos.h: Similarly.
10335         * rs6000/rs6000.c: Similarly.
10336         * rs6000/rs6000.h: Similarly.
10337         * rs6000/sysv4.h: Similarly.
10338         * sh/sh-protos.h: Similarly.
10339         * sh/sh.c: Similarly.
10340         * sh/sh.h: Similarly.
10341         * sparc/sparc-protos.h: Similarly.
10342         * sparc/sparc.c: Similarly.
10343         * sparc/sparc.h: Similarly.
10344         * vax/vax.c: Similarly.
10345         * vax/vax.h: Similarly.
10346         * vax/vms.h: Similarly.
10347         * we32k/we32k.c: Similarly.
10348         * we32k/we32k.h: Similarly.
10349
10350 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
10351
10352         * basic-block.h (first_insn_after_basic_block_note): Declare.
10353         * flow.c (first_insn_after_basic_block_note): Define.  Moved
10354         from...
10355         * ssa.c (first_insn_after_basic_block_note): Remove.
10356         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
10357         necessary.
10358         (ssa_eliminate_dead_code): Properly update the CFG and PHI
10359         nodes when we find a dead conditional branch.  Insert BARRIERs
10360         after any blocks with no successors, but which do not have
10361         any BARRIERs.
10362
10363 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
10364
10365         * varray.c (varray_check_failed): Use internal_error.
10366
10367 2001-07-05  Andrew Haley  <aph@redhat.com>
10368
10369         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
10370         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
10371         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
10372
10373 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
10374
10375         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
10376         reference if the target constant is also a SYMBOL_REF.
10377
10378 2001-07-05  Eric Christopher  <echristo@redhat.com>
10379
10380         * config/mips/mips.h (MASK_MIPS3900): Remove.
10381         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
10382         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
10383         (TARGET_MIPS3900): Change to use mips_arch.
10384         (TARGET_MIPS4000): New.
10385         (TARGET_MIPS4100): New.
10386         (TARGET_MIPS4300): New.
10387         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
10388         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
10389         for -mipsX.
10390         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
10391         (ISA_HAS_BRANCHLIKELY): To here.
10392         (CC1_CPU_SPEC):  New.
10393         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
10394         (mips_arch_string): Declare.
10395         (mips_arch): Declare.
10396         (TARGET_OPTIONS): Add -march and -mtune.
10397
10398         * config/mips/mips.c (mips_arch_string): New.
10399         (mips_arch): New.
10400         (override_options): Handle -march for codegen and -mtune
10401         for scheduling. Use mips_arch. Move tx39 target default here.
10402         (mips_parse_cpu): Move error message to override_options.
10403
10404         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
10405
10406         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
10407
10408         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
10409         (MIPS Options): Ditto.  Change mcpu entry to historical text.
10410
10411 2001-07-05  H.J. Lu  (hjl@gnu.org)
10412
10413         * config/mips/mips.c (mips_parse_cpu): New function to parse
10414         -march=*/-mcpu=*.
10415
10416 2001-07-05  Jim Wilson  <wilson@redhat.com>
10417
10418         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
10419         * config/ia64/t-ia64: Likewise.
10420         (LIB1ASMFUNCS): Update comment.
10421
10422 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
10423
10424         * doc/install.texi (Install GCC: Binaries): Fix typo.
10425
10426 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10427
10428         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
10429         reference using the stack pointer, adjust it since we push Y
10430         temporarily.
10431         ("*ashrsi3"): Likewise.
10432         ("*lshrsi3"): Likewise.
10433
10434 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10435
10436         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
10437         when -fomit-frame-pointer is used.
10438
10439 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
10440
10441         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
10442         (try_redirect_by_replacing_jump): Reverse updating properly the
10443         count and frequency information.  Reverse removing cc0 setter.
10444         (forwarder_block_p): Reverse fixing for fallthru blocks.
10445
10446 2001-07-05  DJ Delorie  <dj@redhat.com>
10447
10448         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
10449         (translate_options): If the above is defined, use it to map
10450         given options to new options.
10451         * doc/tm.texi: Document it.
10452
10453 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
10454             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10455
10456         * doc/invoke.texi (Optimize Options): Document that -fgcse may
10457         cause programs using computed gotos to run more slowly.
10458
10459 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10460
10461         * doc/install.texi (Specific): Markup, spelling and typo fixes.
10462         Fixed sorting.
10463         Consistently require binutils 2.11.2, not prereleases.
10464         (Specific, decstation-*): Canonicalize as mips-dec-*.
10465         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
10466         always necessary.
10467         (Specific, m68k-altos): Removed reference to README.altos, deleted.
10468         (Specific, mips-*): Reword MIPS C compiler requirements.
10469         (Specific, powerpc*-*-*): New, mention --with-cpu once.
10470         (Specific, sunv5): Removed, obsolete.
10471
10472 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
10473
10474         * dwarf2out.c (output_loc_list): Use an all ones mask for
10475         .text asm output and don't rely on long long
10476         literals. Reformat some long lines.
10477
10478 2001-07-05  Andreas Jaeger  <aj@suse.de>
10479
10480         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
10481         section.
10482
10483 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
10484
10485         * dwarf2out.c (dwarf2out_define): Update comment.
10486         (dwarf2out_undef): Ditto.
10487         (dwarf2out_start_source_file): Ditto.
10488         (dwarf2out_end_source_file): Ditto.
10489         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
10490         since we never call the start/end debug hook for the primary file.
10491
10492 2001-07-04  Kazu Hirata  <kazu@hxi.com>
10493
10494         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
10495         from shll.
10496
10497 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
10498
10499         * cppinit.c (remove_dup_dirs): Inform if a system include
10500         directory is being reordered.
10501         * doc/invoke.texi (Directory Options): GCC warns if you hide a
10502         system include.
10503         * doc/cpp.texi (Search Paths): Likewise.
10504         * doc/gcc.texi (Interoperation): Remove information about
10505         -I/usr/include.
10506
10507 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
10508
10509         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
10510         (VARRAY_TOP_CHAR_PTR): Likewise.
10511
10512 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10513
10514         * gcc.c (process_command): Don't assign elements of a const char*.
10515
10516 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10517
10518         * emit-rtl.c (change_address): Don't abort if invalid address while
10519         reload is in progress.
10520
10521 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
10522
10523         * c-lex.c (cb_file_change): Pass line number to
10524         debug_start_source_file.
10525         (cb_undefine): Pass correct line number to debug_undef.
10526
10527         * toplev.c (debug_start_source_file): Add line number to
10528         parameters. Pass it along to dwarf2out_start_source_file.
10529         (decode_g_option): Stop resetting debug level back to normal when
10530         we change debug formats, unless the current level is
10531         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
10532         3).
10533
10534         * toplev.h (debug_start_source_file): Add line number to
10535         parameters.
10536
10537         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
10538         parameters.
10539
10540         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
10541         parameters.
10542         Output debug_macinfo data for starting file if requested.
10543         (dwarf2out_end_source_file): Output debug_macinfo data for ending
10544         file if requested.
10545         (dwarf2out_define): Output debug_macinfo data for defining a macro
10546         if requested.
10547         (dwarf2out_undef): Output debug_macinfo data for undefining a
10548         macro if requested.
10549         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
10550         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
10551         (macinfo_section_label): New. DWARF2 macro info section label.
10552         (dwarf2out_init): If we want macro info, output the start label
10553         for the section.
10554         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
10555         attribute to the compilation unit die pointing to the macro info.
10556
10557 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
10558
10559         * dwarf2out.c (new_loc_list): Move to inside #ifdef
10560         DWARF2_DEBUGGING_INFO.
10561         (add_loc_descr_to_loc_list): Ditto.
10562         (output_loc_list): Ditto.
10563         Also, fix thinko in curr not being initialized.
10564         (gen_internal_sym): Ditto.
10565
10566 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10567
10568         * emit-rtl.c (replace_equiv_address): New function.
10569         * expr.h (replace_equiv_address): New declaration.
10570         * explow.c (validize_mem): Call it instead of change_address and
10571         also call if -fforce-addr and address is constant.
10572         * expr.c: Replace more calls to change_address with adjust_address
10573         and/or replace_equiv_address or to validize_mem.
10574         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
10575         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
10576         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
10577         * config/i370/i370.md, config/i860/i860.md: Likewise.
10578         * config/i960/i960.md, config/mips/mips.c: Likewise.
10579         * config/mips/mips.md, config/pa/pa.md: Likewise.
10580         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
10581         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
10582
10583 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10584
10585         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
10586
10587         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
10588         function.
10589
10590 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
10591
10592         * doc/include: New directory.
10593         * doc/fdl.texi: Move to doc/include/fdl.texi.
10594         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
10595         * doc/include/funding.texi, doc/include/gpl.texi: New files.
10596         * doc/gcc.texi: Use funding.texi and gpl.texi.
10597         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
10598         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
10599         Update dependencies and use -I $(docdir)/include.
10600
10601 2001-07-04  Anthony Green  <green@redhat.com>
10602
10603         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
10604
10605 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10606
10607         * doc/install.texi (sparc64-*-*): Remove garbage.
10608
10609 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
10610
10611         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
10612         Fix typo in last change to use adjust_address.
10613
10614 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10615
10616         * doc/install.texi (Specific): Update information for *-*-solaris*.
10617
10618 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10619
10620         * explow.c (plus_constant_wide): Reinitialize Y for restart.
10621
10622 2001-07-03  Stan Shebs  <shebs@apple.com>
10623
10624         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
10625         case for flag_no_mach_text_sections.
10626         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
10627         * config/darwin.c (flag_no_mach_text_sections): Remove.
10628         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
10629
10630 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10631
10632         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
10633         and avoid checking for constant as first operand.
10634         * recog.c (find_constant_term_loc): No longer static.
10635         (adj_offettable_operand): Delete.
10636         * rtl.h (adj_offsettable_operand): Delete declaration.
10637         (find_constant_term): Add declaration.
10638         * caller-save.c: Replace calls to adj_offsettable_operand with calls
10639         to adjust_address.
10640         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
10641         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
10642         * config/i386/i386.c, config/i386/i386.md: Likewise.
10643         * config/i860/i860.c, config/i960/i960.c: Likewise.
10644         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
10645         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
10646         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
10647         * config/mips/mips.c, config/mips/mips.md: Likewise.
10648         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
10649         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
10650         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
10651         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
10652         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
10653         * config/ns32k/ns32k.md: Likewise.
10654
10655 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
10656
10657         * rtl.c (copy_rtx): Handle 'T' format letter.
10658         * gensupport.c (collect_insn_data): Likewise.
10659         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
10660
10661 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
10662
10663         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
10664         -B option.  Use 'dir' not 'foo' as example directory name.
10665
10666 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10667
10668         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10669         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
10670
10671 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
10672
10673         * doc/cppinternals.texi: Improve formatting and logical markup.
10674
10675 2001-07-03  Andreas Jaeger  <aj@suse.de>
10676
10677         * Makefile.in (insn-recog.o): Add dependency on reload.h.
10678
10679         * genrecog.c (write_header): Include reload.h for prototypes in
10680         insn-recog.c.
10681
10682 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
10683
10684 config:
10685         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
10686         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
10687         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
10688         i386_pe_valid_type_attribute_p): Add.
10689         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
10690         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
10691
10692 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10693
10694         * explow.c (plus_constant_wide, case LO_SUM): New case.
10695         (plus_constant_for_output_wide): Delete.
10696         * rtl.h (plus_constant_for_output): Delete.
10697         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
10698         instead of plus_constant_for_output.
10699         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
10700         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
10701         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
10702         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
10703         * config/sparc/sparc.md: Likewise.
10704         Convert some change_address calls to adjust_address.
10705
10706 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
10707
10708         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
10709         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
10710         documentation of -std and -Wwrite-strings.
10711
10712 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
10713
10714         * cse.c (canon_hash): Don't register registers in very small
10715         register classes, as extending their lifetime might cause
10716         reload to fail.
10717
10718 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
10719
10720         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
10721
10722         * flow.c (forwarder_block_p): Fix for fallthru blocks.
10723         (try_redirect_by_replacing_jump): Update properly the count
10724         and frequency information.
10725
10726 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
10727
10728         * toplev.c (dump_file_index): Move SSA dumps just after first
10729         jump dump.
10730         (dump_file): Corresponding changes.
10731         (rest_of_compilation): Move SSA path to just after the first
10732         jump pass.
10733         * doc/gcc.texi (Passes): Update due to movement of SSA path.
10734         * doc/invoke.texi: Update dump file #s as they were completely
10735         out of date with reality.
10736
10737 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
10738
10739         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
10740
10741         * expr.c (emit_move_insn_1): Deal with non-default
10742         STACK_PUSH_CODE.
10743
10744         * expr.c (emit_single_push_insn): Fix warning.
10745
10746 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
10747
10748         * expr.c (emit_move_insn_1): Avoid modifying
10749         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
10750
10751 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10752
10753         * emit-rtl.c (adjust_address): New function.
10754         * expr.h (adjust_address): Add declaration.
10755         * builtins.c: Replace some calls to change_address with calls to it
10756         or to validize_mem.
10757         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
10758         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
10759         * config/arm/arm.c, config/convex/convex.c: Likewise.
10760         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
10761         * config/i386/i386.c, config/i386/i386.md: Likewise.
10762         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
10763         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
10764         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
10765         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
10766         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
10767
10768 2001-07-02  Jim Wilson  <wilson@redhat.com>
10769
10770         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
10771
10772 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
10773
10774         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
10775         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
10776
10777 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
10778
10779         * cppinit.c (lang_defaults): New table.
10780         (set_lang): Just read from lang_defaults into the live options
10781         structure.
10782
10783 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
10784
10785         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
10786         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
10787         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
10788
10789 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10790
10791         * doc/install.texi: Various spelling and markup fixes.
10792         (Installing GCC): Component specific installation instructions are
10793         gone.
10794         Fix reference.
10795         Warn about removing old install dir in the presence of shared libs.
10796         (Configuration): Invoke with options target to match configure
10797         --help.
10798         Consistently refer to gas, gld pathnames.
10799         Invert --enable-multilib documentation.
10800         Remove references to old compiler versions.
10801
10802 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10803
10804         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
10805
10806 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10807
10808         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
10809         section.
10810         (Specific, mips*-sgi-irix5): Note IDO download.
10811         Reworded MIPS C hints.
10812         Use GNU as instead of GAS.
10813         Markup fixes.
10814         Removed SGI Freeware reference, IRIX 6 only.
10815         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
10816         Note N64 library requirement/workaround.
10817         Update O32 hints.
10818         Complete list of structure passing bug victims.
10819
10820 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10821
10822         * doc/install.texi: Remove CVS Id.
10823
10824 2001-07-02  Andreas Jaeger  <aj@suse.de>
10825
10826         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
10827         (find_inherently_necessary): Remove unused variable.
10828
10829 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
10830
10831         * c-common.h (TDI_inlined): New ast dump phase.
10832         (dump_flag_name): New function.
10833         * c-dump.c (dump_files): Add inlined phase.
10834         (dump_flag_name): Define.
10835         * doc/invoke.texi (-fdump-ast-inlined): Document.
10836
10837 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10838
10839         * stor-layout.c (layout_decl): Revert change to handling of alignment
10840         in packed types.
10841
10842 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10843
10844         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
10845         for FIELD_DECL.
10846
10847 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
10848
10849         * doc/tm.texi (FUNCTION_ARG): Document that the last call
10850         is special.
10851
10852 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
10853
10854         * tlink.c (recompile_files): Remove COMPILER_PATH and
10855         LIBRARY_PATH from the environment.
10856
10857 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
10858
10859         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
10860         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
10861         enumerators.
10862         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
10863
10864         * c-parse.in (OBJC_STRING): Kill.
10865         (objc_string): Decompose to [objc_string] '@' STRING.
10866         (reswords): Take the leading '@' off all the Objective C keywords.
10867         (objc_rid_sans_at): Kill.
10868         (init_reswords): Don't initialize it.
10869         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
10870         (_yylex): Kill reconsider label.  Look ahead one token after
10871         an '@'; if we get an identifier, check whether it's an
10872         Objective C @-keyword.  If so, return the keyword.  Otherwise,
10873         put back the token and return the '@' as a terminal.
10874
10875         * cpplib.c (lex_macro_node): Remove unnecessary check for
10876         leading '@' on identifier.  Clarify control flow and commentary.
10877
10878 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10879
10880         * cse.c (new_label_ref): Variable deleted.
10881         (insert): Remove set of new_label_ref.
10882         (check_for_label_ref): New function.
10883         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
10884
10885 See ChangeLog.5 for earlier changes.