]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
Change some regsets to regset_heads
[gcc.git] / gcc / ChangeLog
1 1999-12-20 Bernd Schmidt <bernds@cygnus.co.uk>
2
3 * reload.h (struct insn_chain): Change live_throughout and dead_or_set
4 to be of type regset_head, not regset. All users changed by adding
5 address operator.
6 * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
7
8 1999-12-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9
10 * config/c4x/rtems.h: New file.
11
12 1999-12-19 Bernd Schmidt <bernds@cygnus.co.uk>
13
14 * reload1.c (spill_failure): Take class of failed reload as argument
15 and print it. Caller changed.
16
17 Sun Dec 19 07:50:42 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
18
19 * rs6000.h (SUBTARGET_DEFAULT): New macro.
20 (TARGET_SWITCHES): Allow subtargets to default switches.
21 * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
22
23 1999-12-18 Mark Mitchell <mark@codesourcery.com>
24
25 * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
26 in a main program.
27
28 Sat Dec 18 20:42:43 1999 Richard Henderson <rth@cygnus.com>
29
30 * cccp.c (main): Define __STDC_VERSION__ as necessary.
31 * cppinit.c (cpp_handle_option): Likewise.
32
33 * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
34 determine when to define.
35
36 Sat Dec 18 20:34:00 1999 Richard Henderson <rth@cygnus.com>
37
38 * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
39 cmove with mismatched test and data modes.
40
41 Sat Dec 18 20:30:15 1999 Richard Henderson <rth@cygnus.com>
42
43 * c-typeck.c (c_expand_start_case): Don't warn for long switch
44 in system headers.
45
46 Sat Dec 18 16:28:43 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
47
48 * alias.c: Minor reformatting.
49 * flow.c: Likewise.
50 * regs.h: Likewise.
51 * stor-layout.c: Likewise.
52 * fold-const.c: Likewise.
53 (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
54 (struct cb_args, const_binop_1, const_binop): Pass type of arg,
55 not arg itself.
56 (size_int_wide): Cache nodes even if garbage collecting.
57 (twoval_comparison_p): Reenable SAVE_EXPR case if operand
58 of SAVE_EXPR has no side effects.
59 * cse.c: Move a comment.
60 * tree.c: Minor reformatting.
61 (int_size_in_bytes): Return -1 if constant overflows.
62
63 Sat Dec 18 18:30:20 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
64
65 * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
66
67 1999-12-18 10:42 -0800 Zack Weinberg <zack@wolery.cumb.org>
68
69 * objc/objc-parse.c: Regenerate. This file must be rebuilt
70 after any change to c-parse.in, even if objc-parse.y didn't
71 change. Oops.
72
73 1999-12-18 David S. Miller <davem@redhat.com>
74
75 * toplev.c (rest_of_compilation): Restore BLOCK tree
76 reconstruction and branch shortening changes lost in
77 December 18th change.
78
79 Sat Dec 18 05:29:29 1999 Scott Bambrough <scottb@netwinder.org>
80
81 * config/arm/linux-elf.h: Change all instances of
82 ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
83 * config/arm/uclinux-elf.h: Likewise.
84
85 1999-12-18 Gabriel Dos Reis <gdr@codesourcery.com>
86
87 * toplev.c (notice, vmessage, v_message_with_file_and_line,
88 v_message_with_decl, file_and_line_for_asm,
89 v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
90 verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
91 v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
92 v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
93 pfatal_with_name, fatal_io_error, need_error_newline,
94 last_error_function, last_error_tick, announce_function,
95 default_print_error_function, print_error_function,
96 report_error_function, fnotice, error_with_file_and_line,
97 error_with_decl, error_for_asm, error, set_fatal_function, fatal,
98 _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
99 warning_with_decl, warning_for_asm, warning, pedwarn,
100 pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
101 diagnostic.c
102 (compile_file): Use fnotice instead of notice. Adjust call.
103
104 * diagnostic.c: New file.
105
106 * Makefile.in (OBJS): Include diagnostic.o
107 (diagnostic.o): Define dependence.
108
109 1999-12-18 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
110
111 * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
112 Tweak formatting.
113
114 1999-12-18 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
115
116 * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
117
118 1999-12-17 13:21 -0800 Zack Weinberg <zack@rabi.columbia.edu>
119
120 * fixtests.c (is_cxx_header): New fn, split out of
121 double_slash_test.
122 (else_endif_label): Allow "#endif // comment" in C++ headers,
123 as determined by is_cxx_header.
124 * fixfixes.c (else_endif_label_fix): Update comment.
125 * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
126 a tty.
127 * genfixes: Correct double thinko in commandline parsing.
128 * hackshell.tpl: Generate correct sh syntax for bypass
129 entries.
130
131 * inclhack.def (all): Whenever an inserted preprocessor
132 conditional is split over multiple lines, use double
133 backslashes in this file so the fixed header will be readable.
134
135 (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
136 and add bypass entry for correct version of this header.
137 (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
138 (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
139
140 (hpux8_bogus_inlines): New fix, split from...
141 (ultrix_atof_param) ... here.
142 (math_expression): Add bypass entry keyed to glibc comment
143 indicating the problem has been dealt with; disable
144 unnecessary sed operations; update commentary.
145 (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
146 add select and bypass entries, simplify shell operation.
147 (math_huge_val_ifndef): Split from math_gcc_ifndefs.
148
149 (ip_missing_semi, rs6000_param, tinfo_cplusplus,
150 ultrix_atof_param): Add select entry.
151 (stdio_va_list, sunos_mather_decl): Add bypass entry.
152 (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
153 comments with the fixes they describe.
154
155 * c-parse.in (string action): Do not warn about ANSI string
156 concatenation in system headers. Affects C parser only.
157 * c-parse.y, c-parse.c, c-parse.h: Rebuild.
158
159 1999-12-16 Jakub Jelinek <jakub@redhat.com>
160
161 * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
162 compiling libgcc2 the macro depends always on arch cpp defines.
163
164 Fri Dec 17 10:34:16 1999 Richard Earnshaw <rearnsha@arm.com>
165
166 * loop.c (insert_loop_mem): Don't record MEMs from inside
167 EXPR_LISTs.
168
169 Fri Dec 17 12:08:11 MET 1999 Jan Hubicka <hubicka@freesoftr.cz>
170
171 * regclass.c (regclass): Do not use flowgraph when not optimizing.
172
173 * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
174 notes too, create one when replacement failed, attempt to simplify
175 resulting notes.
176 (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
177 or REG_EQUIV notes.
178
179 1999-12-16 Mark Mitchell <mark@codesourcery.com>
180
181 * crtstuff.c (__dso_handle): Declare.
182 (__cxa_finalize): Likewise.
183 (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
184 non-NULL.
185
186 * invoke.texi: Document -fuse-cxa-atexit.
187
188 * tree.h (ptr_type_node): Document.
189 (const_ptr_type_node): Likewise.
190
191 Fri Dec 17 01:32:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
192
193 * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
194 (optimize_reg_copy_2): Likewise.
195 (optimize_reg_copy_3): Likewise.
196 (fixup_match_2): Likewise.
197 (regmove_optimize): Likewise.
198 (fixup_match_1): Liekwise.
199
200 * i386.md (HI to SImode promoting splitters): Rewrite.
201 (pushsf mem peep2): New.
202 (testhi to andhi peep2): Remove.
203 * i386.h (x86_promote_QImode): New.
204 (TARGET_PROMOTE_QImode): New.
205 (PREDICATE_CODES): Add promotable_binary_operator.
206 * i386.c (x86_promote_QImode0: New.
207 (promotable_binary_operator): New.
208 * i386-protos.h (promotable_binary_operator): New.
209
210 * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
211 condition.
212 (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
213
214 1999-12-16 Mark Mitchell <mark@codesourcery.com>
215
216 * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
217 * function.c (insert_block_after_note): Remove.
218 (retrofit_block): Likewise.
219 (identify_blocks): Fix indentation.
220 (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
221 NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
222 * function.h (insert_block_after_note): Remove prototype.
223 (retrofit_block): Likewise.
224 * integrate.c (expand_inline_function): Don't call
225 find_loop_tree_blocks. Use expand_start_bindings_and_block, not
226 just expand_start_bindings. Use the block_map to remap old
227 NOTE_BLOCKs to new ones.
228 (integrate_decl_tree): Keep track of remapped blocks.
229 * integrate.h (struct inline_remap): Add block_map.
230 * stmt.c (expand_fixup): Don't try to retrofit_blocks. Just set
231 NOTE_BLOCK on the notes.
232 (expand_start_bindings): Rename to ...
233 (expand_start_bindings_and_block): Add parameter. Set NOTE_BLOCK.
234 (expand_end_bindings): Set NOTE_BLOCK.
235 * toplev.c (rest_of_compilation): In function-at-a-time-mode,
236 reconstruct the BLOCK tree.
237 * tree.h (expand_start_bindings): Macroize. Call ...
238 (expand_start_bindings_and_block): New function.
239
240 1999-12-16 Jakub Jelinek <jakub@redhat.com>
241
242 * config/sparc/sparc.c (print_operand): Cast fprintf arguments
243 to match the format.
244
245 1999-12-16 David S. Miller <davem@redhat.com>
246
247 * expr.c (emit_move_insn_1): Only emit clobbers if one of
248 the outputs is a SUBREG.
249 * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
250 change.
251
252 * config/sparc/sparc.c (epilogue_renumber): Add default case
253 to switch stmt.
254
255 Thu Dec 16 11:33:57 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
256
257 * toplev.c (rest_of_compilation): Run branch shortening after
258 reg-stack.
259
260 * regclass.c (loop_depth): Remove
261 (scan_one_insn): Do not handle LOOP_NOTE insns.
262 (regclass): Go through basic blocks and set loop_cost
263
264 Thu Dec 16 02:56:25 1999 Zack Weinberg <zack@bitmover.com>
265
266 * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
267
268 Thu Dec 16 10:43:35 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
269
270 * i386.md (movqi): Use "nonimmediate_operand" for output operand.
271 (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
272 (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
273
274 Thu Dec 16 02:41:26 1999 Richard Henderson (rth@cygnus.com)
275
276 * loop.c (insert_loop_mem): Ignore memory clobbers.
277
278 * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
279 to (OP A B).
280
281 Thu Dec 16 02:26:11 1999 Jeffrey A Law (law@cygnus.com)
282
283 * profile.c: Remove redundant #include "output.h".
284
285 * h8300.md (HImode preinc peephole): Fix typo.
286
287 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
288
289 * function.c (retrofit_block): Abort if we don't find a suitable insn.
290 (insert_block_after_note): Abort if we don't have a previous block.
291 Remove FN parameter.
292 * function.h: Adjust.
293
294 1999-12-15 Mark Mitchell <mark@codesourcery.com>
295
296 * builtins.c (expand_builtin_mathfn): Make sure not to expand the
297 argument more than once.
298
299 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
300
301 * stmt.c (expand_decl): Expand upper bound of a dynamic array.
302
303 1999-12-15 Jakub Jelinek <jakub@redhat.com>
304
305 * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
306
307 Wed Dec 15 16:11:55 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
308
309 * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
310 (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
311 update stack_alignment_needed.
312 (prepare_function_start): Initialize stack_alignment_needed
313 * function.h (struct function): Add field stack_alignment_needed.
314
315 Wed Dec 15 14:55:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
316
317 * caller-save.c (insert_one_insn): Returns struct insn_chain *.
318 Handle live_throughout / dead_or_set instead of live_before /
319 live_after.
320 (save_call_clobbered_regs): Get register livenessinformation from
321 chain->live_throughout.
322 (add_stored_regs): New function.
323 (insert_restore, insert_save): Add restored / saved registers to
324 dead_or_set.
325 * global.c (reg_dies): New parameter chain.
326 (reg_becomes_live): Third parameter is regs_set now.
327 Changed all callers.
328 (reg_dies): New parameter chain. Changed all callers.
329 (build_insn_chain): Set live_throughout instead of
330 live_before / live_after.
331 * reload.h (struct insn_chain): Replace members live_before /
332 live_after with live_throughout / dead_or_set.
333 * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
334 instead of live_before / live_after.
335 (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
336 (order_regs_for_reload, find_reg, finish_spills): Likewise.
337 (choose_reload_regs_init): Likewise.
338 * stupid.c (current_chain, find_clobbered_regs): Delete.
339 (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
340 instead of chain->live_before / chain->live_after.
341 (mark_hard_ref): New function.
342 (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
343
344 1999-12-15 David S. Miller <davem@redhat.com>
345
346 * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
347
348 Wed Dec 15 15:05:30 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
349
350 * flow.c (calculate_loop_depth): Make global, remove prototype,
351 rewrite to use new loop infrastructure.
352 (find_basic_block): Remove calculate_loop_depth call.
353 * toplev.c (rest_of_compilation): Call find_basic_block.
354 * output.h (calculate_loop_depth): Declare.
355
356 * flow.c (dump_flow_info): Dump loop_depth.
357 (flow_loops_nodes_find): Increase loop_depth for basic block in the
358 body.
359 (flow_loops_find): Initialize the loop_depth for each basic block.
360
361 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
362
363 * tree.c (decl_function_context): Handle virtual functions.
364
365 * tlink.c (scan_linker_output): Don't look in demangled name when
366 looking for linker output keywords.
367
368 * dwarfout.c (output_type): We can defer namespace-scope classes.
369
370 Wed Dec 15 01:23:29 1999 Jeffrey A Law (law@cygnus.com)
371
372 * regclass.c (record_reg_classes): Update comment for merging
373 register class preferences in reg->reg copies. Tighten conditions
374 for merging register class preferences in reg->reg copies.
375
376 Wed Dec 15 02:19:32 1999 David Edelsohn <edelsohn@gnu.org>
377
378 * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
379
380 1999-12-14 Geoff Keating <geoffk@cygnus.com>
381
382 * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
383 (INIT_SECTION_ASM_OP): Delete.
384 (FINI_SECTION_ASM_OP): Delete.
385 (STARTFILE_SPEC): Define to hold just crtbegin.o.
386
387 1999-12-14 Jason Merrill <jason@casey.cygnus.com>
388
389 * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
390 the abstract origin wasn't emitted.
391
392 * dwarf2out.c (class_scope_p): New fn.
393 (gen_subprogram_die): Use it.
394 (gen_variable_die): Use it. Tweak logic.
395 (gen_struct_or_union_type_die): Check context_die to determine
396 if we're function-local.
397 (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
398
399 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
400
401 * loop.c (check_dbra_loop): Can't reverse a biv that has
402 maybe_multiple set.
403
404 1999-12-14 Nick Clifton <nickc@cygnus.com>
405
406 * config/arm/arm.c: Add support for -mcpu=arm720 command line
407 switch.
408
409 Tue Dec 14 18:13:32 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
410
411 * loop.c (strength_reduce): Fix sign of giv lifetime calculation
412 for givs made from biv increments.
413
414 Tue Dec 14 08:11:27 1999 Richard Henderson <rth@cygnus.com>
415
416 * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
417 * alpha.c (override_options): Recognize -mcpu=ev67.
418 * alpha.h (CPP_CPU_EV67_SPEC): New.
419 (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
420 (EXTRA_SPECS): Update.
421
422 Tue Dec 14 08:04:28 1999 Richard Henderson <rth@cygnus.com>
423
424 * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
425 appropriate for -lang-c89 and -std=*.
426 * cppinit.c (cpp_handle_option): Likewise.
427 (new_pending_define): New, split out from cpp_handle_option.
428 * gcc.c (default_compilers): Don't define __STRICT_ANSI__
429 or enable trigraphs for -ansi/-std=*.
430
431 * ginclude/stdarg.h (__va_copy): New.
432 (va_copy): Don't define for C89.
433
434 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz <cpopetz@cygnus.com>
435
436 * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
437 for long long multiply-accumulate.
438
439 Tue Dec 14 13:51:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
440
441 * regclass.c (scan_one_insn): Set loop_cost to 1 when
442 optimizing for size.
443
444 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
445
446 * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
447 if something changed. Back out that part of yesterday's changes.
448
449 * loop.c (loop_max_reg): New static variable.
450 (loop_optimize): Initialize it. Eliminate one unnecessary call to
451 max_reg_num.
452 (scan_loop): Call reg_scan_update whenever we may have added new
453 registers, and update loop_max_reg.
454
455 Tue Dec 14 12:07:29 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
456
457 * regclass.c (record_reg_classes): Do not do the copying preferrencing
458 when source does not die.
459
460 * regclass.c (record_reg_classes): Handle INOUT operands propertly.
461
462 1999-12-14 Jakub Jelinek <jakub@redhat.com>
463
464 * config/sparc/linux64.h (TARGET_LIVE_G0,
465 TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
466 variants on Linux.
467 * config/sparc/linux.h (TARGET_LIVE_G0,
468 TARGET_BROKEN_SAVERESTORE): Likewise.
469 * config/sparc/linux-aout.h (TARGET_LIVE_G0,
470 TARGET_BROKEN_SAVERESTORE): Likewise.
471
472 * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
473 (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
474 not %g2.
475 (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
476 as sparc64 block profiling register.
477 * config/sparc/sparc.c (sparc_override_options): Allow block
478 profiling with -m32.
479 (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
480 profiling register.
481 * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
482 macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
483 * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
484
485 * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
486 for sparc64.
487 * config/sparc/sparc.h: Likewise.
488 * config/sparc/xm-sysv4-64.h: Likewise.
489 * config/float-sparc.h: Likewise.
490 * glimits.h: Likewise.
491 * longlong.h: Likewise.
492
493 * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
494 (ASM_IDENTIFY_GCC): Remove.
495
496 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
497
498 * combine.c (combine_simplify_rtx): Don't make shared rtl.
499 (simplify_logical): Likewise.
500
501 1999-12-14 Mumit Khan <khan@xraylith.wisc.edu>
502
503 * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
504 * cppfiles.c (INO_T_EQ): Likewise.
505
506 1999-12-14 Mumit Khan <khan@xraylith.wisc.edu>
507
508 * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
509 * i386/mingw32.h (LIB_SPEC): Likewise.
510 (STARTFILE_SPEC): Likewise.
511 * i386/uwin.h (LIB_SPEC): Likewise.
512 (STARTFILE_SPEC): Likewise.
513
514 * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
515 * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
516
517 Mon Dec 13 20:25:29 1999 Jeffrey A Law (law@cygnus.com)
518
519 * combine.c (combine_simplify_rtx): Fix order of checks for
520 (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
521
522 1999-12-13 Clinton Popetz <cpopetz@cygnus.com>
523
524 * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi) Backed out
525 12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
526
527 1999-12-10 Bernd Schmidt <bernds@cygnus.co.uk>
528
529 * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
530 defined.
531 * regclass.c (inv_reg_alloc_order): New array.
532 (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
533
534 * reload.h (struct insn_chain): Delete fields group_size, group_mode,
535 counted_for_groups, counted_for_nongroups. Add fields rld and
536 n_reloads.
537 * reload.c (push_secondary_reload): Don't set nongroup field of
538 new reloads.
539 (push_reload): Likewise.
540 (find_reloads): Delete code to compute nongroup fields.
541 * reload1.c (reload_insn_firstobj): New static variable.
542 (pseudos_counted, spilled_pseudos): Now of type regset_head. All
543 users changed.
544 (calculate_needs, find_tworeg_group, find_group, possible_group_p,
545 count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
546 dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
547 functions.
548 (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
549 functions.
550 (struct hard_reg_n_uses): Deleted.
551 (potential_reload_regs): Deleted.
552 (init_reload): Initialize spilled_pseudos and pseudos_counted.
553 (reload): Don't try to allocate reload registers if we already know
554 we have to make another pass. Call select_reload_regs. Free memory
555 starting with reload_firstobj when starting another pass.
556 Don't allocate spilled_pseudos.
557 (calculate_needs_all_insns): Call copy_reloads for an insn that
558 needs reloads; don't call calculate_needs.
559 (spill_cost): New static array.
560 (used_spill_regs_local): New static variable.
561 (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
562 to compute potential_reload_regs.
563 (find_reload_regs): Completely rewritten to use find_reg.
564 (allocate_reload_reg): Don't test counted_for_groups or
565 counted_for_nongroups. Lose NOERROR arg and code to give an error;
566 all cllers changed.
567 (choose_reload_regs): Add fallback code that uses the existing
568 register allocation from find_reload_regs.
569
570 Mon Dec 13 00:54:14 1999 Philippe De Muyter <phdm@macqel.be>
571
572 * flow.c (create_edge_list): Cast xmalloc return value.
573
574 Mon Dec 13 00:47:58 1999 Jeffrey A Law (law@cygnus.com)
575
576 * doprnt.c: Remove incorrect comment closure.
577
578 * cse.c: Fix a few minor whitespace goofs.
579
580 1999-12-13 Don Bowman <don@pixstream.com>
581
582 * mips/vxworks.h: Fix problem with comment termination.
583 (EXTRA_SECTIONS): Add in_sbss.
584 (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
585
586 1999-12-12 David S. Miller <davem@redhat.com>
587
588 * cse.c (struct cse_reg_info): Add hash_next member,
589 reorder rest of struct for better packing on 64-bit
590 hosts.
591 (cse_reg_info_tree): Kill.
592 (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
593 REGHASH_FN): New custom pow2 hash mechanism.
594 (NBUCKETS): Kill.
595 (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
596 use a pow2 hash table.
597 (get_cse_reg_info): Rework to use new REGHASH.
598 (new_basic_block): Likewise, use HASH_SIZE, and inline
599 free_element call.
600 (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
601 and inline free_element call.
602 (lookup_as_function, insert, flush_hash_table, invalidate,
603 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
604 invalidate_for_call, use_related_value, find_comparison_args,
605 fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
606 (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
607 get_element): Kill.
608
609 Sun Dec 12 21:31:44 1999 Jeffrey A Law (law@cygnus.com)
610
611 * cse.c (cse_basic_block): Free qty_table consistently.
612
613 1999-12-12 David S. Miller <davem@redhat.com>
614 Jakub Jelinek <jakub@redhat.com>
615
616 * config/sparc/sparc.md (movtf reg/reg split): Don't generate
617 SUBREGs by hand, gen the appropriate hard reg directly.
618 (movtf reg/mem split): Likewise and alter_subreg on destination
619 if necessary.
620 (movtf mem/reg split): Similarly.
621 (movdf_cc_sp64): Rename from hidden pattern.
622 (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
623 (movtf_cc_sp64, following split): New pattern and splitter.
624 (movdf_cc_reg_sp64): Rename from hidden pattern.
625 (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
626 TARGET_HARD_QUAD.
627 (movtf_cc_reg_sp64, following split): New pattern and splitter.
628
629 1999-12-12 Stephen L Moshier <moshier@mediaone.net>
630
631 * loop.c (load_mems): Don't hoist written floating point mem
632 if -ffloat-store.
633
634 1999-12-12 Mark Mitchell <mark@codesourcery.com>
635
636 * except.h (struct eh_queue): Add `next' pointer.
637 (struct eh_status): Make x_ehqueue a pointer.
638 (push_ehqueue): Declare.
639 (pop_ehqueue): Likewise.
640 * except.c (expand_eh_region_end): Adjust now that ehqueue is a
641 pointer.
642 (expand_fixup_region_end): Likewise.
643 (expand_leftover_cleanups): Likewise.
644 (push_ehqueue): Define.
645 (pop_ehqueue): Likewise.
646 (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
647 than doing it inline.
648 (expand_start_all_catch): Adjust now that ehqueue is a
649 pointer.
650 (mark_eh_queue): Mark all level of the queue.
651 (mark_eh_status): Adjust now that ehqueue is a
652 pointer.
653 (init_eh_for_function): Allocate ehqueue.
654 (free_eh_status): Free it.
655 * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
656 expansion for a fixup.
657
658 1999-12-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
659
660 * gthr-single.h (__gthread_active_p): Add prototype arguments.
661
662 * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
663 (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
664 __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
665 function_ptr, getpagesize, __enable_execute_stack,
666 __enable_execute_stack, __clear_insn_cache,
667 __enable_execute_stack, __do_global_dtors, __do_global_ctors,
668 _cleanup, _exit, __default_terminate, __terminate_func,
669 __terminate, __empty, __throw, new_eh_context,
670 eh_context_initialize, eh_context_static, eh_context_specific,
671 get_eh_context, __get_eh_context, __get_eh_info,
672 init_reg_size_table, eh_threads_initialize,
673 __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
674 __unwinding_cleanup, throw_helper, __throw, __rethrow,
675 __pure_virtual): Add prototype arguments.
676 (__bb_exit_func): Cast a sizeof to long when comparing against one.
677 Cast a signed value to unsigned long when comparing against one.
678 (new_eh_context): Wrap in _GTHREADS macro.
679 (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
680 declaration.
681 (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
682 (throw_helper): Initialize variables `handler_p' and `pc_p'.
683
684 1999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
685
686 * combine.c (record_promoted_value): Remove unused variable
687 `links2'.
688
689 * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
690
691 * global.c (record_conflicts): Likewise for `j'.
692
693 * genoutput.c (output_insn_data): Don't unnecessarily cast away
694 const-ness.
695
696 1999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
697
698 * i386-protos.h (output_387_binary_op, output_fix_trunc,
699 output_fp_compare): Constify a char*.
700
701 * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
702 static prototypes.
703 (override_options, ix86_comp_type_attributes, print_operand,
704 output_387_binary_op, output_fix_trunc, output_fp_compare):
705 Constify a char*.
706 (ix86_sched_reorder): Mark parameter `clock_var' with
707 ATTRIBUTE_UNUSED.
708
709 * i386.h (DEBUG_PRINT_REG): Constify a char*.
710
711 Fri Dec 10 16:12:13 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
712
713 * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
714 operand, for use in the Java front-end.
715
716 1999-12-10 Ben Collins <bcollins@debian.org>
717
718 * configure.in: Fix typo for "-64" in 64bit as check.
719 * configure: Rebuilt.
720
721 1999-12-10 Jakub Jelinek <jakub@redhat.com>
722
723 * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
724 appropriate.
725
726 1999-12-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
727
728 * c-parse.in (string): With -Wtraditional, warn if ANSI string
729 concatenation is utilized.
730
731 * invoke.texi (-Wtraditional): Document it.
732
733 1999-12-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
734
735 * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
736 Cast a ptrdiff_t to long and pass it to printf with %ld.
737
738 1999-12-10 Geoff Keating <geoffk@cygnus.com>
739
740 * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
741 68881, we have no 68881 registers at all.
742 (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
743 value in a 68881 register if it is available.
744
745 1999-12-10 Clinton Popetz <cpopetz@cygnus.com>
746
747 * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
748 for long long multiply-accumulate.
749
750 1999-12-10 Bernd Schmidt <bernds@cygnus.co.uk>
751
752 * loop.c (insert_loop_mem): Undo last change.
753
754 1999-12-10 David S. Miller <davem@redhat.com>
755
756 * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
757 New functions.
758 * config/sparc/sparc-protos.h: Add them.
759 * config/sparc/sparc.h: Add them to PREDICATE_CODES.
760 (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
761 constraints which use those helpers.
762 (EXTRA_CONSTRAINT): Use this new macro.
763 * md.texi: Update sparc target constraints documentation.
764 * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
765 movsf_const_high, movsf_const_lo, movsf_insn): Delete.
766 (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
767 movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
768 (movsf high/lo_sum split): Rework for new patterns.
769 (movsf expander): Allow storing fp_zero to memory if ! live_g0.
770
771 1999-12-09 Gavin Romig-Koch <gavin@cetus.cygnus.com>
772
773 * c-common.c (c_common_nodes_and_builtins):
774 Create __builtin_ptrdiff_t and __builtin_size_t.
775
776 Thu Dec 9 18:05:48 1999 Jeffrey A Law (law@cygnus.com)
777
778 * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
779
780 Fri Dec 10 00:53:10 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
781
782 * regclass.c (globalize_reg): Re-instate test that allows
783 fixed registers to be declared as a variable even after functions
784 are defined.
785
786 Fri Dec 10 00:52:13 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
787
788 * i386.md (cpu attribute): Add "athlon".
789 (athlon_decode): New attribute.
790 (Athlon scheduling units definitions): New.
791 (fcmp and shld patterns): Set athlon_decode to "vector".
792 * i386.c (athlon_cost): New.
793 (m_ATHLON): New.
794 (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
795 x86_use_sahf): Set for Athlon.
796 (x86_use_fiop): Unset for Athlon.
797 (override_options): Define Athlon alignments and "athlon" name.
798 (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
799 * i386.h (TARGET_ATHLON): New.
800 (enum processor_type): Add PROCESSOR_ATHLON.
801 (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
802 for CPU_DEFAULT==5
803 (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
804
805 1999-12-09 Andreas Jaeger <aj@suse.de>
806
807 * loop.c (record_biv): Declare parameter as int.
808
809 * config/i386/i386-protos.h: Declare long_memory_operand.
810
811 1999-12-09 Mark Mitchell <mark@codesourcery.com>
812
813 * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
814 EXPR_WITH_FILE_LOCATION.
815
816 Thu Dec 9 11:36:24 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
817
818 * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
819 in expander.
820
821 * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
822
823 * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
824 updating code.
825
826 1999-12-09 Jakub Jelinek <jakub@redhat.com>
827
828 * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
829 default on linux64 again.
830 * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
831 models for multilibing.
832 * genmultilib: Accept | as alternative separator within a set in
833 MULTILIB_OPTIONS.
834
835 * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
836
837 * calls.c (precompute_arguments): Make sure initial_value contains
838 value pseudo which CSE expects.
839 * cse.c (struct set): New entry orig_src.
840 (cse_insn): Set it early on entry, use it for libcall EQUIV note
841 replacement.
842
843 Wed Dec 8 22:24:15 1999 Richard Henderson <rth@cygnus.com>
844
845 * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
846
847 1999-12-08 Bernd Schmidt <bernds@cygnus.co.uk>
848
849 * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
850
851 1999-12-08 Jakub Jelinek <jakub@redhat.com>
852
853 * config/sparc/sparc.c (ultra_cmove_results_ready_p,
854 ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
855
856 * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
857 if TARGET_ARCH32.
858
859 * longlong.h: Merge in changes from glibc.
860 Also don't clobber %g2 register in 32bit SPARC assembly, so that
861 -mno-app-regs libgcc can be compiled.
862 * libgcc2.c: Add defines so that the updated longlong.h
863 can be used in libgcc2.a. Also, make sure on most architectures
864 (at least on all which have optimized code in longlong.h defined
865 for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
866
867 1999-12-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
868
869 * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
870 `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
871 * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
872 is GNU ld.
873 * configure: Rebuilt.
874
875 Wed Dec 8 03:45:40 1999 Richard Henderson <rth@cygnus.com>
876
877 * alpha.c (secondary_reload_class): For !BWX, sub-simode
878 outputs require a register.
879
880 1999-12-08 Brendan Kehoe <brendan@cygnus.com>
881
882 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
883 _df_to_usi. Required by some targets, so US_SOFTWARE_GOFAST calls to
884 functions like dptoul will be resolved.
885 (libgcc2.a): Make sure that the object files from DPBIT are named
886 differently (prefix `_dp') from those that would be coming from
887 FPBIT.
888
889 1999-12-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>, Jakub Jelinek <jakub@redhat.com>
890
891 * configure.in: When target is sparc* and tm_file contains 64,
892 test for 64bit support in assembler. If not supported, remove
893 sparc/t-sol2-64 from target-dependent Makefile fragments.
894 (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
895 (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
896 (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
897 * acconfig.h (AS_SPARC64_FLAG): Added.
898 * configure, config.in: Rebuilt.
899 * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
900 support. Use AS_SPARC64_FLAG.
901
902 1999-12-07 Jakub Jelinek <jakub@redhat.com>
903
904 * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
905 suitable for holding OFmode values so that gcc works with complex
906 quad long doubles.
907 (hard_64bit_mode_classes): Likewise.
908
909 * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
910 so that it is actually matched.
911 (sethi_di_medlow): Likewise.
912
913 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
914 as legitimate constant if -mvis.
915 * config/sparc/sparc.md (movtf): Likewise.
916 (clear_sf): Use const_double_operand.
917 (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
918
919 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
920 * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
921 * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
922 routines, _Qp_* cannot be handled like that now.
923 (INIT_TARGET_OPTABS): Likewise.
924 * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
925 (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
926 sparc_emit_float_lib_cmp if ARCH64 and soft float.
927 (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
928 floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
929 divtf3, sqrttf3): New expanders.
930 (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
931 floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
932 addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
933 non-_hq patterns.
934
935 * configure.in (sparc64-*-linux*): Use posix threads if enabled.
936 * configure: Rebuilt.
937 * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
938 -mcpu is given and we're doing 64bit compiles.
939
940 Tue Dec 7 19:22:06 1999 Richard Henderson <rth@cygnus.com>
941
942 * loop.h (struct induction): Add multi_insn_incr.
943 * loop.c (basic_induction_var): New multi_insn_incr argument.
944 Set it if we search back through previous insns for the biv.
945 (record_biv): New multi_insn_incr argument; fill in struct induction.
946 (strength_reduce): Discard an iv with multiple bivs, any of
947 which require multiple insns to increment.
948
949 1999-12-07 Martin v. Löwis <loewis@informatik.hu-berlin.de>
950
951 * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
952 documentation.
953
954 1999-12-06 David S. Miller <davem@redhat.com>
955
956 * combine.c (check_promoted_subreg): Do not conditionalize this upon
957 PROMOTE_FUNCTION_RETURN.
958
959 Mon Dec 6 15:12:14 1999 Jim Wilson <wilson@cygnus.com>
960
961 * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
962 and handle REG_UNUSED note on insn.
963
964 * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask. Set
965 inner_mask instead of mask.
966
967 1999-12-06 Brendan Kehoe <brendan@cygnus.com>
968
969 * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
970 zero if there was an error.
971
972 1999-12-06 Jakub Jelinek <jakub@redhat.com>
973
974 * config/sparc/sparc.md (return_losum_di): Fix typo in asm
975 output string.
976
977 * longlong.h: Fix clobbers in SPARC asm statements.
978
979 * config/sparc/sparc.c (input_operand): Allow HImode and QImode
980 valid sethi operations when TARGET_ARCH64.
981
982 * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
983 always use move_by_pieces to avoid infinite recursion.
984 (restore_fixed_argument_area): Likewise.
985
986 * combine.c (check_promoted_subreg, record_promoted_value): New
987 functions.
988 (combine_instructions): Use them to retain nonzero and sign bit
989 information after SUBREGs are eliminated by optimizations in
990 this pass if PROMOTE_FUNCTION_RETURN.
991
992 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
993 .register declaration. Don't use variables with __ prefixes.
994
995 Mon Dec 6 12:24:52 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
996
997 * fold-const.c (optimize_bit_field_compare): Only use one mode
998 for both RHS and LHS in non-constant case.
999
1000 1999-12-06 Nathan Sidwell <nathan@acm.org>
1001
1002 * frame.c (start_fde_sort): Only allocate erratic array, if
1003 linear one was allocated. Return allocated flag.
1004 (fde_insert): Only insert, if there's a valid array.
1005 (fde_end_sort): Split, sort and merge if linear and erratic
1006 arrays exist, else just sort linear one.
1007 (search_fdes): New function. Linear search through original fde
1008 structure.
1009 (frame_init): Permit multiple initializations. Cope with
1010 memory shortages.
1011 (find_fde): Fallback on linear search, if failed to sort array.
1012 (__deregister_frame_info): Only free sorted array, if we
1013 allocated it.
1014
1015 1999-12-06 Jakub Jelinek <jakub@redhat.com>
1016
1017 * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
1018
1019 1999-12-05 Jakub Jelinek <jakub@redhat.com>
1020
1021 * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
1022
1023 1999-12-05 Mark Mitchell <mark@codesourcery.com>
1024
1025 * tree.h (special_function_p): Declare.
1026 * calls.c (special_function_p): Make it global. Don't take `name'
1027 as a parameter. Fix typo in 1999-11-28 change.
1028 (expand_cal): Adjust.
1029
1030 1999-12-04 Mark Mitchell <mark@codesourcery.com>
1031
1032 * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
1033 * tree.h (EXPR_WFL_FILENAME): Define in terms of
1034 EXPR_WFL_FILENAME_NODE.
1035 (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
1036 the TREE_CHAIN.
1037 * print-tree.c (print_note): Print TREE_PRIVATE and
1038 TREE_PROTECTED.
1039
1040 * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
1041 the original die cannot be found.
1042
1043 * varray.h (varray_head_tag): Add elements_used.
1044 (VARRAY_PUSH): New macro.
1045 (VARRAY_POP): Likewise.
1046 (VARRAY_TOP): Likewise.
1047 Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
1048 types.
1049 * varray.c (varray_init): Initialize elements_used.
1050 * Makefile.in (BASIC_BLOCK_H): Add varray.h.
1051 (INTEGRATE_H): New variable.
1052 (integrate.o): Depend on INTEGRATE_H.
1053 (unroll.o): Likewise.
1054
1055 * function.h (insert_block_after_note): Declare.
1056 * function.c (insert_block_after_note): Split out from ...
1057 (retrofit_block): ... here.
1058
1059 * stmt.c (expand_fixup): Fix typo in comment.
1060
1061 Sat Dec 4 14:13:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
1062
1063 * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
1064 (optimize_reg_copy_1): Remove REG_N_REFS updating code.
1065 (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
1066 (regmove_optimize, fixup_match_1): Likewise.
1067
1068 1999-12-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1069
1070 * flow.c (flow_loops_dump): Add missing argument when calling
1071 flow_loop_nested_p.
1072
1073 1999-12-04 Geoffrey Keating <geoffk@cygnus.com>
1074 Greg McGary <gkm@gnu.org>
1075
1076 * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
1077 (init_attributes): Add A_NO_LIMIT_STACK.
1078 (decl_attributes): Handle A_NO_LIMIT_STACK.
1079 * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
1080 * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
1081 Handle stack bounds checking.
1082 * flags.h (flag_stack_check): Use the word 'probe' rather than
1083 'check', because the flag doesn't actually cause any checking to
1084 be done.
1085 * function.c (expand_function_start): Set
1086 current_function_limit_stack.
1087 * function.h (struct function): Add limit_stack.
1088 (current_function_limit_stack): Define.
1089 * invoke.texi (Code Gen Options): Document new options.
1090 * rtl.h: Declare stack_limit_rtx.
1091 * toplev.c (stack_limit_rtx): New variable.
1092 (decode_f_option): Handle new options -fstack-limit-register=REG,
1093 -fstack-limit-symbol=IDENT, -fno-stack-limit.
1094 (main): Add stack_limit_rtx as GC root.
1095 * tree.h (DECL_NO_LIMIT_STACK): New macro.
1096 (struct tree_decl): New member no_limit_stack.
1097
1098 * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
1099 stack_limit_rtx.
1100 * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
1101 (conditional_trap+1): Get new mnemonic correct.
1102 (conditional_trap+2): New pattern for DImode traps.
1103
1104 * config/m68k/m68k.c (output_function_prologue): Handle
1105 stack_limit_rtx.
1106 * config/m68k/m68k.md (trap): New insn.
1107 (conditional_trap): New insn.
1108 * md.texi (Standard Names): Document `trap' and
1109 `conditional_trap'.
1110 * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
1111 so a cc0 setter doesn't get emitted at some random place in the
1112 function.
1113
1114 * config/i960/i960.md (trap): New insn.
1115 (conditional_trap): New expander.
1116 (conditional_trap+1, conditional_trap+2): New insns for signed
1117 and unsigned cases.
1118 * config/i960/i960.c (i960_function_prologue): Use
1119 STARTING_FRAME_OFFSET. Handle stack_limit_rtx.
1120
1121 Thu Dec 2 21:22:45 1999 Greg McGary <gkm@gnu.org>
1122 Geoffrey Keating <geoffk@cygnus.com>
1123
1124 * flags.h (warn_padded, warn_packed): Add global var decls.
1125 * toplev.c (warn_padded, warn_packed): Add global var defns.
1126 (W_options): Add warnings `-Wpacked' and `-Wpadded'.
1127 * stor-layout.c (layout_record): Add local variable `type'
1128 to hold often-used TREE_TYPE (field). Add local variable
1129 `unpacked_align' to hold alignment that would be in force
1130 if no `packed' attribute were present. Warn if `packed' attribute
1131 is unnecessary, or even harmful. Warn when gcc inserts padding
1132 to satisfy alignment requirements of members. Use NULL_TREE
1133 when checking whether var_size is set.
1134 * invoke.texi: Document new flags.
1135
1136 1999-12-03 Nathan Sidwell <nathan@acm.org>
1137
1138 * frame.c (fde_split): Reimplement to avoid variable sized array.
1139
1140 Thu Dec 2 18:59:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
1141
1142 * combine.c (try_combine): Before fixing up LOG_LINKS for the
1143 i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
1144
1145 1999-12-02 Gavin Romig-Koch <gavin@cygnus.com>
1146
1147 * invoke.texi: Document the mips option -mno-crt0
1148
1149 1999-12-02 Mike Karr <mkarr@mathworks.com>
1150
1151 * cccp.c (argdata): Added free_ptr member.
1152 (macroexpand): Initialize free_ptr of each argument. When an
1153 argument's buffers are freed, if the argument's free_ptr corresponds
1154 to a buffer on the input stack, then return the free_ptr to that stack
1155 frame, otherwise, free it.
1156 (macarg): If an argument begins and ends on the same input stack level,
1157 then transfer the free_ptr of that buffer to the argument in case
1158 the stack is popped during the processing of a subsequent argument.
1159
1160 1999-12-02 Bernd Schmidt <bernds@cygnus.co.uk>
1161
1162 * loop.c (note_reg_stored): New function.
1163 (struct note_reg_stored_arg): New structure.
1164 (try_copy_prop): Change to be more conservative; only replace within
1165 one extended basic block and stop replacing if a store to the
1166 replacement reg is seen.
1167
1168 1999-12-02 Nick Clifton <nickc@cygnus.com>
1169
1170 * config/fp-bit.c: Initialise all fields of the NAN
1171 constants.
1172
1173 * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
1174 to HANDLE_PRAGMA.
1175
1176 Wed Dec 1 18:16:38 1999 Jan Hubicka <hubicka@freesoft.cz>
1177
1178 * i386.md (extend?f?f2): Force the input into a register, not
1179 the output.
1180
1181 1999-12-01 Jakub Jelinek <jakub@redhat.com>
1182
1183 * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
1184 regclass' sake.
1185 (movdf_const_intreg_sp32): Likewise. Prefer the memory load
1186 alternative because setting up 64bit constant is usually costly,
1187 especially when reload is in progress or completed.
1188 (movdf_const_intreg_sp64): Likewise.
1189 (movdf_const_intreg split): Fix building up constants when
1190 HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
1191
1192 Wed Dec 1 16:51:22 1999 Jeffrey A Law (law@cygnus.com)
1193
1194 * combine.c (if_then_else_cond): Use const_true_rtx instead of
1195 const1_rtx for return values in EQ/NE comparison against (const_int 0)
1196 case.
1197
1198 * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
1199 (asm_file_start): Emit .am33 into assembly file when compiling for
1200 the AM33.
1201 (print_operand_address): Handle POST_INC addresses.
1202 (can_use_return_insn, initial_offset): Check AM33 registers too.
1203 (expand_prologue): Check & save AM33 registers too.
1204 (expand_epilogue): Similarly.
1205 (secondary_reload_class): Handle AM33 specific secondary reloads.
1206 (output_tst): Emit efficient code for the AM33 too.
1207 * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
1208 (TARGET_SWITCHES): Add -mam33 switch.
1209 (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
1210 (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
1211 (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
1212 (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
1213 (enum reg_class, REG_CLASS_NAMES): Likewise.
1214 (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
1215 (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
1216 (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
1217 (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
1218 (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
1219 (HAVE_POST_INCREMENT): Define.
1220 (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
1221 (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
1222 * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
1223 (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
1224 (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
1225 (zero_extend to SI from QI/HI): Likewise.
1226 (sign_extend to SI from QI/HI): Likewise.
1227 (mulsidi3, umulsidi3): New patterns for the AM33.
1228 (tstsi with zero extension from QI/HI): Add AM33 variants.
1229 (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
1230 (return_internal_regs, store_movm): Handle new AM33 registers.
1231 * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
1232 (LIBGCC, INSTALL_LIBGCC): Likewise.
1233 * invoke.texi: Document new flags.
1234
1235 Fri Nov 26 10:59:12 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
1236
1237 * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
1238 (addsi3_carry): Likewise.
1239 (sbbsi3_cc): Add "binary_operator_ok" to the condition.
1240 (sbbsi3_carry): Likewise.
1241 (mulsi3): Rewrite to expander, ensure that only one operand is memory.
1242 (mulhi3): Likewise.
1243 (test?i_1): Ensure that only one operand is memory.
1244 (conditional move patterns): likewise.
1245 (shift and rotate patterns): Rewrite to expander, add
1246 "binary_operator_ok" to the condition.
1247
1248 * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
1249 * i386.h (procesor_costs): Add movzbl_load field.
1250 (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
1251 non-Q registers, accept DImode registers anywhere.
1252 (Q_CLASS_P): New.
1253 (MEMORY_MOVE_COST): Calculate QImode moves correctly.
1254 * i386.c (*_cost): Set value for movxbl_load field.
1255
1256 * (addsi): New add to lea splitter.
1257 (ashlsi): Likewise.
1258 (lea to add/shift peep2): New.
1259
1260 1999-12-01 Mark Salter <msalter@cygnus.com>
1261
1262 * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
1263 * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
1264 * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
1265
1266 Tue Nov 30 15:20:52 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
1267
1268 * i386.c (ix86_expand_move): Never add clobbers to move patterns.
1269 * i386.md (movsi_xor): New.
1270 (movsi_or): New.
1271 (movsi_1, movhi_1, movqi_1): Remove.
1272 (movsi_2): Rename to movsi_1.
1273 (movhi_2): Rename to movhi_1.
1274 (movqi_2): Rename to movqi_1.
1275 (movdi_1): Remove; remove splitter.
1276 (movdi_2): Rename to movdi_1.
1277 (divmodsi4 splitter): Do not emit clobbers for move patterns.
1278 (long move peep2): Do not create QI or HI mode mov0s
1279 (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
1280
1281 * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
1282 rewrite splitters.
1283
1284 * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
1285 (abs?f2_if): Likewise.
1286
1287 1999-11-30 Alex Samuel <samuel@codesourcery.com>
1288
1289 * ggc.h (ggc_test_and_set_mark): New macro.
1290 (ggc_mark_rtx): Use ggc_test_and_set_mark.
1291 (ggc_mark_tree): Likewise.
1292 (ggc_mark_rtvec): Likewise.
1293 * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
1294
1295 1999-11-30 Jason Merrill <jason@casey.cygnus.com>
1296
1297 * dwarf2out.c (scope_die_for): Only handle types. Only search for
1298 containing types.
1299 (decl_scope_table): Just an array of trees now.
1300 (push_decl_scope): Simplify.
1301 (dwarf2out_init): Adjust.
1302 (local_scope_p): New fn.
1303 (gen_inlined_enumeration_type_die): Don't call scope_die_for.
1304 (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
1305 (gen_typedef_die): Likewise.
1306 (gen_lexical_block_die): Don't call push/pop_decl_scope.
1307 (gen_inlined_subroutine_die): Likewise.
1308 (gen_abstract_function): Set current_function_decl temporarily.
1309 (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
1310 Handle block extern declarations. Don't call push/pop_decl_scope.
1311 (gen_decl_die): Fix logic for block externs.
1312
1313 1999-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1314
1315 * calls.c (special_function_p): Remove `realloc' and add `strdup'
1316 to the list of functions which have attribute malloc by default.
1317
1318 1999-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1319
1320 * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
1321 integer constant does not match the traditional type, limit the
1322 warnings to cases where the base of the type is ten.
1323
1324 * invoke.texi (-Wtraditional): Document it.
1325
1326 Tue Nov 30 15:18:35 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1327
1328 * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
1329 * rs6000.md: Only access a CONST_INT with INTVAL
1330
1331 Tue Nov 30 14:21:00 1999 Richard Henderson <rth@cygnus.com>
1332
1333 * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
1334 (compute_nearerout): Likewise.
1335 * ggc-page.c (ggc_page_print_statistics): Explicitly cast
1336 size_t to unsigned long for formatting.
1337
1338 1999-11-30 Jakub Jelinek <jakub@redhat.com>
1339
1340 * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
1341 Allow the user to override call-used/fixed state of %g2-5
1342 registers from the command line (with the exception of %g4 for
1343 embedded model).
1344 (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
1345 there is a higher chance of having a leaf function.
1346 (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
1347 for ARCH64 which has %ccr register.
1348 * config/sparc/sparc.md (return_losum_si, return_losum_di): New
1349 patterns.
1350 * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
1351 insn accept into delay slot any insn which does not use %[ol]
1352 registers. Accept some LO_SUM and shift left by 1 for the normal
1353 restore case.
1354 (output_function_epilogue): Likewise.
1355 (epilogue_renumber): Added argument which inhibits any renumbering
1356 and just tests if the rtx does not use any %[ol] registers.
1357 (output_return): Reflect above change.
1358
1359 1999-11-30 Jakub Jelinek <jakub@redhat.com>
1360
1361 * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
1362 aggregate passing for sizes <= 16 bytes.
1363
1364 1999-11-30 Bernd Schmidt <bernds@cygnus.co.uk>
1365
1366 * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
1367 * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
1368 * reload.c (find_dummy_reload): Likewise.
1369 (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
1370 * reload1.c (reload_as_needed): Likewise.
1371 * stupid.c (stupid_find_reg): Likewise.
1372 * tm.texi (Obsolete Register Macros): Delete section.
1373 * gmicro.h: Remove all traces of the two macros.
1374 * i386.h: Likewise.
1375 * m88k.h: Likewise.
1376 * mips.h: Likewise.
1377
1378 1999-11-30 Brendan Kehoe <brendan@cygnus.com>
1379
1380 * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
1381 (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
1382 (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
1383 * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
1384 units for the sparclite86x chip.
1385 (flush): Revert October 14th change; add SImode specifically.
1386 (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
1387 * invoke.texi: Document it.
1388
1389 Tue Nov 30 14:58:14 1999 Nick Clifton <nickc@cygnus.com>
1390
1391 * config/mn10200/mn10200.h (PREDICATE_CODES): Add
1392 psimode_truncation_operand.
1393
1394 * config/mn10200/mn10200.c (psimode_truncation_operand): New
1395 function. Return true if the operand is either a MEM valid
1396 for a PSImode address or not a MEM at all.
1397
1398 * config/mn10200/mn10200.md (truncsipsi2): Use
1399 psimode_truncation_operand.
1400
1401 1999-11-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1402
1403 * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
1404 (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
1405 (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
1406 (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
1407 (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
1408 (flow_loop_level_compute, low_loops_level_compute): Likewise.
1409 (flow_loops_find, flow_loop_outside_edge_p): Likewise.
1410 * basic-block.h: Protect from multiple inclusion.
1411 (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
1412 (struct loops, struct loop): Define structures.
1413 * sbitmap.c (sbitmap_a_subset_b_p): New function.
1414 * sbitmap.h: Protect from multiple inclusion.
1415 (sbitmap_a_subset_b_p): Add prototype.
1416 * Makefile.in (LOOP_H): New macro.
1417 (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
1418
1419 Tue Nov 30 01:34:47 1999 Philippe De Muyter <phdm@macqel.be>
1420
1421 * cppinit.c (CAT): The argument list of this macro may not contain
1422 spaces !
1423
1424 1999-11-29 David S. Miller <davem@redhat.com>
1425
1426 Move quantity tables and register equivalence chains into
1427 per-qty and per-register structure arrays respectively.
1428 * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
1429 qty_const_insn, qty_comparison_code, qty_comparison_const,
1430 qty_comparison_qty): Delete, replace with...
1431 (qty_table): this structure table.
1432 (reg_next_eqv, reg_prev_eqv): Delete, replace with...
1433 (reg_eqv_table): this structure table.
1434 (make_new_qty): Add argument MODE. Caller updated.
1435 Update to use qty_table and reg_eqv_table.
1436 (make_regs_eqv, delete_reg_equiv, insert_regs,
1437 insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
1438 fold_rtx, equiv_constant, record_jump_cond, cse_insn,
1439 cse_process_notes, cse_main, cse_basic_block): Likewise.
1440
1441 Mon Nov 29 16:56:42 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1442
1443 * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
1444 operation if C is negative.
1445 (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
1446 (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
1447 law for some divisions if constant is negative and change other
1448 divisions to the opposite rounding.
1449
1450 * expr.c (store_constructor_field): If bit position is not multiple
1451 of alignment of TARGET's mode, use BLKmode.
1452
1453 * expr.c (expand_expr_unaligned): Add more code from full case
1454 that is needed when OP0 is in a register.
1455
1456 Mon Nov 29 18:09:39 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
1457
1458 * dwarfout.c (field_byte_offset): Size can be zero if there was
1459 an error.
1460
1461 1999-11-29 Bernd Schmidt <bernds@cygnus.co.uk>
1462
1463 * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
1464 (associate_trees): Delete unused var TEM.
1465 (extract_muldiv): Delete unused var CANCEL_P.
1466
1467 * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
1468 (target_isinf, target_isnan, target_negative): Add return types to
1469 function definitions.
1470
1471 1999-11-29 Bruce Korb <autogen@linuxbox.com>
1472
1473 * fixinc/fixincl.c(process): don't skip GLIBC files any more.
1474 * fixinc/hackshell.tpl: ditto
1475 * fixinc/fixtests.c(double_slash_test): more C++ header testing
1476 * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
1477
1478 1999-11-29 Bernd Schmidt <bernds@cygnus.co.uk>
1479
1480 * reload.c (push_reload): When looking for a register to put into
1481 reg_rtx, make sure all hard regs in a multi-reg register are in the
1482 right class and nonfixed.
1483
1484 * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
1485 pending_read_insns, pending_write_insns, pending_read_mems,
1486 pending_write_mems, pending_list_length, last_pending_memory_flush,
1487 last_function_call, sched_before_next_call): Move static variables
1488 into a structure.
1489 (bb_ prefixed versions): Replace with single array bb_deps.
1490 (struct deps): New structure.
1491 (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
1492 sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
1493 argument of type "struct deps *"; use that instead of global
1494 variables. All callers changed.
1495 (init_rgn_data_dependencies): Delete function.
1496 (init_rtx_vector): Delete function.
1497 (init_deps): New function.
1498
1499 (free_pending_lists): Simplify, we always use the bb_deps array even
1500 if only one basic block.
1501 (compute_block_backward_dependences): Likewise.
1502 (schedule_region): Likewise.
1503
1504 (propagate_deps): New function, broken out of
1505 compute_block_backward_dependences.
1506 (compute_block_backward_dependences): Use it.
1507
1508 * alpha.md: Delete useless patterns that tried to work around
1509 register elimination problems.
1510
1511 * unroll.c (loop_iterations): Don't abort if iteration variable
1512 was made by loop.
1513
1514 From Joern Rennecke:
1515 * reload1.c (reloads_conflict): Reverse test comparing operand
1516 numbers when testing for conflict between output/outaddr reloads.
1517
1518 1999-11-29 David S. Miller <davem@redhat.com>
1519
1520 * config/sparc/sparc.c (init_cumulative_args): Fix type of third
1521 arg.
1522 * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
1523
1524 1999-11-28 Robert Lipe <robertl@cygnus.com>
1525
1526 * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
1527 table from .fini into .dtor.
1528
1529 1999-11-28 Anthony Green <green@cygnus.com>
1530
1531 * tree.h (struct tree_decl): Add malloc_flag.
1532 (DECL_IS_MALLOC): Define.
1533 * c-common.c (attrs): Add A_MALLOC attribute.
1534 (init_attributes): Add this attribute to the table.
1535 (decl_attributes): Handle malloc attribute.
1536 * calls.c (special_function_p): Check for the malloc attribute.
1537 * extend.texi (Function Attributes): Document malloc attribute.
1538
1539 Sun Nov 28 13:21:00 1999 Jeffrey A Law (law@cygnus.com)
1540
1541 * pa.md (reload shift-add patterns): Remove.
1542
1543 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1544
1545 * reorg.c (dbr_schedule) Print more statistics. Corrected
1546 problem when printing info when 3 delay slots are filled.
1547
1548 1999-11-28 Jakub Jelinek <jakub@redhat.com>
1549
1550 * combine.c (setup_incoming_promotions): Pass an outgoing
1551 regno to FUNCTION_ARG_REGNO_P which it expects.
1552
1553 1999-11-28 Andreas Jaeger <aj@suse.de>
1554
1555 * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
1556
1557 Sun Nov 28 00:48:15 1999 Philippe De Muyter <phdm@macqel.be>
1558
1559 * cccp.c (do_include): Avoid initialization of automatic variable.
1560
1561 * integrate.c (mark_stores): Function definition made void, to match
1562 previous declaration.
1563 * regclass.c (dump_regclass): Ditto.
1564 * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
1565
1566 Sat Nov 27 08:38:26 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1567
1568 * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
1569 known to be multiple of divisor.
1570
1571 * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
1572
1573 * combine.c (try_combine): Add code to try to merge a set of a
1574 two-word pseudo to a constant with a setting of one of those words
1575 to a constant.
1576
1577 * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
1578 (split_tree): Completely rework to make more general.
1579 (make_range, fold): Call negate_expr.
1580 (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
1581 (fold, associate): Call new split_tree and associate_trees.
1582 (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
1583
1584 1999-11-26 Bernd Schmidt <bernds@cygnus.co.uk>
1585
1586 * loop.c (try_copy_prop): Avoid GNU C extension.
1587
1588 1999-11-25 Mark Mitchell <mark@codesourcery.com>
1589
1590 * except.c (init_eh_for_function): Still zero eh_return_context,
1591 eh_return_stack_adjust, and eh_return_handler.
1592
1593 * except.h (eh_status): Adjust documentation for x_protect_list.
1594 (begin_protect_partials): New function.
1595 * except.c (enqueue_eh_entry): Fix formatting.
1596 (get_first_handler): Add consistency check.
1597 (add_partial_entry): Adjust usage of protect_list.
1598 (emit_cleanup_handler): Save and restore ehqueue.
1599 (expand_start_all_catch): Add comment.
1600 (begin_protect_partials): New function.
1601 (end_protect_partials): Adjust usage of protect_list.
1602 (init_eh_for_function): Use xcalloc.
1603
1604 1999-11-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1605
1606 * c-common.c (check_format_info): Don't call a variadic function
1607 with a non-literal format string.
1608
1609 * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
1610
1611 * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
1612 pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
1613 Likewise.
1614
1615 * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
1616 Likewise.
1617
1618 * collect2.c (collect_wait): Likewise.
1619
1620 * dbxout.c (dbxout_type): Likewise.
1621
1622 * gcc.c (do_spec_1): Likewise.
1623
1624 * genemit.c (gen_insn, gen_expand): Likewise.
1625
1626 * genrecog.c (write_switch, write_subroutine): Likewise.
1627
1628 * mips-tfile.c (catch_signal, botch): Likewise.
1629
1630 * print-rtl.c (print_rtx): Likewise.
1631
1632 * toplev.c (default_print_error_function, report_error_function,
1633 _fatal_insn): Likewise.
1634
1635 1999-11-25 Mark Mitchell <mark@codesourcery.com>
1636
1637 * tree.c (unsave_expr_now): Handle NULL_TREE as input.
1638
1639 Wed Nov 24 17:08:09 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
1640
1641 * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
1642 operations when needed.
1643 * i386.md (fop_?f_comm): New.
1644 (fop_?f_1): Do not accept commutative operands.
1645
1646 1999-11-25 Andreas Jaeger <aj@suse.de>
1647
1648 * config/mips/mips.md (casesi_internal): Add missing brace.
1649
1650 1999-11-25 Jason Merrill <jason@casey.cygnus.com>
1651
1652 * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
1653 (splice_child_die): Handle moving a child DIE from the declaration
1654 DIE of a class to its specification.
1655 (gen_struct_or_union_type_die): Use 'complete' consistently.
1656 (gen_decl_die): Generate the virtual context DIE first.
1657 Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
1658
1659 1999-11-24 Gavin Romig-Koch <gavin@cygnus.com>
1660
1661 * config/mips/mips.md (call_value_multiple_interanal1): New.
1662
1663 1999-11-24 Jason Merrill <jason@casey.cygnus.com>
1664
1665 * dwarf2out.c (free_AT, free_die): New fns.
1666 (remove_children): Call them.
1667 (output_line_info): Disable removal of duplicate notes.
1668
1669 Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
1670 * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
1671 means pretend the type isn't defined.
1672 Don't defer emitting types.
1673 (gen_type_die_for_member): New fn.
1674 (gen_decl_die): Call it.
1675 (splice_child_die): New fn.
1676 (gen_member_die): Call it rather than generate duplicate dies.
1677
1678 Defer emitting information for the abstract instance of an inline
1679 until we either inline it or emit an out-of-line copy.
1680 * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
1681 from output_inline_function if DECL_ABSTRACT is also set.
1682 (block_ultimate_origin): Likewise.
1683 (gen_abstract_function): New fn.
1684 (gen_decl_die, gen_inlined_subroutine_die): Call it.
1685 (gen_subprogram_die): An abstract instance is not a declaration
1686 just because it doesn't match current_function_decl. Don't abort
1687 because DECL_DEFER_OUTPUT isn't set. Do abort if a declaration
1688 has an abstract origin.
1689 * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
1690 abstract instance here.
1691
1692 Wed Nov 24 18:39:18 1999 Andrew Haley <aph@cygnus.com>
1693
1694 * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
1695 where we need to reload fpul from a system register.
1696
1697 1999-11-24 Andreas Jaeger <aj@suse.de>
1698
1699 * config/mips/linux.h (CPP_PREDEFINES): Added.
1700 (LINK_SPEC): Remove -Y since this is only needed on sparc.
1701
1702 1999-11-24 Andreas Jaeger <aj@suse.de>
1703
1704 * config/mips/linux.h (TARGET_VERSION): Added.
1705 (HANDLE_SYSV_PRAGMA): Added.
1706 (DEFAULT_VTABLE_THUNKS): Added.
1707
1708 Wed Nov 24 14:12:15 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
1709
1710 * local-alloc.c (qty): New structure and static variable.
1711 (qty_phys_reg): Remove, all references changed to qty.
1712 (qty_n_refs): Likewise.
1713 (qty_min_class): Likewise.
1714 (qty_birth): Likewise.
1715 (qty_death): Likewise.
1716 (qty_size): Likewise.
1717 (qty_mode): Likewise.
1718 (qty_n_calls_crossed): Likewise.
1719 (qty_alternate_class): Likewise.
1720 (qty_changes_size): Likewise.
1721 (qty_first_reg): Likewise.
1722 (alloc_qty): Rename variable QTY to QTYNO.
1723 (finf_free_reg): Likewise.
1724 (local_alloc): Allocate qty, do not allocate the removed variables.
1725
1726 Wed Nov 24 17:26:05 1999 Geoffrey Keating <geoffk@cygnus.com>
1727
1728 * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
1729 when -membedded-pic is passed.
1730
1731 * config/mips/mips.md (casesi): Handle 64-bit case too.
1732 (casesi_internal_di): New insn.
1733
1734 * config/mips/mips.c (embedded_pic_offset): Always make the
1735 embedded-pic subtractions relative to the name of the current
1736 function by use of the magic string "..CURRENT_FUNCTION".
1737 * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
1738
1739 1999-11-24 Geoffrey Keating <geoffk@cygnus.com>
1740
1741 * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
1742 of (const_int 0), when what we really care about is
1743 whether it's a zero constant anyway.
1744 (div_trap_mips16): Likewise.
1745
1746 1999-11-23 Mark Mitchell <mark@codesourcery.com>
1747
1748 * loop.c (loop_optimize): Always find_loop_tree_blocks and
1749 unroll_block_trees when generating debuggable code.
1750
1751 * tree.h (unsave_expr_1): New function.
1752 (lang_unsave): New variable.
1753 (get_callee_fndecl): New function.
1754 * tree.c (unsave_expr_now_r): New function.
1755 (lang_unsave): Define.
1756 (unsave_expr_1): Likewise.
1757 (unsave_expr_now_r): Split out from unsave_expr_now.
1758 (unsave_expr_now): Call lang_unsave if it is non-NULL. Otherwise,
1759 call unsave_expr_now_r.
1760 (get_callee_fndecl): Define.
1761
1762 * Makefile.in (gencheck): Don't depend on lang_tree_files.
1763 (gencheck.o): Do depend on lang_tree_files.
1764
1765 * integrate.h (copy_decl_for_inlining): New declaration.
1766 * integrate.c (copy_and_set_decl_abstract_origin): Remove.
1767 (copy_decl_for_inlining): New function.
1768 (integrate_parm_decls): Use it.
1769 (integrate_decl_tree): Likewise.
1770
1771 1999-11-23 Gavin Romig-Koch <gavin@cygnus.com>
1772
1773 * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
1774 the second two from the first.
1775 (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
1776 * config/mips/mips.md (movcc,reload_incc,reload_outcc,
1777 conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
1778 ISA_HAS_FP4.
1779 * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
1780 override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
1781 ISA_HAS_FP4.
1782
1783 Tue Nov 23 11:15:04 1999 Jeffrey A Law (law@cygnus.com)
1784
1785 * pa.md (call_internal_symref, call_value_internal_symref): No mode
1786 needed on the address operand.
1787 * pa.c (call_operand_address): Check for the correct mode.
1788
1789 1999-11-23 Bernd Schmidt <bernds@cygnus.co.uk>
1790
1791 * loop.c: Include "basic-block.h".
1792 (try_copy_prop, replace_loop_reg): New functions.
1793 (load_mems): Detect registers that just hold copies of the hoisted
1794 mem, and call try_copy_prop to eliminate them.
1795 * Makefile.in (loop.o): Update dependencies.
1796
1797 Tue Nov 23 01:03:29 1999 Hans-Peter Nilsson <hp@axis.com>
1798
1799 * Makefile.in (gencheck.o): Depend on gencheck.h.
1800 (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
1801 (insn-peep.o): Depend on except.h and function.h.
1802 (insn-attrtab.o): Depend on RECOG_H.
1803 (insn-output.o): Depend on toplev.h and flags.h.
1804 (gengenrtl.o): Depend on real.h.
1805 (gen-protos.o): Depend on cpplib.h and cpphash.h.
1806 Unify all dependencies to be on RECOG_H rather than recog.h.
1807
1808 Tue Nov 23 00:57:10 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1809
1810 From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
1811 * configure.in: Try building a bi-arch 32/64-bit compiler on
1812 sparc-*-solaris2.7 and higher.
1813 * configure: Rebuild.
1814
1815 Mon Nov 22 23:09:44 1999 David O'Brien <obrien@FreeBSD.org>
1816
1817 * config/freebsd.h: New, FreeBSD architecture independent file.
1818 * config/i386/freebsd-elf.h: removed FreeBSD architecturally
1819 independent pieces.
1820 * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
1821 directly by i386/freebsd.h.
1822 * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
1823 independent configuration file.
1824 (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
1825 directly by i386/freebsd.h.
1826 * configure: Rebuilt.
1827
1828 * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
1829 which is in the user's namespace.
1830 * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
1831 `i386' which is not in our namespace.
1832
1833 Mon Nov 22 22:58:01 1999 "R. Kelley Cook" <KelleyCook@attglobal.net>
1834
1835 * invoke.texi (ARM Options): Add in -mno-alignment-traps
1836
1837 1999-11-22 Jason Merrill <jason@casey.cygnus.com>
1838
1839 * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
1840 (add_dwarf_attr, add_child_die): Just push onto the front.
1841 (reverse_die_lists): New fn.
1842 (add_sibling_attributes): Use it.
1843 (push_decl_scope): Reorganize.
1844 (add_name_and_src_coords_attributes): Don't set file and line for
1845 an artificial decl.
1846 (gen_subprogram_die): An artificial function doesn't need to match
1847 file and line.
1848 (gen_compile_unit_die): Return the generated die. Only add
1849 AT_comp_dir if the filename is relative.
1850 (remove_AT): Simplify loop. Also free string values.
1851 (output_die): A DIE ref can't be null.
1852 (output_value_format, value_format): Take a dw_attr_ref.
1853 (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
1854 (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
1855 AT_addr, AT_lbl): New fns.
1856 (various): Use them.
1857 (various): Constify.
1858
1859 Mon Nov 22 23:53:50 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
1860
1861 * combine.c (combine_simplify_rtx): When handling a SUBREG,
1862 take SUBREG_WORD into account.
1863 (if_then_else_cond): Likewise.
1864
1865 1999-11-22 Jason Merrill <jason@casey.cygnus.com>
1866
1867 * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
1868 clause from BSD license, pursuant with
1869
1870 ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
1871
1872 1999-11-22 Bernd Schmidt <bernds@cygnus.co.uk>
1873
1874 * loop.c (load_mems): Reformat slightly.
1875 * basic-block.h (regset_head): New typedef.
1876 (INIT_REG_SET): New macro.
1877
1878 1999-11-22 Bruce Korb <autogen@linuxbox.com
1879
1880 * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
1881 (mips-dec-bsd*): non-functional code
1882 (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
1883
1884 * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
1885 added three replacement fixes
1886 (no_double_slash): removed comments that are not (any longer) pertinent
1887 (bad_lval): this fix currently runs against many files.
1888 The comment seems to indicate that we should select for files
1889 containing 'pragma extern_prefix'.
1890
1891 * fixinc/fixinc.x86-linux-gnu: deleted
1892 * fixinc/inclhack.sh: regen
1893 * fixinc/fixincl.x: regen
1894 * fixinc/fixincl.sh: regen
1895
1896 Fri Nov 12 14:08:40 1999 Andrew Haley <aph@cygnus.com>
1897
1898 * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
1899 its code is INSN and it has no notes.
1900
1901 1999-11-22 Andrew Haley <aph@cygnus.com>
1902
1903 * varasm.c (function_defined): Remove.
1904 (make_function_rtl): Don't set function_defined.
1905 (make_decl_rtl): Remove global register warning.
1906 * regclass.c (no_global_reg_vars): New variable.
1907 (globalize_reg): Warn if function has already been defined.
1908 (regclass_init): Set no_global_reg_vars.
1909
1910 Mon Nov 22 14:42:22 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
1911
1912 * regclass.c (reg_pref): New structure and static variable
1913 (prefclass): Delete.
1914 (altclass): Delete.
1915 (all uses of prefclass and altclass): Use reg_pref instead.
1916
1917 1999-11-21 Nick Clifton <nickc@cygnus.com>
1918
1919 * invoke.texi (ARM Options): Replace -mshort-load-bytes with
1920 -malignment-traps.
1921 (arm.h): Replace -mshort-load-bytes with -malignment-traps.
1922 (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
1923 (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
1924
1925 Sun Nov 21 17:11:13 1999 Geoffrey Keating <geoffk@cygnus.com>
1926
1927 * varasm.c (output_constructor): Solve problem with long long
1928 bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
1929
1930 Fri Nov 19 05:48:45 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
1931
1932 * global.c (allocno): New structure and static variable.
1933 (allocno_reg): Remove, all references replaced by allocno.
1934 (allocno_size): Likewise.
1935 (hard_reg_conflicts): Likewise.
1936 (hard_reg_preferences): Likewise.
1937 (hard_reg_copy_preferences): Likewise.
1938 (hard_reg_full_preferences): Likewise.
1939 (regs_someone_prefers): Likewise.
1940 (allocno_calls_crossed): Likewise.
1941 (allocno_n_refs): Likewise.
1942 (allocno_live_length): Likewise.
1943 (find_reg): Rename ALLOCNO to NUM.
1944
1945 * regclass.c (may_move_in_cost): Rename from may_move_cost, all
1946 references updated.
1947 (may_move_out_cost): New variable.
1948 (init_reg_sets_1): Initialize may_move_out_cost.
1949 (record_reg_classes): Use may_move_out_cost.
1950
1951 * regclass.c (dump_regclass): New function.
1952 (regclass): New parameter DUMP, call DUMP_REGCLASS.
1953 * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
1954 pass rtl_dump_file to regclass.
1955 * rtl.h (regclass): Update prototype.
1956
1957 Fri Nov 19 06:32:19 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
1958
1959 * i386.md (neg, not and abs patterns): Revmap to use
1960 ix86_expand_unary_operator and ix86_unary_operator_ok.
1961 (add?f and sub?f expanders): Force operand 1 to register.
1962 * i386.c (ix86_expand_unary_operator): Rewrite.
1963 (ix86_unary_operator_ok): Ensure that memory operands
1964 match real opcode.
1965 (ix86_binary_operator_ok): Do not allow operand 1 to
1966 come into memory and operand 0 not.
1967 (ix86_expand_binary_operator): Ensure that
1968 src1 is not non-matching memory.
1969
1970 * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
1971 to support integer registers and memory.
1972 (abss?2_integer): Likewise.
1973
1974 * i386.h (enum reg_class): Add FLOAT_INT_REGS.
1975 (REG_CLASS_NAMES): Likewise.
1976 (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
1977 and GENERAL_REGS.
1978 * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
1979 (movsf): Likewise; unify 4th and 5th alternative.
1980 (pushdf): Likewise.
1981 (movdf_1): Likewise; rename to movdf_integer.
1982 (pushxf): Likewise; rename to pushxf_integer; fix output template;
1983 remove redundant splitter.
1984 (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
1985 (movdf_nointeger): New.
1986 (movxf_nointeger): New.
1987 (pushxf_nointeger): New.
1988
1989 * i386.md (extend?f?f): Split to expander and pattern, refuse two
1990 memory operands in patterns.
1991 (fop*): Refuse two memory operands.
1992
1993 * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
1994 on !TARGET_USE_CLTD CPUs.
1995
1996 Fri Nov 19 10:41:15 GMT 1999 Nathan Sidwell <nathan@acm.org>
1997
1998 * extend.texi: Document C++ restricted pointers and references.
1999
2000 1999-11-19 Bernd Schmidt <bernds@cygnus.co.uk>
2001
2002 * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
2003 (invalidate_skipped_set): Call it unconditionally.
2004 (cse_set_around_loop): Likewise.
2005
2006 Thu Nov 18 17:29:34 MST 1999 Diego Novillo <dnovillo@cygnus.com>
2007
2008 * rtl.texi (mem): Add documentation for alias-set argument
2009 to RTX `mem'.
2010
2011 Fri Nov 18 13:39:22 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
2012
2013 * i386.h (struct_processor_costs): New fields int_load, int_store,
2014 fp_move, fp_load and fp_store
2015 (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
2016 fp->int moves
2017 (MEMORY_MOVE_COST): New macro.
2018 * i386.c (386_cost): Define new fields.
2019 (i486_cost): Likewise.
2020 (pentium_cost): Likewise.
2021 (pentiumpro_cost): Likewise.
2022 (k6_cost): Likewise.
2023
2024 Fri Nov 19 11:11:55 1999 Greg McGary <gkm@gnu.org>
2025 Geoffrey Keating <geoffk@cygnus.com>
2026
2027 * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
2028
2029 * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
2030 MASK_ALIGN_INT.
2031
2032 * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
2033 (TARGET_STRICT_ALIGNMENT): New macro.
2034 (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
2035 (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
2036 * invoke.texi (M680x0 Options): Document -mstrict-align.
2037
2038 Thu Nov 18 11:10:03 1999 Jan Hubicka <hubicka@freesoft.cz>
2039 Richard Henderson <rth@cygnus.com>
2040
2041 * i386-protos.h (split_xf, ix86_split_movdi): Remove.
2042 (ix86_split_long_move): Declare.
2043 * i386.c (split_xf, ix86_split_movdi): Remove.
2044 (ix86_split_to_parts, ix86_split_long_move): New.
2045 * i386.md (dimode move splitters): Use ix86_split_long_move.
2046 (dfmode move splitters): Likewise.
2047 (xfmode move splitters): Likewise.
2048 (movsf_1): Allow F->r.
2049 (movdf_1, movxf_1): Allow F->ro.
2050
2051 1999-11-17 Mark Mitchell <mark@codesourcery.com>
2052
2053 * except.h (struct eh_entry): Add goto_entry_p.
2054 (eh_region_from_symbol): Remove prototype.
2055 * except.c (find_func_region_from_symbol): New function.
2056 (emit_cleanup_handler): Likewise.
2057 (eh_region_from_symbol): Make it static.
2058 (add_new_handler): Verify the argument.
2059 (find_func_region): Update comment.
2060 (expand_eh_region_end): Expand handlers here, rater than waiting
2061 until expand_leftover_cleanups or start_all_catch.
2062 (expand_leftover_cleanups): Don't expand here.
2063 (expand_start_all_catch): Or here.
2064 (expand_rethrow): Check the return value from find_func_region.
2065 * function.c (expand_function_end): Emit the catch_clauses.
2066
2067 1999-11-18 Gavin Romig-Koch <gavin@cygnus.com>
2068
2069 * integrate.c (expand_inline_function): Add necessary check for NULL.
2070
2071 1999-11-18 Nick Clifton <nickc@cygnus.com>
2072
2073 * toplev.c (main): Correctly detect an unrecognised option.
2074
2075 * cppinit.c (cpp_handle_option): Do not claim to have consumed
2076 a -f option if it has not been recognised.
2077
2078 Thu Nov 18 00:59:11 1999 Michael Gschwind <mikeg@alagoas.watson.ibm.com>
2079
2080 * basic-block.h (update_life_extent): Remove trailing comma on
2081 enumeration type list.
2082
2083 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2084
2085 * varasm.c (output_constructor) Solved problem with long long
2086 bitfields. Corrected calculating this_time and shift. Also
2087 corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
2088
2089 Wed Nov 17 23:46:14 1999 Jeffrey A Law (law@cygnus.com)
2090
2091 * flow.c (split_edge): Take looping structure into account when
2092 determining where to put the new block note.
2093
2094 Wed Nov 17 20:42:43 1999 Jeff Holcomb <jeffh@cygnus.com>
2095
2096 * Makefile.in (ggc-none.o): Provide host specific version if
2097 needed.
2098
2099 Wed Nov 17 16:51:23 1999 Richard Henderson <rth@cygnus.com>
2100
2101 * cse.c (delete_trivially_dead_insns): Identify no-op insns
2102 containing subregs too.
2103
2104 Wed Nov 17 17:39:48 MST 1999 Diego Novillo <dnovillo@cygnus.com>
2105
2106 * invoke.texi: Add documentation for -muninit-const-in-rodata.
2107 * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
2108 (TARGET_UNINIT_CONST_IN_RODATA): Define.
2109 (text_section): Add switches -munint-const-in-rodata and
2110 -mno-uninit-const-in-rodata.
2111 (ASM_OUTPUT_COMMON): Remove.
2112 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
2113 const objects should be placed in read-only data. Otherwise declare
2114 them in common.
2115
2116 Wed Nov 17 16:38:32 1999 Richard Henderson <rth@cygnus.com>
2117
2118 * jump.c (jump_optimize_1): Revert last change.
2119
2120 Wed Nov 17 15:18:30 1999 Richard Henderson <rth@cygnus.com>
2121
2122 * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
2123 test if optimizing for size.
2124
2125 1999-11-17 Mark Mitchell <mark@codesourcery.com>
2126
2127 * Makefile.in (toplev.o): Depend on except.h.
2128 (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
2129
2130 Mon Nov 15 22:45:39 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
2131
2132 * i386.md (divmodsi4): Rewrite to expander.
2133 (*divmodsi4_nocltd): New.
2134 (*divmodsi4_cltd): New.
2135 (divmodsi4 splitter): Handle the case when input comes in edx.
2136 (udivmodhi4): Do not use constraints in exander.
2137 (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
2138
2139 1999-11-17 Jason Merrill <jason@yorick.cygnus.com>
2140
2141 * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
2142 for the common case.
2143
2144 1999-11-16 Jakub Jelinek <jakub@redhat.com>
2145
2146 * explow.c (hard_function_value): Add outgoing argument.
2147 * expr.h (hard_function_value): Declare it.
2148 * calls.c (expand_call, emit_library_call_value): Update callers.
2149 * function.c (aggregate_value_p): Ditto.
2150 (diddle_return_value): Must look at the outgoing registers
2151 on archs with register windows.
2152
2153 Mon Nov 15 20:46:45 1999 Richard Henderson <rth@cygnus.com>
2154
2155 * alpha.c (alpha_build_va_list): Use make_lang_type and
2156 initialize TYPE_NAME for the va_list record.
2157
2158 * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
2159
2160 * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
2161 for printing.
2162 * ggc.h (struct ggc_statistics): Rearrange elements for better
2163 packing on 64-bit hosts.
2164 * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
2165 (compute_nearerout): Likewise.
2166
2167 Tue Nov 16 14:37:52 1999 Geoffrey Keating <geoffk@cygnus.com>
2168
2169 * config/rs6000/rs6000.c (first_reg_to_save): Save
2170 PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
2171
2172 1999-11-15 Jason Merrill <jason@casey.cygnus.com>
2173
2174 * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
2175 notion of nesting to find the DIE for a type or function.
2176 DIEs can go in limbo even if we got a context_die.
2177 (push_decl_scope): Our context doesn't need to be in decl_scope_table.
2178 (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
2179 for local type.
2180 (gen_decl_die): Ignore NAMESPACE_DECLs for now.
2181 (gen_type_die): Writing out the context doesn't cause member class
2182 template instantiations to be written out as well.
2183
2184 Mon Nov 15 15:33:18 1999 Richard Henderson <rth@cygnus.com>
2185
2186 * rs6000.h (ASM_OUTPUT_DEF): New.
2187 Based on proposed addition from David Edelsohn.
2188
2189 1999-11-15 Robert Lipe <RobertLipe@usa.net>
2190 Bruce Korb <autogen@linuxbox.com>
2191
2192 * fixinc/inclhack.def
2193 (AAB_svr4_replace_byteorder): added. Takes advantage of GCC features
2194 (unixware7_byteorder_fix): added. Removes conflicts for new defs
2195 in net/inet.h.
2196 (svr5_mach_defines): added. Like svr4_mach_defines, with new syntax
2197 (svr4_endian): enabled with SVR5
2198 (svr4_mkdev): simplified syntax and enabled with SVR5
2199
2200 Sun Nov 14 18:49:37 1999 David O'Brien <obrien@FreeBSD.org>
2201
2202 * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
2203 * configure: Rebuilt.
2204 * config/t-freebsd-thread: New file.
2205
2206 Sun Nov 14 23:11:05 1999 Jeffrey A Law (law@cygnus.com)
2207
2208 * i386.c (ix86_decompose_address): Verify the base is a REG
2209 before trying to examine its register number.
2210
2211 * basic-block.h: Remove all #defines and prototypes related to
2212 integer lists.
2213 (free_bb_mem, compute_preds_succs): Remove prototype.
2214 * rtl.h (free_bb_mem): Remove prototype.
2215 * flow.c (alloc_int_list_node); Remove function.
2216 (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
2217 (compute_preds_succs, free_bb_mem): Likewise.
2218 * gcse.c (gcse_main): Do not call free_bb_mem anymore.
2219 * toplev.c (rest_of_compilation): Likewise.
2220 * haifa-sched.c (build_control_flow): Use flow generated edge
2221 list to build the haifa specific edge list.
2222 (find_rgns): Use new CFG data structures instead of pred/succ lists.
2223 (schedule_insns): Do not build pred/succ lists anymore. Instead
2224 build the edge table.
2225
2226 * basic-block.h (dump_bb_data): Remove declaration.
2227 * flow.c (dump_bb_data): Remove function.
2228 * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
2229 (sbitmap_union_of_predsucc): Likewise.
2230
2231 * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
2232 argument. All callers changed.
2233 (delete_null_pointer_checks_1): No longer need to compute the
2234 pred/succ lists.
2235
2236 * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
2237 All callers changed.
2238 (pre_expr_reaches_here_p_work): Likewise.
2239 (pre_edge_insert): No longer call pre_expr_reaches_here_p.
2240 * lcm.c (compute_laterin): Fix initialization of LATER.
2241 (compute_nearerout): Similarly for NEARER.
2242
2243 Sun Nov 14 12:41:57 1999 Bernd Schmidt <bernds@cygnus.co.uk>
2244
2245 * cse.c (set_nonvarying_address_components): Delete unused function.
2246 (refers_to_p): Likewise.
2247
2248 Fri Nov 12 20:53:22 1999 Jeffrey A Law (law@cygnus.com)
2249
2250 * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
2251 needed.
2252
2253 Sat Nov 13 16:20:09 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2254
2255 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
2256 definition in do while (0).
2257
2258 Fri Nov 12 16:26:25 1999 Jim Wilson <wilson@cygnus.com>
2259
2260 * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
2261
2262 Fri Nov 12 12:43:49 1999 Richard Henderson <rth@cygnus.com>
2263
2264 * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
2265
2266 Fri Nov 12 15:14:19 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
2267
2268 * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
2269 (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
2270 (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
2271 (INITIAL_FRAME_POINTER_OFFSET): Remove it.
2272
2273 * i960.c (i960_function_prologue): Don't allocate space for g8-g11
2274 saved on the stack. Output more accurate stack frame statistics
2275 into assembler file.
2276
2277 1999-11-12 11:47 -0800 Zack Weinberg <zack@bitmover.com>
2278
2279 * genextract.c (record_insn_name): New function.
2280 (get_insn_name): No longer a stub.
2281 (main): Call record_insn_name for each insn. After each label
2282 written, print the insn name in a comment.
2283
2284 Fri Nov 12 13:45:02 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2285
2286 * output.h (const_section, init_section, fini_section): Add
2287 prototypes.
2288
2289 * alpha/elf.h (const_section): Delete declaration.
2290
2291 * svr4.h (const_section): Likewise.
2292
2293 Fri Nov 12 08:54:22 1999 Mark Mitchell <mark@codesourcery.com>
2294
2295 * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
2296 * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
2297 (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
2298 expressions.
2299 * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
2300 variable-sized array bounds.
2301
2302 Fri Nov 12 08:04:45 1999 Catherine Moore <clm@cygnus.com>
2303
2304 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Use
2305 ASM_OUTPUT_LABEL.
2306
2307 Fri Nov 12 13:31:54 1999 Bernd Schmidt <bernds@cygnus.co.uk>
2308
2309 * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
2310 addresses the same way GO_IF_LEGITIMATE_INDEX does.
2311
2312 Fri Nov 12 12:36:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
2313
2314 * cse.c (hash_arg_in_struct): Delete.
2315 (struct table_elt): Delete elt in_struct.
2316 (struct set): Delete elt src_in_struct.
2317 (merge_equiv_classes): Don't set either hash_arg_in_struct or
2318 the corresponding in_struct elts.
2319 (canon_hash): Likewise.
2320 (safe_hash): Likewise.
2321 (find_best_addr): Likewise.
2322 (record_jump_cond): Likewise.
2323 (cse_insn): Likewise.
2324
2325 Thu Nov 11 19:45:24 1999 Jim Wilson <wilson@cygnus.com>
2326
2327 * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
2328
2329 * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
2330 unsigned types.
2331
2332 Thu Nov 11 18:54:24 1999 Jeffrey A Law (law@cygnus.com)
2333
2334 * function.c (diddle_return_value): Put back check that the DECL_RTL
2335 for the function is a register.
2336
2337 * function.c (diddle_return_value): Use hard_function_value to
2338 get an rtx suitable for use in the USE/CLOBBER insn.
2339
2340 * global.c (global_conflicts): Update comments.
2341 (record_conflicts): No need to record conflicts between pseudos here.
2342
2343 1999-11-11 Bruce Korb <autogen@linuxbox.com>
2344
2345 * fixinc/fixincl.c: Added verbose levels for status messages
2346
2347 Thu Nov 11 13:23:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
2348
2349 * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
2350 operand as argument to expand_and or expand_binop.
2351
2352 Thu Nov 11 02:21:16 1999 Rodney Brown <RodneyBrown@pmsc.com>
2353
2354 * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
2355 gcc_add_string_root.
2356
2357 Wed Nov 10 21:24:19 1999 Jason Eckhardt <jle@cygnus.com>
2358
2359 * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
2360
2361 Wed Nov 10 15:56:16 1999 Jeffrey A Law (law@cygnus.com)
2362
2363 * flow.c (compute_flow_dominators): Initially put all blocks on
2364 the worklist.
2365 * lcm.c (compute_antinout_edge, compute_available): Similarly.
2366 * gcse.c (compute_cprop_avinout): Remove.
2367 (compute_cprop_data): Use compute_available.
2368 (delete_null_pointer_checks_1): Use compute_available.
2369
2370 * basic-block.h (compute_available): Returns a void now.
2371 * gcse.c (one_classic_gcse_pass): Do not expect compute_available
2372 to return a value anymore.
2373 * lcm.c (compute_available, compute_antinout_edge): Revamp to use
2374 worklists. Fix boundary cases. Compute maximal solutions.
2375 (compute_laterin, compute_nearerout): Similarly.
2376
2377 * dwarf2out.c (add_AT_location_description): Allow
2378 (mem (plus (pseudo) (...)) too.
2379
2380 Wed Nov 10 10:52:42 1999 Tom Tromey <tromey@cygnus.com>
2381
2382 * gcc.c (do_spec_1): Support text between `%u' and `%O'.
2383
2384 Wed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be>
2385 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2386
2387 * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
2388
2389 * gansidecl.h: Likewise.
2390
2391 * rtl.c: Likewise.
2392
2393 * rtl.h: Likewise.
2394
2395 * toplev.h: Likewise.
2396
2397 * tree.c: Likewise.
2398
2399 * tree.h: Likewise.
2400
2401 * varray.c: Likewise.
2402
2403 * varray.h: Likewise.
2404
2405 Wed Nov 10 10:57:22 1999 Clinton Popetz <cpopetz@cygnus.com>
2406
2407 * gcov.c (struct arcdata): Add hits and total, remove prob.
2408 (output_branch_counts): New.
2409 (process_args): Set output_branch_counts if -c.
2410 (calculate_branch_probs): Store hits and total instead of
2411 percentage.
2412 (output_data): Emit counts if output_branch_counts is true.
2413 * gcov.texi (Invoking Gcov): Document -c switch..
2414
2415 Wed Nov 10 01:10:41 1999 Philippe De Muyter <phdm@macqel.be>
2416
2417 * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
2418 `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
2419
2420 Wed Nov 10 00:51:41 1999 Hans-Peter Nilsson <hp@axis.se>
2421
2422 * invoke.texi (C Dialect Options): Add missing builtins from
2423 c-common.c to list.
2424 * extend.texi (Other Builtins): Copy to this list.
2425
2426 Wed Nov 10 04:58:09 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2427
2428 * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
2429 (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise. Remove
2430 redundant bitmap.h.
2431
2432 Wed Nov 10 00:02:53 1999 Jeffrey A Law (law@cygnus.com)
2433
2434 * flow.c (compute_flow_dominators): No longer treat basic block 0
2435 or (n_basic_blocks - 1) specially. Clear the AUX field before
2436 starting computation of doms/pdoms. Fix initial state for pdoms.
2437
2438 Wed Nov 10 03:58:08 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2439
2440 * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
2441 match rtl.o's: added ggc.h and toplev.h
2442 ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
2443 ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
2444 ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
2445
2446 Tue Nov 9 10:30:08 1999 Tom Tromey <tromey@cygnus.com>
2447
2448 * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
2449 from HAVE_DOS_BASED_FILESYSTEM.
2450 * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
2451 HAVE_DOS_BASED_FILESYSTEM.
2452 (main): Likewise.
2453 (split_directories): Only special-case DOS file names if
2454 HAVE_DOS_BASED_FILE_SYSTEM is defined. Use IS_DIR_SEPARATOR
2455 instead of explicit tests. Conditionalize on !VMS.
2456 (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
2457 tests. Conditionalize on !VMS.
2458 (process_command): Only use make_relative_prefix if !VMS.
2459 (free_split_directories): Conditionalize on !VMS.
2460 (DIR_UP): Conditionalize on !VMS.
2461
2462 Wed Jun 9 16:57:11 1999 Mumit Khan <khan@xraylith.wisc.edu>
2463
2464 * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
2465
2466 Fri Feb 5 14:22:01 1999 Mumit Khan <khan@xraylith.wisc.edu>
2467
2468 * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
2469 case.
2470
2471 Mon Nov 8 14:16:57 1999 Michael Meissner <meissner@cygnus.com>
2472
2473 * invoke.texi (Environment Variables): Document relative path
2474 lookup.
2475 * gcc.c (DIR_UP): If not defined, define as "..".
2476 (standard_bindir_prefix): New static, holds target location to
2477 install binaries.
2478 (split_directories): New function to split a filename into
2479 component directories.
2480 (free_split_directories): New function, release memory allocated
2481 by split_directories.
2482 (make_relative_prefix): New function, make a relative pathname if
2483 the compiler is not in the expected location.
2484 (process_command): If GCC_EXEC_PREFIX was not specified, see if we
2485 can figure out an appropriate prefix from argv[0].
2486 * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
2487 STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX. Define
2488 STANDARD_BINDIR_PREFIX.
2489
2490 Wed Nov 10 11:47:54 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2491
2492 * config/c4x/c4x-protos.h: New file. Prototypes for functions defined
2493 in c4x.c.
2494 * config/c4x/c4x.h: Moved prototypes to c4x.h.
2495 * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
2496 c4x_secondary_memory_needed) Delete.
2497 (fp_zero_operand): Add mode argument.
2498
2499 Thu Nov 4 15:52:35 1999 Andrew Haley <aph@cygnus.com>
2500
2501 * reload1.c (reload_reg_free_for_value_p): Don't use a register
2502 that is in reload_reg_used.
2503
2504 Tue Nov 9 16:43:00 1999 Nick Clifton <nickc@cygnus.com>
2505
2506 * config/arm/arm-protos.h: New file: Prototypes for functions
2507 defined in arm.c and pe.c.
2508 * config/arm/arm.h: Fix compile time warnings.
2509 * config/arm/arm.c: Fix compile time warnings.
2510 * config/arm/pe.h: Fix compile time warnings.
2511 * config/arm/aout.h: Fix compile time warnings.
2512
2513 Tue Nov 9 14:55:44 1999 Nick Clifton <nickc@cygnus.com>
2514
2515 * config/m32r/m32r-protos.h: New file: Prototypes for functions
2516 defined in m32r.c
2517
2518 * config/m32r/m32r.h: Move prototypes to m32r-protos.h
2519 Add support for subtargets.
2520 Add prototypes for new predicates.
2521 Add scheduling macros.
2522
2523 * config/m32r/m32r.c: Fix compile time warnings.
2524 (int8_operand): New predicate function.
2525 (reg_or_cmp_int16_operand): New predicate function.
2526 (extend_operand): New predicate function.
2527 (m32r_adjust_code): New scheduling function.
2528 (m32r_adjust_priorty): New scheduling function.
2529 (m32r_sched_init): New scheduling function.
2530 (m32r_sched_reorder): New scheduling function.
2531 (m32r_sched_variable_issue): New scheduling function.
2532 (direct_return): New codegen function.
2533 (m32r_not_same_reg): New rtl testsing function.
2534
2535 * config/m32r/m32r.md: Fix compile time warnings.
2536 Add support for pre decrement and post increment memory
2537 references.
2538 Add S<cc> patterns.
2539 Add fabs patterns.
2540
2541 Mon Nov 8 22:20:13 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
2542
2543 * global.c (EXECUTE_IF_CONFLICT): Don't define.
2544 (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
2545 (find_reg): Likewise.
2546
2547 Mon Nov 8 13:16:46 1999 Jason Eckhardt <jle@cygnus.com>
2548
2549 * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
2550 to avoid assembler errors.
2551
2552 Mon Nov 8 15:38:41 1999 Nick Clifton <nickc@cygnus.com>
2553
2554 * config/v850/v850-protos.h: New file: Prototypes for functions
2555 defined in v850.c
2556 * config/v850/v850.h: Move prototypes to v850-protos.h
2557 * config/v850/v850.c: Move prototypes to v850-protos.h
2558 * config/v850/v850.md: Fix compile time warnings.
2559
2560 * config/fr30/fr30-protos.h: New file: Prototypes for functions
2561 defined in fr30.c
2562 * config/fr30/fr30.h: Move prototypes to fr30-protos.h
2563 * config/fr30/fr30.c: Fix compile time warnings.
2564 * config/fr30/fr30.md: Fix compile time warnings.
2565
2566 Mon Nov 8 07:25:37 1999 Mark Mitchell <mark@codesourcery.com>
2567
2568 * tree.h (get_containing_scope): Declare it.
2569 * tree.c (get_containing_scope): New fucntion.
2570 (decl_function_context): Use it.
2571 * toplev.c (rest_of_compilation): Use get_containing_scope.
2572
2573 aMon Nov 8 03:03:07 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2574
2575 * Makefile.in (rtl.o): Depend on toplev.h.
2576
2577 Sun Nov 7 20:55:14 1999 Mark Mitchell <mark@codesourcery.com>
2578
2579 * cse.c (delete_trivially_dead_insns): Replace alloca with
2580 xmalloc/xcalloc.
2581 * except.c (update_rethrow_references): Likewise.
2582 (init_eh_nesting_info): Likewise.
2583 * function.c (identify_blocks): Likewise.
2584 * gcse.c (dump_hash_table): Likewise.
2585 * graph.c (print_rtl_graph_with_bb): Likewise.
2586 * loop.c (combine_movables): Likewise.
2587 (move_movables): Likewise.
2588 (count_loop_regs_set): Likewise.
2589 (strength_reduce): Likewise.
2590 * profile.c (compute_branch_probabilities): New function, split
2591 out from ...
2592 (branch_prob): Here. Replace alloca with xmalloc/xcalloc.
2593 * regclass.c (regclass): Likewise.
2594 * regmove.c (regmove_optimize): Likewise.
2595 * toplev.c (compile_file): Likewise.
2596 (main): Don't mess with the stack rlimit.
2597
2598 Sun Nov 7 19:41:17 1999 Catherine Moore <clm@cygnus.com>
2599
2600 * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
2601 (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
2602
2603 Sun Nov 7 10:23:28 1999 Mark P. Mitchell <mark@codesourcery.com>
2604
2605 * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
2606
2607 Sun Nov 7 02:58:48 1999 Jeffrey A Law (law@cygnus.com)
2608
2609 * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
2610 (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
2611 macro expansion.
2612
2613 Sat Nov 6 23:48:30 1999 Robert Lipe (robertlipe@usa.net)
2614
2615 * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
2616
2617 Sat Nov 6 17:34:39 1999 Jeffrey A Law (law@cygnus.com)
2618
2619 * gcse.c (post_dominators): Kill.
2620 (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
2621 (compute_code_hoist_data): Use compute_flow_dominators. Do not
2622 pass in a pdom array since we do not need pdoms.
2623 * haifa-sched.c (schedule_insns): Similarly.
2624 * flow.c (compute_dominators): Remove dead function.
2625 (compute_flow_dominators): Do not compute doms or pdoms if the
2626 caller does not request them. Split up loop to build doms and
2627 pdoms. Use a worklist to compute doms and pdoms.
2628 * basic-block.h (compute_dominators): Remove prototype.
2629
2630 Sat Nov 6 11:38:39 1999 Richard Henderson <rth@cygnus.com>
2631
2632 * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
2633 (insn_luid, insn_priority, insn_costs, insn_units): Remove.
2634 (insn_reg_weight, insn_depend, insn_dep_count): Remove.
2635 (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
2636 (cant_move, fed_by_spec_load, is_load_insn): Remove.
2637 (schedule_region): Remove unused variable.
2638 (schedule_insns): Allocate h_i_d, and not all the separate arrays.
2639
2640 Sat Nov 6 10:00:34 1999 Mark Mitchell <mark@codesourcery.com>
2641
2642 * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
2643 (update_equiv_regs): Likewise.
2644 (block_alloc): Likewise.
2645 * reg-stack.c (reg_to_stack): Likewise.
2646 (convert_regs_2): Likewise.
2647 * reload1.c (reload_as_needed): Likewise.
2648
2649 Sat Nov 6 09:57:59 1999 Mark Mitchell <mark@codesourcery.com>
2650
2651 * Makefile.in (dbxout.o): Depend on ggc.h.
2652 (dwarf2out.o): Likewise.
2653 (xcoffout.o): Likewise.
2654 * dbxout.c: Include ggc.h.
2655 (dbxout_init): Register lastfile as a root.
2656 * dwarf2out.c: Include ggc.h.
2657 (dwarf2out_line): Register lastfile as a root.
2658 * xcoffout.c: Include ggc.h.
2659 (xcoffout_source_line): Register xcoff_lastfile as a root.
2660
2661 Sat Nov 6 09:52:09 1999 Richard Henderson <rth@cygnus.com>
2662
2663 * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
2664
2665 Sat Nov 6 07:48:59 1999 Catherine Moore <clm@cygnus.com>
2666
2667 * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
2668 defined.
2669 (ASM_DECLARE_FUNCTION_SIZE): Likewise.
2670
2671 Fri Nov 5 18:33:39 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
2672
2673 * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
2674 (EXECUTE_IF_CONFLICT): Likewise.
2675 (ALLOCNO_LIVE_P): Avoid signed division.
2676 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
2677 (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
2678 (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
2679
2680 Fri Nov 5 12:04:02 1999 Richard Henderson <rth@cygnus.com>
2681
2682 * haifa-sched.c (schedule_block): Don't crash if there's no
2683 next insn for an interblock movement.
2684 (add_branch_dependences): Don't allow clobber insns to move either.
2685
2686 Fri Nov 5 10:18:11 1999 Richard Henderson <rth@cygnus.com>
2687
2688 * i386.c (split_xf): New.
2689 * i386-protos.h: Declare it.
2690 * i386.md (movxf_1): Add general regs alternatives.
2691 (movxf_1+1): New splitter for same.
2692
2693 Fri Nov 5 12:05:52 1999 Nick Clifton <nickc@cygnus.com>
2694
2695 * function.c (purge_addressof_1): Add missing return values.
2696
2697 Fri Nov 5 10:07:25 1999 Nick Clifton <nickc@cygnus.com>
2698
2699 * function.c (is_addressof): New function. Returns true if
2700 the given piece of RTL is an ADDRESSOF.
2701 (purge_addressof_1): Make boolean. Return false if the
2702 ADDRESSOFs could not be purged.
2703 (purge_addressof): If ADDRESSOFs could not be purged from the
2704 notes attached to an insn, remove the offending note(s),
2705 unless they are attached to a libcall.
2706
2707 1999-11-05 Andreas Jaeger <aj@suse.de>
2708
2709 * genoutput.c (null_operand =): Initialize all fields.
2710
2711 * errors.h: Add extern to prototypes.
2712
2713 Fri Nov 5 01:44:09 1999 Jeffrey A Law (law@cygnus.com)
2714
2715 * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
2716 * configure: Rebuilt.
2717
2718 Fri Nov 5 01:24:37 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
2719
2720 * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
2721 (mirror_conflicts): New function.
2722 (global_alloc): Call it.
2723 (expand_preferences): Remove redundant CONFLICTP test.
2724 (find_reg, dump_conflicts): Likewise.
2725 (prune_preferences): Process conflicts one word at a time.
2726
2727 Fri Nov 5 01:05:21 1999 Richard Henderson <rth@cygnus.com>
2728
2729 * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
2730 instead of an explicit loop.
2731
2732 Thu Nov 4 23:07:14 1999 Jim Wilson <wilson@cygnus.com>
2733
2734 * cse.c (cse_insn): Revert Oct 31 change. When computing src_elt,
2735 if REG_RETVAL check succeeds, then put classp in src_elt.
2736
2737 Thu Nov 4 23:48:14 1999 Jeffrey A Law (law@cygnus.com)
2738
2739 * function.c (pad_to_arg_alignment): Only update argument_pad
2740 if the argument's alignment is greater than STACK_BOUNDARY.
2741
2742 Thu Nov 4 16:44:53 1999 Richard Henderson <rth@cygnus.com>
2743
2744 * bitmap.h (BITMAP_XFREE): New.
2745 * flow.c (life_analysis): Use it.
2746 (life_analysis_1): Free blocks.
2747
2748 * combine.c (undo_commit): New.
2749 (try_combine): Use it. Don't zap undobuf.undos.
2750 (combine_instructions): Don't zap undobuf.undos; free the
2751 undobuf.frees list.
2752
2753 * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
2754
2755 * stmt.c (cost_table_): New.
2756 (estimate_case_costs): Use it instead of xmalloc.
2757
2758 * toplev.c (compile_file): Reuse dumpname memory instead
2759 of strdup'ing it.
2760
2761 Thu Nov 4 16:36:44 1999 Richard Henderson <rth@cygnus.com>
2762
2763 * reg-stack.c (convert_regs_1): Initialize target_stack->top
2764 after verifying an EH edge.
2765
2766 * haifa-sched.c (init_rgn_data_dependences): Correctly
2767 size bb_pending_lists_length when zeroing.
2768
2769 Thu Nov 4 16:36:36 1999 Richard Henderson <rth@cygnus.com>
2770
2771 * function.c (diddle_return_value): New.
2772 (expand_function_end): Use it.
2773 * stmt.c (expand_null_return): Likewise.
2774 (expand_value_return): Likewise.
2775
2776 * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
2777
2778 * reload1.c (reload): Don't remove return value clobbers.
2779
2780 Thu Nov 4 13:33:46 1999 Richard Henderson <rth@cygnus.com>
2781
2782 * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
2783
2784 Thu Nov 4 12:49:52 1999 Richard Henderson <rth@cygnus.com>
2785
2786 * cse.c (cse_main): Use xmalloc, not alloca.
2787 (cse_basic_block): Likewise.
2788 * local-alloc.c (local_alloc): Likewise.
2789
2790 Thu Nov 4 14:22:12 1999 David Billinghurst <David.Billinghurst@riotinto.com.au>
2791 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2792
2793 * rtl.c: Include toplev.h.
2794 (fatal): Remove declaration.
2795
2796 Thu Nov 4 06:39:47 1999 Jeffrey A Law (law@cygnus.com)
2797
2798 * haifa-sched.c (schedule_block): Fix thinko.
2799
2800 1999-11-03 James McKelvey <mckelvey@fafnir.com>
2801
2802 * fixinc/fixincl.c(create_file): Allow for systems that do not have
2803 S_IR* defined values
2804
2805 1999-11-03 Philippe De Muyter <phdm@macqel.be>
2806
2807 * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
2808 call `malloc' instead.
2809
2810 Wed Nov 3 23:05:14 1999 Mark Mitchell <mark@codesourcery.com>
2811
2812 * flags.h (flag_renumber_insns): Declare.
2813 * emit-rtl.c (renumber_insns): Check flag_renumber_insns. Print
2814 renumbering table.
2815 * rtl.h (renumber_insns): Change prototype.
2816 * toplev.c (flag_renumber_insns): Define.
2817 (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
2818
2819 Wed Nov 3 15:11:27 1999 David S. Miller <davem@redhat.com>
2820
2821 * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
2822 and fpsqrtd. Use them and create fdiv function unit to more
2823 accurately represent fpu sqrt pipeline semantics on UltraSparc.
2824 * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
2825
2826 Wed Nov 3 15:11:27 1999 Matteo Frigo <athena@fftw.org>
2827
2828 * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
2829 3 on UltraSparc.
2830 * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
2831 insn into ready list, do not use just a raw swap.
2832
2833 Wed Nov 3 14:51:59 1999 Mark P. Mitchell <mark@codesourcery.com>
2834
2835 * rtl.h (renumber_insns): New function.
2836 (remove_unnecessary_notes): Likewise.
2837 * emit-rtl.c (renumber_insns): Define.
2838 (remove_unncessary_notes): Likewise.
2839 * toplev.c (rest_of_compilation): Remove dead code.
2840 Use renumber_insns and remove_unncessary_notes.
2841
2842 * gcse.c (struct null_pointer_info): New type.
2843 (get_bitmap_width): New function.
2844 (current_block): Remove.
2845 (nonnull_local): Likewise.
2846 (nonnull_killed): Likewise.
2847 (invalidate_nonnull_info): Take a null_pointer_info as input.
2848 (delete_null_pointer_checks_1): New function.
2849 (delete_null_pointer_checks): Use it.
2850
2851 * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
2852 (split_edges): Likewise.
2853 (schedule_block): Likewise.
2854 (compute_block_backward_dependencies): Likewise.
2855 (schedule_region): Likewise.
2856 (schedule_insns): Likewise.
2857
2858 Wed Nov 3 15:40:23 1999 Catherine Moore <clm@cygnus.com>
2859
2860 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
2861 * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
2862 * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
2863 * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
2864 * jump.c (delete_unreferenced_labels): Don't delete if
2865 LABEL_ALTERNATE_NAME is set.
2866 * print-rtl.c (print_rtx): Dump alternate name.
2867 * rtl.def (CODE_LABEL): Change format to "iuuis00s".
2868 * rtl.h (LABEL_ALTERNATE_NAME): Define.
2869 * rtl.texi (LABEL_ALTERNATE_NAME): Document.
2870 * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
2871
2872 Wed Nov 3 15:39:19 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2873
2874 * fix-header.c (recognized_extern, recognized_function): Constify
2875 a char*.
2876
2877 * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
2878 (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
2879 (compute_available): Remove unused variable `last'.
2880 (compute_nearerout): Remove unused variable `temp_bitmap'.
2881 (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
2882 Remove unused variable `x'.
2883
2884 * scan.h (recognized_function, recognized_extern): Constify a
2885 char*.
2886
2887 * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
2888
2889 Wed Nov 3 10:40:53 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2890
2891 * varasm.c (decode_rtx_const): Use XSTR to access the string
2892 of a SYMBOL_REF.
2893
2894 Wed Nov 3 10:10:58 1999 Richard Henderson <rth@cygnus.com>
2895
2896 * c-decl.c (duplicate_decls): Copy DECL_MODE too.
2897
2898 Wed Nov 3 12:12:59 1999 Bernd Schmidt <bernds@cygnus.co.uk>
2899
2900 * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
2901
2902 Wed Nov 3 03:26:28 1999 Jeffrey A Law (law@cygnus.com)
2903
2904 * pa.c (ireg_operand): New function.
2905 * pa.h (PREDICATE_CODES): Handle ireg_operand.
2906 * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
2907 Fix out of date comment.
2908
2909 * pa.md (negdi2): Turn into expander + anonymous pattern.
2910
2911 * reload.c (find_reloads): Fix typos in recent change.
2912
2913 * dwarf2out.c: Do not include ctype.h.
2914
2915 Tue Nov 2 21:53:44 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2916
2917 * regclass.c (record_reg_classes): Always use may_move_cost when
2918 seeing how operand fits with various register classes.
2919
2920 Tue Nov 2 15:38:17 1999 Richard Henderson <rth@cygnus.com>
2921
2922 * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
2923 * toplev.c: Revert Nov 1 13:22 change.
2924
2925 Tue Nov 2 14:21:37 1999 Jason Eckhardt <jle@cygnus.com>
2926
2927 * config/pa/pa.md (height reduction patterns): Add checks for
2928 overlapping operands to avoid semantic-destroying splits for
2929 height reduction patterns.
2930
2931 Tue Nov 2 15:27:31 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2932
2933 * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
2934 have been an hyphen, fixed.
2935 * configure: Rebuilt.
2936
2937 Tue Nov 2 17:04:36 1999 Nick Clifton <nickc@cygnus.com>
2938
2939 * config/arm/tpe.h: Add prototypes for exported functions.
2940 * config/arm/pe.c: Fix compile time warnings.
2941 * config/arm/semi.h: Fix compile time warnings.
2942 * config/arm/arm.c: Fix compile time warnings.
2943 * config/arm/arm.h: Fix compile time warnings.
2944 * config/arm/arm.md: Fix compile time warnings.
2945 * config/arm/thumb.c: Fix compile time warnings.
2946 * config/arm/thumb.h: Fix compile time warnings.
2947 * config/arm/thumb.md: Fix compile time warnings.
2948
2949 Tue Nov 2 04:10:24 1999 Jan Hubicka <hubicka@freesoft.cz>
2950
2951 * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
2952 detection code
2953
2954 * unroll.c (unroll_loop): Remove LOOP notes when loop is
2955 completely unrolled.
2956
2957 Tue Nov 2 16:57:22 1999 Bernd Schmidt <bernds@cygnus.co.uk>
2958
2959 * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
2960
2961 Tue Nov 2 09:43:00 1999 Catherine Moore <clm@cygnus.com>
2962
2963 * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
2964 * rtl.h (rtx_equal_p): Move prototype.
2965 * rtl.c (rtx_equal_function_value_matters): Move from
2966 rtlanal.c
2967 (rtx_equal_p): Likewise.
2968 * rtlanal.c (rtx_equal_function_value_matters): Delete.
2969 (rtx_equal_p): Likewise.
2970
2971 Mon Nov 1 23:21:17 1999 Jason Merrill <jason@yorick.cygnus.com>
2972
2973 * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
2974 ! HAS_INIT_SECTION.
2975
2976 Mon Nov 1 23:37:38 1999 Jeffrey A Law (law@cygnus.com)
2977
2978 * gcc.1 (PA options): Remove obsolete -mshared-libs options.
2979
2980 * pa.h (ADDR_VEC_ALIGN): Define.
2981
2982 * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
2983 notes when presented with "if (foo) break; end_of_loop" and
2984 the break sequence gets moved out of the loop.
2985
2986 * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
2987 Remove explicit zero initializations of entries within MAP.
2988
2989 Mon Nov 1 18:09:14 1999 Richard Henderson <rth@cygnus.com>
2990
2991 * reg-stack.c (convert_regs_1): Handle EH edges specially.
2992
2993 Mon Nov 1 15:41:01 1999 Mark P. Mitchell <mark@codesourcery.com>
2994
2995 * bitmap.h (BITMAP_XMALLOC): New macro.
2996 * flow.c (CLEAN_ALLOCA): Remove.
2997 (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
2998 (life_analysis): Likewise.
2999 (update_life_info): Don't use CLEAN_ALLOCA.
3000 (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
3001 (calculate_global_regs_live): Likewise.
3002 (print_rtl_with_bb): Likewise.
3003 (verify_flow_info): Likewise.
3004 * global.c (global_alloc): Likewise.
3005 (global_conflicts): Likewise.
3006 * integrate.c (save_for_inline_nocopy): Likewise.
3007 (expand_inline_function): Likewise.
3008 * jump.c (jump_optimize_1): Likewise.
3009 (duplicate_loop_exit_test): Likewise.
3010 (thread_jumps): Likewise.
3011 * loop.c (loop_optimize): Likewise.
3012 (combine_givs): Likewise.
3013 (recombine_givs): Likewise.
3014 * reorg.c (dbr_schedule): Likewise.
3015 * unroll.c (unroll_loop): Likewise.
3016
3017 * combine.c (combine_instructions): Use xmalloc instead of alloca.
3018
3019 Mon Nov 1 13:22:30 1999 Richard Henderson <rth@cygnus.com>
3020
3021 * toplev.c (rest_of_compilation): Don't optimize the CFG
3022 when rebuilding, just before dbr.
3023
3024 Mon Nov 1 14:35:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3025
3026 * output.h (assemble_end_function, assemble_destructor,
3027 assemble_constructor, assemble_gc_entry, assemble_global,
3028 assemble_label, output_constant_pool) Constify a char*.
3029
3030 * varasm.c (assemble_destructor, assemble_constructor,
3031 assemble_gc_entry, assemble_end_function, assemble_global,
3032 assemble_label, output_constant_pool): Likewise.
3033
3034 Mon Nov 1 14:22:51 1999 Nick Clifton <nickc@cygnus.com>
3035
3036 * config/arm/thumb.c (thumb_expand_prologue): Add comments
3037 explaining what is goin on in this function.
3038
3039 Mon Nov 1 08:03:15 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3040
3041 * regclass.c (record_reg_classes): In matching case, recompute
3042 costs since the direction of movement is different.
3043
3044 Sun Oct 31 21:59:34 MST 1999 Diego Novillo <dnovillo@cygnus.com>
3045
3046 * resource.c (mark_target_live_regs): For unconditional branches,
3047 the resources found at the branch target should be added to the
3048 resources found so far, not intersected.
3049
3050 Sun Oct 31 15:48:49 1999 Philippe De Muyter <phdm@macqel.be>
3051
3052 * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
3053 old cpp's.
3054 * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
3055 (sys/mman.h): Include this file only if #HAVE_MMAP.
3056 (run_compiles): Initialize `esac_fmt' with one old KR string, not
3057 with automatically concatenated ANSI strings.
3058
3059 Sun Oct 31 23:57:07 1999 Mark Mitchell <mark@codesourcery.com>
3060
3061 * ggc-page.c (struct page_entry): Remove save_num_free_objects.
3062 (DIV_ROUND_UP): Robustify.
3063 (ggc_recalculate_in_use_p): New function.
3064 (release_pages): Don't inline it.
3065 (ggc_alloc_obj): Don't refuse to allocate objects on pages for
3066 outer contexts.
3067 (ggc_pop_context): Use ggc_recalculate_in_use_p.
3068 (clear_marks): Always save in_use_p.
3069 (sweep_pages): Use ggc_recalculate_in_use_p.
3070 (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
3071 Release pages before counting statistics.
3072
3073 Sun Oct 31 23:42:37 1999 Mark Mitchell <mark@codesourcery.com>
3074
3075 * toplev.c (rest_of_compilation): Fix thinko in this change:
3076
3077 Fri Oct 29 15:25:07 1999 Arnaud Charlet <charlet@ACT-Europe.FR>
3078
3079 (rest_of_compilation): If inside an inlined external function,
3080 pretend we are just being declared.
3081
3082 Sun Oct 31 23:03:25 1999 Jeffrey A Law (law@cygnus.com)
3083
3084 * flow.c (calculate_global_regs_live): Fix thinko.
3085
3086 * integrate.c (expand_inline_function): Fix bugs in previous
3087 change from Oct 28, 1999.
3088
3089 Sun Oct 31 20:27:45 1999 Mark Mitchell <mark@codesourcery.com>
3090
3091 * stmt.c (expand_value_return): Fix typo in this change:
3092
3093 Thu Oct 28 18:06:50 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3094 (expand_value_return): Correctly convert VAL when promoting function
3095 return; support RETURN_REG being a PARALLEL.
3096
3097 Sun Oct 31 20:25:42 1999 Mark P. Mitchell <mark@codesourcery.com>
3098
3099 * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
3100
3101 Sun Oct 31 20:42:17 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3102
3103 * hard-reg-set.h (reg_names): Constify a char*.
3104
3105 * regclass.c (reg_names): Likewise.
3106
3107 * regs.h (reg_names): Likewise
3108
3109 * a29k/a29k.c (reg_names): Delete declaration.
3110
3111 * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
3112
3113 * arc/arc.c (arc_save_restore, arc_output_function_prologue,
3114 arc_output_function_epilogue): Likewise.
3115
3116 * elxsi/elxsi.c (reg_names): Likewise.
3117
3118 * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
3119
3120 * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
3121 Likewise.
3122
3123 * m88k/m88k.c (output_function_profiler): Likewise.
3124
3125 * sparc/sparc.c (sparc_flat_output_function_prologue,
3126 sparc_flat_output_function_epilogue): Likewise.
3127
3128 Sun Oct 31 13:32:15 CET 1999 Marc Lehmann <pcg@goof.com>
3129
3130 * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
3131 warning from -Wuninitialized and put it under -W.
3132 * function.c (uninitialized_vars_warning): Warn only when the
3133 corresponding flag is set.
3134
3135 Sun Oct 31 01:53:30 1999 Jeffrey A Law (law@cygnus.com)
3136
3137 * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
3138 is nonzero and the single set does not have an elt, then assign
3139 it an elt.
3140
3141 * simplify-rtx.c: New file.
3142 * Makefile.in (OBJS): Add simplify-rtx.o
3143 (simplify-rtx.o): Add dependencies.
3144 * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
3145 * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
3146 (cse_gen_binary, simplify_unary_operation): Delete.
3147 (simplify_binary_operation, simplify_plus_minus): Likewise.
3148 (check_fold_consts, simplify_relation_operation): Likewise.
3149 (simplify_ternary_operation): Likewise.
3150 (delete_trivially_dead_insns): Simplify the contents of the
3151 REG_EQUAL note before trying to substitute it into the source
3152 of the reg-reg copy at the end of a libcall sequence.
3153
3154 * combine.c (combine_simplify_rtx): Renamed from simplify_rtx. All
3155 references/callers changed.
3156
3157 * mn10200.c (mn10200_va_arg): Force the return value into a
3158 register.
3159
3160 * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
3161
3162 * cccp.c (macroexpand): Avoid out of range accesses for omitted
3163 arguments.
3164
3165 Sat Oct 30 22:42:50 1999 Stephen L Moshier <moshier@mediaone.net>
3166
3167 * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
3168
3169 Sat Oct 30 22:19:26 1999 Jeffrey A Law (law@cygnus.com)
3170
3171 * fold-const.c (fold): Fix thinko when optimizing comparisons
3172 against -0.0.
3173
3174 Sat Oct 30 21:32:17 1999 David Starner <dstarner98@aasaa.ofe.org>
3175
3176 * gcc.texi (Passes): Update front-end files to their current
3177 location.
3178
3179 Sat Oct 30 14:41:40 1999 Richard Henderson <rth@cygnus.com>
3180
3181 * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
3182 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3183 (PREDICATE_CODES): Add addition_operation.
3184 * alpha-protos.h (addition_operation): Declare.
3185 (secondary_reload_class): Likewise.
3186 * alpha.c (addition_operation): New.
3187 (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
3188 * alpha.md (adddi3): Turn into expander.
3189 (*lda, *adddi_2): New.
3190 (movsf, movdf patterns): Don't preference integer regs.
3191 (movsi, movdi patterns): Don't preference fp regs.
3192
3193 Sat Oct 30 14:38:22 1999 Richard Henderson <rth@cygnus.com>
3194
3195 * genrecog.c (write_switch): Check for duplicate CODE cases.
3196
3197 Sat Oct 30 14:31:48 1999 Richard Henderson <rth@cygnus.com>
3198
3199 * ggc-common.c: Update pre-function commentary.
3200 * ggc-page.c: Likewise.
3201 (poison): Remove.
3202 (poison_pages): Use memset directly.
3203 (ggc_alloc_obj): Likewise. Use a different pattern than poison_pages.
3204 (ggc_collect): Poison before sweeping.
3205 * ggc-simple.c: Update pre-function commentary.
3206 (ggc_alloc_obj): Poison non-zeroed memory.
3207
3208 Sat Oct 30 14:28:52 1999 Mark Mitchell <mark@codesourcery.com>
3209
3210 * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
3211 match format string, even on 64-bit hosts.
3212 * gcc-page.c (ggc_page_print_statistics): Likewise.
3213
3214 Sat Oct 30 14:38:04 1999 Catherine Moore <clm@cygnus.com>
3215
3216 * config/i386/i386.c (ix86_cpu): Revert last patch.
3217 * config/i386/i386.h (ix86_cpu): Ditto.
3218
3219 Fri Oct 29 17:00:42 1999 Jim Wilson <wilson@cygnus.com>
3220
3221 * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
3222 TYPE_SIZE, convert type of result to sizetype.
3223
3224 Fri Oct 29 14:34:17 1999 Richard Henderson <rth@cygnus.com>
3225
3226 * flow.c (count_or_remove_death_notes): Equate NULL with the
3227 universal set.
3228
3229 * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
3230 * toplev.c (rest_of_compilation): Rebuild CFG immediately before
3231 dbr_schedule.
3232
3233 * i386.c (pic_label_no): Delete.
3234 (ix86_attr_length_default): Don't use single_set to peek
3235 inside a parallel.
3236
3237 * recog.c (peephole2_optimize): Allow recog_next_insn to index
3238 the first insn after bb->end.
3239 * i386.md (push mem peeps): Scratch is live after evaluation
3240 of the memory.
3241 (cmp mem peep): Similarly.
3242
3243 Fri Oct 29 11:50:11 1999 Catherine Moore <clm@cygnus.com>
3244
3245 * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
3246 * function.c (pad_to_arg_alignment): Add missing braces.
3247
3248 Fri Oct 29 13:53:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3249
3250 * alpha/alpha-protos.h (literal_section): Add prototype.
3251 (alpha_need_linkage, alpha_start_function,alpha_end_function):
3252 Constify a char*.
3253
3254 * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
3255 prototype.
3256 (alpha_start_function, alpha_end_function, float_strings,
3257 alpha_need_linkage): Constify a char*
3258
3259 * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
3260
3261 * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
3262
3263 * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
3264
3265 * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
3266
3267 Fri Oct 29 13:49:39 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3268
3269 * flow.c (debug_flow_info): Add prototype.
3270
3271 * gcc.c (main): Likewise.
3272
3273 * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
3274 Likewise.
3275
3276 * reload1.c (failed_reload, set_reload_reg): Likewise.
3277
3278 * mips-tfile.c (main): Likewise.
3279 (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
3280 with ATTRIBUTE_NORETURN.
3281
3282 Fri Oct 29 18:16:03 1999 Andrew Haley <aph@cygnus.com>
3283
3284 * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
3285 DECL is not a memory ref.
3286
3287 Fri Oct 29 09:05:34 1999 Catherine Moore <clm@cygnus.com>
3288
3289 * config/i386/i386.h (ix86_cpu): Remove extern attribute.
3290 * config/i386/i386.c (ix86_cpu): Add extern attribute.
3291
3292 Fri Oct 29 16:30:04 1999 Andrew Haley <aph@cygnus.com>
3293
3294 * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
3295 * config/mips/elf64.h: ditto.
3296
3297 Fri Oct 29 08:03:57 1999 Catherine Moore <clm@cygnus.com>
3298
3299 * expr.c (emit_push_insn): New argument alignment_pad.
3300 Update all callers. Adjust stack pointer based on alignment pad.
3301 * function.c (pad_to_arg_alignment): New argument alignment_pad.
3302 Update all callers. Track alignment_pad if boundary > PARM_BOUNDARY.
3303 (locate_and_pad_parm): New argument alignment_pad. Update all
3304 callers.
3305 * expr.h (emit_push_insn): Update prototype.
3306 (locate_and_pad_parm): Update prototype.
3307 * calls.c (arg_data): Add new field alignment_pad.
3308 (initialize_argument_information): Initialize alignment_pad.
3309
3310 Fri Oct 29 02:51:35 1999 Mark Mitchell <mark@codesourcery.com>
3311
3312 * except.c (free_eh_nesting_info): Free the info itself.
3313 * function.c (free_after_compilation): Don't free NULL.
3314 * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
3315 (pre_edge_insert): Free inserted.
3316 * stmt.c (free_stmt_status): Don't free NULL.
3317
3318 Fri Oct 29 15:25:07 1999 Arnaud Charlet <charlet@ACT-Europe.FR>
3319
3320 * gcov.c (DIR_SEPARATOR): Provide default.
3321 (output_data): Add test for MS-DOS format absolute filename.
3322 (fancy_abort): Correct program name.
3323 (open_files): Open all files in binary mode.
3324 * libgcc2.c (__bb_exit_func): Likewise.
3325
3326 * profile.c (init_branch_prob): Specify binary when opening files.
3327
3328 * flags.h (flag_unwind_tables): New decl.
3329 * toplev.c (flag_unwind_table): New definition.
3330 (f_options): Add -funwind-tables.
3331 (decode_g_option): Clarify warning when unknown -g option is given.
3332 (rest_of_compilation): If inside an inlined external function,
3333 pretend we are just being declared.
3334
3335 * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
3336 (dwarf2out_frame_finish): Likewise.
3337
3338 Fri Oct 29 07:44:26 1999 Vasco Pedro <vp@di.fct.unl.pt>
3339
3340 * fold-const.c (merge_ranges): If not in0, but in1, handle
3341 upper bounds equal like subset case.
3342
3343 Thu Oct 28 19:22:24 1999 Douglas Rupp <rupp@gnat.com>
3344
3345 * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
3346 passed in a register but moved to the stack.
3347
3348 Thu Oct 28 19:12:57 1999 Sam Tardieu <tardieu@act-europe.fr>
3349
3350 * gcc.c (pass_exit_codes, greatest_status): New variables.
3351 (struct option_map): Add entry for "--pass-exit-codes".
3352 (execute): Update greatest_status if error.
3353 (display_help): Add documentation for -pass-exit-codes.
3354 (process_command): Handle -pass-exit-codes.
3355 (main): Look at pass_exit_codes and greatest_status on call to exit.
3356
3357 Thu Oct 28 18:06:50 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3358
3359 * reload.c (find_reloads): Refine test for no input reload
3360 case to not includes reloads emitted after insn.
3361
3362 * function.c (find_temp_slots_from_address): Handle sum involving
3363 a register that points to a temp slot.
3364 (update_temp_slot_address): Make recursive call if both old and
3365 new are PLUS with a common operand.
3366 * calls.c (expand_call): Mark temp slot for result as having
3367 address taken.
3368
3369 * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
3370
3371 * gcc.c (process_command): Add standard_exec_prefix with "GCC"
3372 component as well as "BINUTILS".
3373
3374 * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
3375 * integrate.c (copy_rtx_and_substitute): Likewise.
3376 (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
3377 All callers changed.
3378 * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
3379
3380 * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
3381 gdb extensions, write size of type; also be more consistent
3382 in using references when this is a subtype.
3383
3384 * pa.md (extv, extzv, insv): Use define_expand to reject constant
3385 that is out of range.
3386
3387 * loop.c (unknown_constant_address_altered): New variable.
3388 (prescan_loop): Initialize it.
3389 (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
3390 (invariant_p, case MEM): Remove handling for volatile and readonly;
3391 check new variable if readonly.
3392 (check_dbra_loop): Chdeck unknown_constant_address_altered.
3393
3394 * cse.c (canon_hash, case MEM): Do not record if BLKmode.
3395 (addr_affects_sp_p): Removed from note_mem_written and only
3396 define #ifdef AUTO_INC_DEC.
3397
3398 * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
3399
3400 * regclass.c (record_reg_classes): Properly handle register move
3401 directions.
3402
3403 * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
3404 Don't think valid if both operands are invalid.
3405 (struct constant_descriptor): New field RTL.
3406 (mark_const_hash_entry): Mark it.
3407 (record_constant{,_rtx}): Initialize it.
3408 (output_constant_def): Allocate RTL in permanent obstack and
3409 save in table.
3410 ({record,compare}_constant_1): Modes must match for
3411 CONSTRUCTOR of ARRAY_TYPE.
3412
3413 * c-common.h (initializer_constant_valid_p): Delete decl from here.
3414 * output.h (initializer_constant_valid_p): Move decl to here.
3415 * c-common.c (initializer_constant_valid_p): Delete function from here.
3416 * varasm.c (initializer_constant_valid_p): Move function to here.
3417
3418 * tree.h (STRIP_SIGN_NOPS): New macro.
3419 * fold-const.c (optimize_minmax_comparison): New function.
3420 (invert_truthvalue, case WITH_RECORD_EXPR): New case.
3421 (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
3422 (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
3423 cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
3424 widening conversions.
3425 (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
3426 to look at size of mode, not precision of type; also add missing cases.
3427 (optimize_bit_field_compare, decode_field_reference): Don't try to
3428 optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
3429
3430 * dwarf2out.c (ctype.h): Include.
3431 (dwarf2out_set_demangle_name_func): New function.
3432 (size_of_line_info): Deleted.
3433 (output_line_info): Compute size of line info table from difference
3434 of labels.
3435 (base_type_die, add_name_attribute): Call demangle function, if any.
3436 (field_byte_offset): Use bits per word for variable length fields.
3437 (gen_array_type_die): Add array name.
3438 (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
3439 (dwarf2out_add_library_unit_info): New function.
3440
3441 * explow.c (set_stack_check_libfunc): New function.
3442 (stack_check_libfunc): New static variable.
3443 (probe_stack_range): Allow front-end to set up a libfunc to call.
3444
3445 * combine.c (simplify_comparison): When making comparison in wider
3446 mode, check for having commuted an AND and a SUBREG.
3447 (contains_muldiv): New function.
3448 (try_combine): Call it when dividing a PARALLEL.
3449 (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
3450 (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
3451 a PLUS.
3452 (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
3453 use one of the CLOBBERs instead.
3454 (if_then_else_cond): If comparing against zero, just return thing
3455 being compared.
3456
3457 * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
3458 Don't generate shifts and subtract if have conditional arithmetic.
3459
3460 * rtl.h (delete_barrier): New declaration.
3461 * jump.c (jump_optimize): Set up to handle conditional call.
3462 In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
3463 (delete_barrier): New function.
3464
3465 * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
3466
3467 * recog.c (nonmemory_operand): Accept ADDRESSOF.
3468
3469 * tree.c (build_type_attribute_variant): Push to obstack of
3470 ttype around type_hash_canon call.
3471
3472 * expr.c (placeholder_list): Move decl to file scope.
3473 (expand_expr): Don't force access to volatile just because its
3474 address is taken.
3475 If ignoring reference operations, just expand the operands.
3476 (expand_expr, case COMPONENT_REF): Propagate
3477 EXPAND_CONST_ADDRESS to recursive call when expanding inner.
3478 Refine test for using bitfield operations vs pointer punning.
3479 (expand_expr, case CONVERT_EXPR): If converting to
3480 BLKmode UNION_TYPE from BLKmode, just return inner object.
3481 Use proper mode in store_field call.
3482 Properly set sizes of object to store and total size in store_field
3483 call for convert to union.
3484 (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
3485 memory (like for ADDR_EXPR). Also, don't put constant in register if
3486 we'll want it in memory.
3487 (readonly_fields_p): New function.
3488 (expand_expr, case INDIRECT_REF): Call it if LHS.
3489 (expand_assignment): Handle a RESULT_DECL where
3490 DECL_RTL is a PARALLEL.
3491 (do_jump, case WITH_RECORD_EXPR): New case.
3492 (get_inner_reference): Always go inside a CONVERT_EXPR
3493 and NOP_EXPR if both modes are the same.
3494 (store_field): Use bitfield operations if size of bitsize is not same
3495 as size of RHS's type.
3496 Check for bitpos not a multiple of alignment in BLKmode case.
3497 Do block move in largest possible alignment.
3498 (store_constructor): Set BITSIZE to -1 for variable size and properly
3499 in case of array of BLKmode.
3500 (expand_expr_unaligned): New function.
3501 (do_compare_and_jump): Call it.
3502
3503 * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
3504 * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
3505 does not include 'o'.
3506
3507 * function.c (instantiate_virtual_regs_1, case SET): Handle case where
3508 both SET_DEST and SET_SRC reference a virtual register.
3509 (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
3510
3511 * integrate.c (expand_inline_function): Handle case of setting
3512 virtual stack vars register (from built in setjmp); when parameter
3513 lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
3514 (subst_constant): Add new parm, MEMONLY.
3515 (expand_inline_function, integrate_parm_decls): Pass new parm.
3516 (integrate_decl_tree): Likewise.
3517 (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
3518 (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
3519 (copy_rtx_and_substitute, case SET): Add explicit calls to
3520 copy_rtx_and_substitute for both sides.
3521
3522 * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
3523 constraints.
3524 (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
3525 within INDEX_TYPE, instead of before.
3526 (fixup_gotos): Use f->target_rtl, not the next insn,
3527 since latter may be from a later fixup.
3528 (expand_value_return): Correctly convert VAL when promoting function
3529 return; support RETURN_REG being a PARALLEL.
3530 (expand_return): When checking for result in regs and having
3531 cleanup, consider PARALLEL in DECL_RTL as being in regs.
3532
3533 1999-10-28 21:27 -0700 Zack Weinberg <zack@bitmover.com>
3534
3535 * cpplib.h (struct cpp_buffer: fname, nominal_fname,
3536 last_nominal_fname): Mark const.
3537 (struct include_hash: name, nshort, control_macro): Mark
3538 const.
3539 (struct macrodef: symnam): Mark const.
3540 (struct if_stack: fname): Mark const.
3541 (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
3542 (IStable): New character-syntax array which encompasses all
3543 the old is_foo arrays.
3544 (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
3545 is_space): New macros for interrogating IStable.
3546 (check_macro_name): Kill last argument. All callers changed.
3547
3548 * cppinit.c (initialize_char_syntax): Delete.
3549 (is_idchar, is_idstart, is_hor_space, is_space,
3550 trigraph_table): Delete.
3551 (IStable): New. Initialize with clever macros to avoid
3552 information duplication.
3553 (builtin_array): Table of builtins to get rid of explicit list
3554 in initialize_builtins.
3555 (initialize_builtins): Use builtins_array.
3556 (cpp_start_read): Call init_IStable, and set IStable['$'] if
3557 opts->dollars_in_ident.
3558
3559 * cppexp.c: Change all refs to is_xyz[] arrays to use new
3560 is_xyz() macros.
3561 (cpp_parse_expr): Avoid 'format string is not constant'
3562 warning. Use ISGRAPH to identify printable chars.
3563 * cppfiles.c: Change all refs to is_xyz[] arrays to use new
3564 is_xyz() macros.
3565 (read_and_prescan): Map trigraphs to chars with open-coded
3566 if-else-if-... sequence, not a lookup table.
3567 * cpphash.c: Change all refs to is_xyz[] arrays to use new
3568 is_xyz() macros.
3569 * cpplib.c: Change all refs to is_xyz[] arrays to use new
3570 is_xyz() macros. Kill SKIP_ALL_WHITE_SPACE (unused).
3571 (check_macro_name): Remove ability to report an invalid
3572 assertion name, which is never used.
3573 (do_line): Constify a couple of char *'s.
3574 * cppmain.c (main): Call cpp_cleanup before returning.
3575
3576 Thu Oct 28 21:16:35 1999 Mark Mitchell <mark@codesourcery.com>
3577
3578 * ggc.h (struct ggc_statistics): New type.
3579 (ggc_get_size): New function.
3580 (ggc_print_statistics): Likewise.
3581 * ggc-common.c (ggc_stats): New variable.
3582 (ggc_mark_rtx_children): Keep statistics.
3583 (ggc_mark_tree_children): Likewise.
3584 (ggc_print_statistics): New function.
3585 * ggc-page.c (struct globals): Add bytes_mapped field.
3586 (alloc_anon): Update it.
3587 (release_pages): Likewise.
3588 (ggc_get_size): New function.
3589 (ggc_page_print_statistics): New function.
3590 * ggc-simple.c (ggc_get_size): New function.
3591
3592 Fri Oct 29 06:32:44 1999 Geoffrey Keating <geoffk@cygnus.com>
3593
3594 * flow.c (propagate_block): When the last reference to a label
3595 before an ADDR_VEC is deleted because the reference is a dead
3596 store, delete the ADDR_VEC.
3597
3598 Thu Oct 28 12:28:50 1999 Richard Henderson <rth@cygnus.com>
3599
3600 * resource.c (find_free_register): Don't use the frame pointer
3601 if frame_pointer_needed.
3602
3603 Thu Oct 28 10:02:00 1999 Jim Wilson <wilson@cygnus.com>
3604
3605 * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
3606 (function_arg_pass_by_reference): Check for a NULL pointer in cum.
3607
3608 * config/i960/i960.c (i960_va_start): New locals base, num.
3609 Use INDIRECT_REF instead of ARRAY_REF on valist.
3610 (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
3611
3612 Thu Oct 28 09:45:48 1999 Mark Mitchell <mark@codesourcery.com>
3613
3614 * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
3615
3616 Thu Oct 28 03:37:50 1999 Peter Gerwinski <peter@gerwinski.de>
3617
3618 * tree.def (PLACEHOLDER_EXPR): Update comments.
3619
3620 Thu Oct 28 06:47:32 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3621
3622 * c-common.c (check_format_info): Avoid non-literal format string
3623 warnings when `first_arg_num' is zero.
3624
3625 Thu Oct 28 12:28:48 1999 Bernd Schmidt <bernds@cygnus.co.uk>
3626
3627 * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
3628
3629 Thu Oct 28 11:05:13 1999 Richard Earnshaw <rearnsha@arm.com>
3630
3631 * arm.md (casesi_insn): Add a clobber of the condition code
3632 register.
3633
3634 Mon Oct 18 21:16:06 1999 Fred Fish <fnf@be.com>
3635
3636 * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
3637 used by both cc1 and cc1plus.
3638
3639 Thu Oct 28 10:00:48 1999 Nick Clifton <nickc@cygnus.com>
3640
3641 * config/arm/arm.c: Initialise arm_structure_size_boundary to
3642 DEFAULT_STRUCTURE_SIZE_BOUNDARY.
3643 * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
3644 to the value 32 if it has not already been defined.
3645 * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
3646 Override definition in arm.h with a value of 8.
3647
3648 Thu Oct 28 03:12:02 1999 David Starner <dstarner98@aasaa.ofe.org>
3649
3650 * c-pragma.c (push_alignment): Don't check the return value
3651 of xmalloc.
3652
3653 Thu Oct 28 03:08:38 1999 Matteo Frigo <athena@fftw.org>
3654
3655 * sparc.h (ADJUST_COST): Fix thinko.
3656
3657 Thu Oct 28 02:44:03 1999 Glen Nakamura <glen.nakamura@usa.net>
3658
3659 * cccp.c (rescan): Fixed obp pointer handling around call to
3660 check_expand subroutine.
3661
3662 Thu Oct 28 02:15:22 1999 Jeffrey A Law (law@cygnus.com)
3663
3664 * gcse.c (delete_null_pointer_checks): Only record non-null info
3665 for pseudos when examining stores.
3666
3667 * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
3668 splitters for these patterns. Use "#" for output templates.
3669 (addsi3_carryin_shift): New pattern.
3670
3671 Thu Oct 28 10:20:02 1999 Geoffrey Keating <geoffk@cygnus.com>
3672
3673 * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
3674 of the function return register into a plain REG until
3675 after function inlining is done.
3676
3677 Wed Oct 27 15:21:46 1999 Richard Henderson <rth@cygnus.com>
3678
3679 * jump.c (jump_optimize_1): If we did cross-jumping, and
3680 the data will matter, rebuild the CFG.
3681 * reg-stack.c (reg_to_stack): Only (re)build the CFG if
3682 not optimizing. Don't run shorten_branches.
3683 * toplev.c (rest_of_compilation): Run shorten_branches after
3684 reg_to_stack.
3685
3686 Wed Oct 27 12:33:40 1999 Mark Mitchell <mark@codesourcery.com>
3687
3688 * rtl.h (note_stores): Add additional paramter.
3689 * rtlanal.c (reg_set_p_1): Take additional paramter.
3690 (reg_set_last_1): Likewise.
3691 (reg_set_p): Adjust call to note_stores.
3692 (reg_set_last): Likewise.
3693 (note_stores): Pass data parameter to worker function.
3694 * alias.c (record_set): Take additional parameter.
3695 (init_alias_analysis): Pass it.
3696 * caller-save.c (mark_set_regs): Take additional parameter.
3697 (save_call_clobbered_regs): Pass NULL to note_stores.
3698 * combine.c (set_nonzero_bits_and_sign_copies): Take additional
3699 parameter.
3700 (record_dead_and_set_regs_1): Likewise.
3701 (reg_dead_at_p_1): Likewise.
3702 (combine_instructions): Adjust calls to note_stores.
3703 (try_combine): Likewise.
3704 (record_dead_insn): Remove.
3705 (record_dead_and_set_regs): Adjust calls to note_stores.
3706 (reg_dead_at_p): Likewise.
3707 * cse.c (invalidate_skipped_set): Take additional parameter.
3708 (cse_check_loop_start): Likewise.
3709 (cse_check_loop_start_value): Remove.
3710 (cse_set_around_loop): Adjust calls to note_stores.
3711 * flow.c (notice_stack_pointer_modification): Take additional
3712 parameter. Remove duplicate declaration.
3713 (record_volatile_insns): Adjust calls to note_stores.
3714 * gcse.c (record_set_info): Take additional parameter.
3715 (record_last_set_info): Likewise.
3716 (invalidate_nonnull_info): Likewise.
3717 (record_set_insn): Remove.
3718 (compute_sets): Adjust calls to note_stores.
3719 (last_set_insn): Remove.
3720 (compute_hash_table): Adjust calls to note_stores.
3721 (insert_insn_end_bb): Likewise.
3722 (delete_null_pointer_checks): Likewise.
3723 * global.c (mark_reg_store): Take additional parameter.
3724 (mark_reg_clobber): Likewise.
3725 (reg_becomes_live): Likewise.
3726 (global_conflicts): Adjust calls to note_stores.
3727 (build_insn_chain): Likewise.
3728 * integrate.c (note_modified_parmregs): Take additional parameter.
3729 (mark_stores): Likewise. Make it static.
3730 (save_for_inline_nocopy): Adjust calls to note_stores.
3731 (try_constants): Likewise.
3732 * integrate.h (mark_stores): Remove declaration.
3733 * jump.c (mark_modified_reg): Take additional parameter.
3734 (thread_jumps): Adjust calls to note_stores.
3735 * local-alloc.c (validate_equiv_mem_from_store): Take additional
3736 parameter.
3737 (no_equiv): Likewise.
3738 (reg_is_set): Likewise.
3739 (validate_equiv_mem): Adjust calls to note_stores.
3740 (update_equiv_regs): Likewise.
3741 (block_alloc): Likewise.
3742 * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
3743 (note_addr_stored): Take additional parameter.
3744 (note_set_pseudo_multiple_uses): Likewise.
3745 (record_initial): Likewise.
3746 (prescan_loop): Adjust calls to note_stores.
3747 (strength_reduce): Likewise.
3748 (check_dbra_loop): Likewise.
3749 * regmove.c (flags_set_1): Take additional paramter.
3750 (mark_flags_life_zones): Adjust calls to note_stores.
3751 * reload1.c (mark_not_eliminable): Take additional parameter.
3752 (forget_old_reloads_1): Likewise.
3753 (reload_cse_invalidate_rtx): Likewise.
3754 (reload_cse_check_clobber): Likewise.
3755 (reload_combine_note_store): Likewise.
3756 (move2add_note_store): Likewise.
3757 (reload): Adjust calls to note_stores.
3758 (reload_as_needed): Likewise.
3759 (emit_reload_insns): Likewise.
3760 (reload_cse_regs_1): Likewise.
3761 (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
3762 (reload_combine): Adjust calls to note_stores.
3763 * resource.c (update_live_status): Take additional paramter.
3764 (mark_target_live_regs): Adjust calls to note_stores.
3765 * stupid.c (find_clobbered_regs): Take additional parameter.
3766 (stupid_life_analysis): Adjust calls to note_stores.
3767
3768 Wed Oct 27 19:26:12 1999 Nick Clifton <nickc@cygnus.com>
3769
3770 * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
3771 definition.
3772
3773 * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
3774 definition.
3775
3776 * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
3777 of the variable arm_structure_size_boundary.
3778
3779 Wed Oct 27 02:05:58 1999 Mark P. Mitchell <mark@codesourcery.com>
3780
3781 * alias.c (init_alias_analysis): Allocate reg_known_value and
3782 reg_known_equiv_p on the heap. Likewise for new_reg_base_value
3783 and reg_seen.
3784 (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
3785 * cse.c (cse_main): Call end_alias_analysis.
3786 * haifa-sched.c (schedule_insns): Likewise.
3787 * local-alloc. (update_equiv_regs): Likewise.
3788 * reload1.c (reload_cse_regs): Likewise.
3789
3790 Wed Oct 27 01:49:17 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3791
3792 * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
3793 * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
3794 mapping from MASK_FPU.
3795
3796 Wed Oct 27 01:42:26 1999 Scott Christley <scottc@net-community.com>
3797
3798 * sparc.md (call): Don't bound structure return size to 0xfff.
3799
3800 Wed Oct 27 00:56:59 1999 Richard Henderson <rth@cygnus.com>
3801
3802 * resource.c (mark_target_live_regs): Check that the target
3803 insn wasn't created after compute_bb_for_insn.
3804
3805 Tue Oct 26 23:15:03 1999 Mark Mitchell <mark@codesourcery.com>
3806
3807 * ggc-page.c (poison_pages): Don't be overzealous.
3808
3809 Tue Oct 26 23:29:18 1999 Jeffrey A Law (law@cygnus.com)
3810
3811 * alias.c: Update comments for ADDRESS.
3812 (nonlocal_reference_p): Look inside the ADDRESS to determine if
3813 it is a local memory reference.
3814
3815 * c-typeck.c (build_function_call): Check that the built-in
3816 function is of class BUILT_IN_NORMAL before trying to recongize
3817 it as BUILT_IN_ABS.
3818 * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
3819 * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
3820
3821 Wed Oct 27 00:14:13 1999 Robert Lipe <robertlipe@usa.net>
3822
3823 * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
3824 of alloca.
3825 (pre_gcse): Likewise.
3826 (hoist_expr_reaches_here_p): Likewise.
3827 (hoist_code): Likewise.
3828 (pre_expr_reaches_here_p): Replace alloca with xcalloc. Move core
3829 code to ...
3830 (pre_expr_reaches_here_p_work): ... here.
3831 (expr_reaches_here_p): Replace alloca with xcalloc. Move core
3832 code to ...
3833 (expr_reaches_here_p_work): ... here.
3834
3835 Tue Oct 26 20:42:45 1999 Richard Henderson <rth@cygnus.com>
3836
3837 * resource.c (find_basic_block): Delete.
3838 (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
3839 (init_resource_info): Call compute_bb_for_insn.
3840
3841 Tue Oct 26 20:21:02 1999 Richard Henderson <rth@cygnus.com>
3842
3843 * flow.c (merge_blocks_move_predecessor_nojumps): Cope
3844 with already adjacent blocks, but no fallthru.
3845 (merge_blocks_move_successor_nojumps): Simplify.
3846 (debug_flow_info): New.
3847
3848 * toplev.c (rest_of_compilation): Open jump1 dump file before
3849 jump and close after, as opposed to just using dump_rtl.
3850
3851 Wed Oct 27 03:09:23 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
3852
3853 * reload.h (earlyclobber_operand_p): Declare.
3854 * reload.c (earlyclobber_operand_p): Don't declare. No longer static.
3855 * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with
3856 an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
3857 case where the RELOAD_OTHER reload is new. Use earlyclobber_operand_p.
3858
3859 Tue Oct 26 18:23:38 1999 Jan Hubicka <hubicka@freesoft.cz>
3860 Richard Henderson <rth@cygnus.com>
3861
3862 * emit-rtl.c (emit_block_insn_before): New.
3863 (emit_block_insn_after): New.
3864 * basic-block.h: Declare them.
3865
3866 * bitmap.h: Protect from multiple inclusion.
3867
3868 * recog.c (scratch_operand): Handle VOIDmode correctly.
3869
3870 * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
3871
3872 * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
3873 * function.c (assign_parms): Likewise.
3874 * global.c (global_conflicts): Clarify STACK_REGS commentary.
3875
3876 * reg-stack.c (max_uid): Remove.
3877 (blocks, block_begin, block_end, block_drops_in): Remove.
3878 (block_stack_in, block_out_reg_set, block_number): Remove.
3879 (struct block_info_def, BLOCK_INFO): New.
3880 (enum emit_where): New.
3881 (current_block): New.
3882 (BLOCK_NUM): Remove.
3883 (mark_regs_pat, record_label_references): Remove.
3884 (record_reg_life_pat, record_reg_life, find_blocks): Remove.
3885 (nan): New.
3886 (goto_block_pat, print_blocks, dump_stack_info): Remove.
3887 (reg_to_stack): Simplified test for existance of fp code. Use
3888 flow.c code. Call shorten_branches after cross-jump opt.
3889 (check_asm_stack_operands): Renamed from record_asm_reg_life.
3890 Return false if the asm doesn't use stack regs. Don't do life
3891 analysis on the asm.
3892 (emit_pop_insn): Replace function pointer arg `when' with
3893 enum `where'. Update all callers.
3894 (change_stack): Likewise. Update basic block end.
3895 (emit_swap_insn): Use current_block->head to limit reverse search
3896 for start of block. Use emit_block_insn_after.
3897 (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
3898 (subst_asm_stack_regs): Use check_asm_stack_operands. Use direct
3899 structure assignment instead of bcopy.
3900 (print_stack): New.
3901 (convert_regs_entry, convert_regs_exit): New.
3902 (convert_regs_1, convert_regs_2): Split out from convert_regs.
3903 Work on basic blocks and the CFG.
3904 (convert_regs): Use them.
3905
3906 * i386.c (output_fix_trunc): Remove code for DImode input operand
3907 not at top-of-stack.
3908 * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
3909 appropriate mode.
3910 (fix_truncdi_1): Allow any mode scratch.
3911
3912 Tue Oct 26 13:30:35 1999 Richard Henderson <rth@cygnus.com>
3913
3914 * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
3915 * linux.h, netbsd.h, vms.h: Not here.
3916
3917 1999-10-26 Gavin Romig-Koch <gavin@cygnus.com>
3918
3919 * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
3920 ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
3921 (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
3922 CONDITIONAL_REGISTER_USEAGE): Use them.
3923 * config/mips/mips.c (mips_move_1word,mips_move_2words,
3924 gen_conditional_branch,override_options) : Use them.
3925 * config/mips/mips.md : Use them.
3926
3927 Tue Oct 26 13:09:23 1999 Richard Henderson <rth@cygnus.com>
3928
3929 * i386.md (zero_extendqihi2): Use SImode register name with andl.
3930
3931 Tue Oct 26 12:35:38 1999 Richard Henderson <rth@cygnus.com>
3932
3933 * integrate.c (function_cannot_inline_p): Don't allow inlining
3934 if setjmp is used.
3935
3936 Tue Oct 26 14:10:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3937
3938 * c-parse.in (cast_expr): Constify.
3939
3940 * cccp.c (special_symbol): Likewise.
3941
3942 * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
3943
3944 * dwarf2out.c (base_type_die): Likewise.
3945
3946 * global.c (allocno_compare): Likewise.
3947
3948 * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
3949
3950 * regclass.c (fix_register): Likewise.
3951
3952 * rtl.h (fix_register): Likewise.
3953
3954 * stupid.c (stupid_reg_compare): Likewise.
3955
3956 * toplev.c (decode_f_option): Likewise.
3957
3958 * tree.c (build_complex_type): Likewise.
3959
3960 Tue Oct 26 18:35:25 1999 Richard Earnshaw <rearnsha@arm.com>
3961
3962 * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
3963
3964 Tue Oct 26 15:42:56 1999 Bernd Schmidt <bernds@cygnus.co.uk>
3965
3966 * reload.c (find_reloads): Compute mode and nregs fields of all
3967 reloads.
3968 * reload1.c (calculate_needs_all_insns): Simplify a bit.
3969 (calculate_needs): Use precomputed mode/nregs values.
3970 (allocate_reload_reg): Likewise.
3971 Break out two...
3972 (failed_reload, set_reload_reg): ... new functions.
3973 (choose_reload_regs_init): New function, mostly broken out from...
3974 (choose_reload_regs): ... here. Lose all the save_xxx nonsense.
3975 Also lose one #if 0 block.
3976
3977 Tue Oct 26 02:48:32 1999 Marc Espie <espie@cvs.openbsd.org>
3978
3979 * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET): Fix target name
3980 substitution.
3981
3982 Tue Oct 26 01:27:32 1999 Mark Mitchell <mark@codesourcery.com>
3983
3984 * tree.h (BLOCK_TYPE_TAGS): Remove.
3985 (BLOCK_END_NOTE): Likewise.
3986 (BLOCK_LIVE_RANGE_FLAG): Likewise.
3987 (BLOCK_LIVE_RANGE_START): Likewise.
3988 (BLOCK_LIVE_RANGE_END): Likewise.
3989 (tree_block): Remove live_range_flag, live_range_var_flag, and
3990 type_tags. Remove end_note, live_range_start, and live_range_end.
3991 (remember_end_note): Remove prototype.
3992 * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
3993 * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
3994 remember_end_note.
3995 * ggc-common.c (ggc_mark_tree_children): Don't mark
3996 BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
3997 * integrate.c (adjust_copied_decl_tree): Remove.
3998 * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
3999 * stmt.c (last_block_end_note): Remove.
4000 (init_stmt): Don't add a GC root for it.
4001 (expand_fixup): Don't set it.
4002 (remember_end_note): Remove.
4003 (expand_end_bindings): Don't set last_block_end_note.
4004
4005 Tue Oct 26 00:41:54 1999 Bernd Schmidt <bernds@cygnus.co.uk>
4006
4007 * reload1.c (reload_reg_free_for_value_p): Show
4008 RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
4009 reloads.
4010
4011 Mon Oct 25 23:54:45 1999 Geoff Keating <geoffk@cygnus.com>
4012
4013 * expmed.c (extract_bit_field): Allow for the case of non-integer
4014 objects that are smaller than a word (like SFmode on a 64-bit
4015 machine).
4016
4017 * loop.c (basic_induction_var): A non-integer variable which is
4018 being set by a paradoxical subreg is probably not a biv.
4019
4020 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4021
4022 * prefix.c (translate_name) Check for empty prefix string.
4023
4024 Mon Oct 25 23:10:45 1999 Andreas Schwab <schwab@suse.de>
4025
4026 * Makefile.in (CPP_CROSS_NAME): New variable.
4027 (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
4028 xcpp.
4029 (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
4030 names of the files to be uninstalled.
4031
4032 Mon Oct 25 23:03:09 1999 Jeffrey A Law (law@cygnus.com)
4033
4034 * collect2.c (IS_DIR_SEPARATOR): Define.
4035 (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
4036
4037 * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
4038 functions too.
4039
4040 * haifa-sched.c (add_dependence): Update the true dependency
4041 cache the first time we add a true dependence to the LOG_LINKS chain.
4042
4043 Mon Oct 25 22:27:40 1999 Jim Kingdon <http://developer.redhat.com/>
4044
4045 * fold-const.c (fold): Fix comment.
4046
4047 Mon Oct 25 22:49:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4048
4049 * dbxout.c (lastfile, cwd, dbxout_type_method_1,
4050 dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
4051 dbxout_start_new_source_file, dbxout_source_file,
4052 dbxout_source_line, dbxout_finish, dbxout_type_fields,
4053 dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
4054 Constify a char*.
4055 (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
4056 (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
4057 (dbxout_block): Initialize variable `blocknum'.
4058
4059 * dbxout.h (dbxout_init, dbxout_finish,
4060 dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
4061 dbxout_args, dbxout_source_line): Constify a char*.
4062
4063 * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
4064 dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
4065 dwarf_fund_type_name, name_attribute, stmt_list_attribute,
4066 low_pc_attribute, high_pc_attribute, body_begin_attribute,
4067 body_end_attribute, comp_dir_attribute, sf_names_attribute,
4068 src_info_attribute, mac_info_attribute, producer_attribute,
4069 lookup_filename, generate_macinfo_entry, fundamental_type_code,
4070 dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
4071 dwarfout_undef): Constify a char*.
4072 (add_incomplete_type, retry_incomplete_types): Add prototypes.
4073
4074 * dwarfout.h (dwarfout_define, dwarfout_undef,
4075 dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
4076
4077 1999-10-25 Gavin Romig-Koch <gavin@cygnus.com>
4078
4079 * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
4080 (MULTILIB_ISA_DEFAULT): New.
4081 (MULTILIB_DEFAULTS): Use it.
4082 * config/mips/mips.c (): Remove the now unnecessary definition
4083 of MIPS_ISA_DEFAULT.
4084 * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
4085 unnecessary definition.
4086
4087 Mon Oct 25 22:08:35 1999 Richard Earnshaw (rearnsha@arm.com)
4088
4089 * arm.md (pic_load_addr): Add constraints to operand 1.
4090
4091 1999-10-25 Bruce Korb <autogen@linuxbox.com>
4092
4093 * fixinc/genfixes: Provide a means for specifying -D options to
4094 AutoGen
4095
4096 Mon Oct 25 00:42:35 1999 Jeffrey A Law (law@cygnus.com)
4097
4098 * arm.c (arm_override_options): Correct initialization of
4099 arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
4100 arm_is_strong, and arm_is_6_or_7.
4101
4102 * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
4103 (note_set_pseudo_multiple_uses): New function.
4104 (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
4105 if a pseudo set in the loop exit is used elsewhere.
4106
4107 Sun Oct 24 20:52:40 1999 Mark Mitchell <mark@codesourcery.com>
4108
4109 * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
4110
4111 Sun Oct 24 21:02:46 1999 Richard Henderson <rth@cygnus.com>
4112
4113 * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
4114 a single load-address pattern.
4115
4116 Sun Oct 24 19:33:24 1999 Mark P. Mitchell <mark@codesourcery.com>
4117
4118 * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
4119 depending on whether or not line-number notes are present.
4120
4121 Sun Oct 24 20:29:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4122
4123 * cccp.c (progname, file_buf, default_include, include_file,
4124 macrodef, definition, hashval, wchar_type, user_label_prefix,
4125 directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
4126 expand_to_temp_buffer, is_system_include, base_name,
4127 absolute_filename, read_name_map, open_include_file,
4128 record_control_macro, check_precompiled, check_preconditions,
4129 pcfinclude, pass_thru_directive, create_definition,
4130 check_macro_name, comp_def_part, collect_expansion,
4131 check_assertion, read_token_list, assertion_install,
4132 assertion_lookup, eval_if_expression, conditional_skip,
4133 validate_else, skip_quoted_string, quote_string, macarg1,
4134 error_from_errno, install, lookup, hashf, dump_defn_1,
4135 perror_with_name, pfatal_with_name, main, trigraph_pcp,
4136 check_white_space, rescan, handle_directive, monthnames,
4137 special_symbol, do_include, remap_include_file, write_output,
4138 arglist, do_assert, do_unassert, do_line, do_error, do_once,
4139 do_ident, do_sccs, do_xifdef, skip_if_group,
4140 output_line_directive, macroexpand, macarg, change_newlines,
4141 initialize_builtins, make_definition): Constify a char*.
4142
4143 * pcp.h (stringdef): Likewise.
4144
4145 Sun Oct 24 13:29:28 1999 Richard Henderson <rth@cygnus.com>
4146
4147 * unroll.c (copy_loop_body): Examine SET_DEST of single_set
4148 not of pattern.
4149
4150 Sun Oct 24 13:14:20 1999 Graham <grahams@rcp.co.uk>
4151 Richard Henderson <rth@cygnus.com>
4152
4153 * alias.c: Include ggc.h.
4154 (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
4155 (record_set): Verify enough room in reg_base_value.
4156 (init_alias_analysis): Allocate reg_base_value with xcalloc.
4157 Register it as a GC root.
4158 (end_alias_analysis): Free reg_base_value. Remove it as a GC root.
4159 * Makefile.in (alias.o): Depend on ggc.h.
4160
4161 * unroll.c (unroll_loop): Verify the insn before a barrier
4162 is a JUMP_INSN before checking JUMP_LABEL.
4163
4164 Sun Oct 24 15:46:44 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4165
4166 * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
4167 * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
4168 * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
4169 * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
4170 * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
4171 * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
4172
4173 Sun Oct 24 15:35:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4174
4175 * output.h (ctors_section, dtors_section, bss_section): Prototype.
4176
4177 * alpha/alpha-interix.h (text_section): Delete prototype.
4178 * alpha/elf.h (text_section): Likewise.
4179 * arm/linux-elf.h (text_section): Likewise.
4180 * arm/linux-telf.h (text_section): Likewise.
4181 * c4x/c4x.h (text_section): Likewise.
4182 * dsp16xx/dsp16xx.h (bss_section): Likewise.
4183 * elfos.h (text_section): Likewise.
4184 * i386/aix386ng.h (text_section): Likewise.
4185 * i386/i386-interix.h (text_section): Likewise.
4186 * i386/sco5.h (text_section): Likewise.
4187 * i386/svr3gas.h (text_section): Likewise.
4188 * nextstep.h (text_section): Likewise.
4189 * psos.h (text_section): Likewise.
4190 * ptx4.h (text_section): Likewise.
4191 * svr3.h (text_section): Likewise.
4192 * svr4.h (text_section, ctors_section, dtors_section): Likewise.
4193
4194 Sun Oct 24 15:20:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4195
4196 * final.c (peephole): Delete prototype.
4197
4198 * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
4199 (pre_insert_copies): Remove unused variable `bb'.
4200
4201 * genrecog.c (debug_decision_0, debug_decision_list, main): Add
4202 prototypes.
4203
4204 * output.h (peephole): Add prototype.
4205
4206 Sun Oct 24 11:35:30 1999 Mark P. Mitchell <mark@codesourcery.com>
4207
4208 * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
4209 -O0.
4210
4211 Sat Oct 23 21:13:00 1999 Mark Mitchell <mark@codesourcery.com>
4212
4213 * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
4214 for inlined declarations.
4215
4216 Fri Oct 22 18:05:43 1999 Jeffrey A Law (law@cygnus.com)
4217
4218 * arm.c (logical_binary_operator): New fucntion.
4219 * arm.h (logical_binary_operator): Declare it.
4220 (PREDICATE_CODES): Handle logical_binary_operator.
4221 * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
4222 output constraints. Add appropriate splitters.
4223 (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
4224 (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
4225 (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
4226
4227 Fri Oct 22 23:46:50 1999 Bernd Schmidt <bernds@cygnus.co.uk>
4228
4229 * genoutput.c (struct operand_data): New elt eliminable.
4230 (output_operand_data): Write it.
4231 (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
4232 (compare_operands): Take it into account.
4233 * recog.h (struct insn_operand_data): New elt eliminable.
4234 * reload1.c (check_eliminable_occurrences, elimination_effects): New
4235 functions.
4236 (old_asm_operands_vec, new_asm_operands_vec): Delete.
4237 (eliminate_regs): Move code that detects changes to elimination
4238 target regs into new function elimination_effects.
4239 Delete one #if 0 block.
4240 Abort for USE, CLOBBER, ASM_OPERANDS and SET.
4241 (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
4242 ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
4243 Only call eliminate_regs for real operands of the insn, not for parts
4244 of its structure or parts matched by things like match_operator.
4245 Use elimination_effects and check_eliminable_occurrences. Use
4246 copy_insn to duplicate the pattern when not in the final pass.
4247
4248 Fri Oct 22 09:03:44 1999 Mark Mitchell <mark@codesourcery.com>
4249
4250 * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
4251 and fld.
4252
4253 1999-10-22 Bruce Korb <autogen@linuxbox.com>
4254
4255 * fixinc/README: document the "mach" machine matching test
4256 * fixinc/fixfixes.c: Implement the #else/#endif label fix
4257 * fixinc/fixtests.c: Implement the #else/#endif label test
4258 * fixinc/inclhack.def: utilize these tests and fixes
4259 * fixinc/inclhack.sh: regen
4260 * fixinc/fixincl.x: regen
4261 * fixinc/fixincl.sh: regen
4262
4263 Thu Oct 21 20:37:19 1999 Jeffrey A Law (law@cygnus.com)
4264
4265 * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h. Also
4266 depend on ggc.h.
4267
4268 Thu Oct 21 20:30:19 1999 Matthias Klose <doko@debian.org>
4269
4270 * gcc.1: Document exit codes.
4271
4272 Thu Oct 21 12:49:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4273
4274 * calls.c: Include tm_p.h later, so everything we need is defined.
4275 * expr.c: Likewise.
4276 * function.c: Likewise.
4277
4278 * except.c: Include tm_p.h.
4279
4280 * sparc.c: Likewise.
4281 (dwarf2out_cfi_label): Don't prototype.
4282 (check_return_regs, epilogue_renumber,
4283 ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
4284 ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
4285 ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
4286 ultra_schedule_insn): Add static prototype.
4287 (data_segment_operand, text_segment_operand): Call itself with the
4288 proper number of arguments.
4289 (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
4290
4291 * sparc.h: Move all declarations to sparc-protos.h.
4292 (SELECT_RTX_SECTION): Pass a missing MODE argument to
4293 symbolic_operand.
4294
4295 * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
4296
4297 * config/svr4.h (text_section, ctors_section, dtors_section): Add
4298 Prototypes.
4299 (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
4300 ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
4301 ASM_OUTPUT_ASCII): Constify a char*.
4302
4303 * sparc-protos.h: New file for sparc prototypes.
4304
4305 Thu Oct 21 12:23:40 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4306
4307 * function.c (record_insns, contains): Always declare and define.
4308 (record_insns): Mark with ATTRIBUTE_UNUSED.
4309
4310 Thu Oct 21 13:03:49 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
4311
4312 * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
4313 to .section when outputting a .bss section to deal with multiple
4314 .bss input sections (as happens with -fdata-sections)
4315 Also output %progbits, not @progbits so the assembler doesn't treat as
4316 a comment.
4317 * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
4318
4319 * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
4320 thumb parts even when building with non-thumb CPUs, by forcing
4321 thumb mode.
4322
4323 Wed Oct 20 22:57:58 1999 Jeffrey A Law (law@cygnus.com)
4324
4325 * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
4326 (movdf_const_intreg_sp64): Similarly.
4327
4328 * local-alloc.c (update_equiv_regs): Check the correct insn
4329 for pre-existing REG_EQUIV notes.
4330
4331 Wed Oct 20 20:41:46 1999 Mark Mitchell <mark@codesourcery.com>
4332
4333 * cse.c (cse_end_of_basic_block): Don't return the end of a basic
4334 block reached by a branch if we're not going to actually process
4335 this block.
4336
4337 Wed Oct 20 15:18:42 1999 Jim Wilson <wilson@cygnus.com>
4338
4339 * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
4340 a local extern function declaration.
4341
4342 Wed Oct 20 13:56:01 1999 Richard Henderson <rth@cygnus.com>
4343
4344 * i386.c (ix86_expand_prologue): Properly wrap USE around
4345 reg for CALL_INSN_FUNCTION_USAGE.
4346
4347 Thu Oct 14 18:51:37 1999 Andrew Haley <aph@cygnus.com>
4348
4349 * config/mips/mips.md (movdf_internal1a): Allow floating-point
4350 move between GP_REGs.
4351
4352 Wed Oct 20 15:36:11 1999 Andrew Haley <aph@cygnus.com>
4353
4354 * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
4355 the mode size when finding out if an offset is legal.
4356
4357 Wed Oct 20 06:26:58 1999 Richard Henderson <rth@cygnus.com>
4358
4359 * basic-block.h (PROP_*): Move constants from ...
4360 * flow.c: ... here.
4361 (compute_bb_for_insn): Free the array before reallocating.
4362 (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
4363 (allocate_reg_life_data): Reset all reg variables collected by
4364 propagate_block.
4365 (get_block_head_tail): Don't convert from bb to block.
4366 (get_bb_head_tail): New. Update all callers of get_block_head_tail.
4367 (find_insn_reg_weight): Take block not bb.
4368 (schedule_block): Don't set block num for moved insns.
4369 (schedule_region): Don't update_life_info or find_insn_reg_weight.
4370 (schedule_insns): Do it here instead.
4371 * combine.c (combine_instructions): Invoke compute_bb_for_insn
4372 before update_life_info.
4373 * recog.c (split_all_insns, peephole2_optimize): Update for
4374 new arg to update_life_info.
4375 * rtlanal.c (remove_note): Cope with NULL note.
4376 * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
4377 if we did sched1.
4378
4379 Wed Oct 20 10:46:41 1999 Richard Earnshaw (rearnsha@arm.com)
4380
4381 * jump.c (jump_optimize_1): More accurately detect casesi insns.
4382
4383 * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
4384 block records so that merge_blocks_nomove will clean up correctly.
4385 (split_edge): Handle casesi insns.
4386
4387 * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
4388
4389 Tue Oct 19 23:43:50 1999 Jeffrey A Law (law@cygnus.com)
4390
4391 * pa.md (call, call_value): Do not emit a blockage after restoring
4392 the PIC register.
4393
4394 Tue Oct 19 17:22:39 1999 Mark Mitchell <mark@codesourcery.com>
4395
4396 * c-typeck.c (c_expand_asm_operands): Fix typo.
4397
4398 Tue Oct 19 18:42:58 1999 Bernd Schmidt <bernds@cygnus.co.uk>
4399
4400 * arm.c (fpu_rhs_operand): Verify modes.
4401 (fpu_add_operand): Likewise.
4402 (di_operand): Likewise.
4403 (soft_df_operand): Likewise.
4404
4405 Tue Oct 19 15:26:11 1999 Richard Earnshaw (rearnsha@arm.com)
4406
4407 * arm.c (arm_return_in_memory): APCS rules state that the elements
4408 of a structure returned in a register must be 'integer-like'.
4409
4410 1999-10-19 Bruce Korb <autogen@linuxbox.com>
4411
4412 * fixinc/Makefile.in: Change the generation rules to run `genfixes'
4413 in the source tree when the generated targets are out of date
4414 * fixinc/genfixes: Alter it to run individual fixes for make.
4415 * fixinc/README: rewrite
4416 * fixinc/inclhack.def: moved initial comments to README
4417
4418 Tue Oct 19 14:01:34 1999 Nick Clifton <nickc@cygnus.com>
4419
4420 * toplev.c (main): Do not generate an error message if an
4421 unrecognised command line switch is recognisable by another
4422 language. If extra_warnings are enabled, then generate a
4423 warning message instead.
4424
4425 Tue Oct 19 11:41:12 1999 Mumit Khan <khan@xraylith.wisc.edu>
4426
4427 * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
4428 (insert_pack_attributes): Delete prototype.
4429
4430 * c-pragma.c (default_alignment): New static variable.
4431 (push_alignment): Initialize to current effective alignment.
4432 (pop_alignment): Use to set new alignment.
4433 (insert_pack_attributes): Delete function.
4434 (handle_pragma_token): Set default_alignment as well each time
4435 a #pragma pack(<n>) is encountered.
4436
4437 Tue Oct 19 02:03:00 1999 Jeffrey A Law (law@cygnus.com)
4438
4439 * reg-stack.c (stack_result): Aggregates are not returned in
4440 stack registers.
4441
4442 Tue Oct 19 01:26:48 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
4443
4444 * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
4445
4446 Mon Oct 18 15:19:41 1999 Richard Henderson <rth@cygnus.com>
4447
4448 * basic-block.h (set_block_num): Declare.
4449 * flow.c (update_life_info): Don't call compute_bb_for_insn
4450 or free_basic_block_vars.
4451 * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
4452 (insn_orig_block): Remove.
4453 (INSN_BLOCK): Remove. Update all callers to use BLOCK_NUM.
4454 (schedule_block): Keep BLOCK_NUM up-to-date.
4455 (schedule_insns): Use compute_bb_for_insn.
4456 * recog.c (split_all_insns): Likewise.
4457 (peephole2_optimize): Likewise.
4458
4459 Mon Oct 18 18:50:51 1999 Andreas Schwab <schwab@suse.de>
4460
4461 * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
4462 if the pic register is used.
4463
4464 Mon Oct 18 02:38:46 1999 Bernd Schmidt <bernds@cygnus.co.uk>
4465
4466 * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
4467 (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
4468 if that tests TREE_PERMANENT.
4469
4470 Mon Oct 18 01:41:35 1999 Jeffrey A Law (law@cygnus.com)
4471
4472 * cse.c (invalidate_for_call): Do not remove memory references from
4473 the table here. It's handled elsewhere.
4474
4475 * haifa-sched.c (add_dependence): Protect references to the
4476 true dependency cache with #ifdef INSN_SCHEDULING.
4477 (remove_dependence): Similarly.
4478
4479 * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
4480 to the cfg code that this is a return instruction.
4481 * mn10300.md (return_internal): Similarly.
4482
4483 * combine.c (get_last_value): If the last set of a register
4484 is after subst_low_cuid, then we can not use it to determine
4485 the register's last value.
4486
4487 Sun Oct 17 11:02:52 1999 Mark Mitchell <mark@codesourcery.com>
4488
4489 * Makefile.in: Back out previous change.
4490
4491 Sun Oct 17 15:22:50 1999 Jeffrey A Law (law@cygnus.com)
4492
4493 * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
4494
4495 * haifa-sched.c (add_dependence): Only check/update the cache
4496 if it exists.
4497 (remove_dependence): Likewise.
4498 (schedule_insns): Only create the true_dependency_cache if the
4499 average number of instructions in a basic block is very large.
4500
4501 Sun Oct 17 11:02:52 1999 Mark Mitchell <mark@codesourcery.com>
4502
4503 * Makefile.in (ggc-common.o): Depend on genrtl.h.
4504 (ggc-simple.o): Likewise.
4505 (ggc-page.o): Likewise.
4506
4507 Sun Oct 17 02:09:50 1999 Andrew MacLeod <amacleod@cygnus.com>
4508
4509 * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
4510 Prototype for exported functions.
4511 (pre_lcm, pre_rev_lcm): Remove prototypes.
4512 * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
4513 (compute_available): Move to lcm.c, and change parameter order.
4514 (one_classic_gcse_pass): Call compute_ae_kill with parameters.
4515 (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
4516 (gcse_main): No longer call compute_preds_succs. Rebuild the
4517 set table after reach pre pass.
4518 (pre_insert_map, pre_delete_map, edge_list): New.
4519 (alloc_pre_mem): Allocate edge vectors.
4520 (free_pre_mem): Delete edge vectors.
4521 (compute_pre_data): Call new edge based lcm routines.
4522 (process_insert_insn): New function.
4523 (insert_insn_end_bb): Use it.
4524 (pre_edge_insert): New function.
4525 (pre_insert_copy_insn): Formatting fixes. Update BLOCK_END as
4526 needed.
4527 (pre_insert_copies): Revamp using new edge based lcm outputs.
4528 (pre_delete): Likewise.
4529 (one_pre_gcse_pass): Insert & remove fake edges to the exit
4530 block.
4531 (compute_code_hoist_vbeinout): New new edge based routines.
4532 * lcm.c: Remove all the old LCM functions. Replace with new ones
4533 that work with the new cfg datastructures and work with edges
4534 instead of blocks.
4535
4536 Sun Oct 17 00:44:17 1999 Bernd Schmidt <bernds@cygnus.co.uk>
4537
4538 * reload.h (struct reload): Add new fields "mode" and "nregs".
4539 * reload1.c: Change all occurrences of reload_mode and reload_nregs
4540 to reference the "mode" and "nregs" field within struct reload.
4541
4542 Sat Oct 16 21:50:28 1999 Jeffrey A Law (law@cygnus.com)
4543
4544 * haifa-sched.c (true_dependency_cache): New.
4545 (add_dependence): Use the true dependency cache to avoid expensive
4546 walks down the LOG_LINKS dependency list. Add entries to the
4547 cache as necessary.
4548 (remove_dependence): Remove entries from the true dependency cache
4549 as needed.
4550 (schedule_insns): Allocate and initialize and free the true
4551 dependency cache.
4552
4553 * haifa-sched.c (schedule_insns): Do not remove inter-block
4554 dependencies anymore.
4555
4556 Sat Oct 16 11:19:52 1999 Richard Henderson <rth@cygnus.com>
4557
4558 * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
4559 * i386/t-winnt: Likewise.
4560
4561 Sat Oct 16 11:11:54 1999 Richard Henderson <rth@cygnus.com>
4562
4563 * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
4564
4565 1999-10-16 Manfred Hollstein <mhollstein@cygnus.com>
4566
4567 * Makefile.in (LANGUAGES): Omit "proto".
4568 (clean): Remove stale comment about removing unprotoize.c.
4569
4570 Sat Oct 16 11:29:14 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4571
4572 * protoize.c (safe_read, safe_write): Avoid the gcc extension of
4573 using arithmetic on void pointers.
4574
4575 Sat Oct 16 02:48:22 1999 Jeffrey A Law (law@cygnus.com)
4576
4577 * haifa-sched.c (compute_block_forward_dependencies): Only check
4578 for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
4579
4580 Sat Oct 16 00:07:01 1999 Richard Henderson <rth@cygnus.com>
4581
4582 * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
4583 (expr_equiv_p): Reject memories with different alias sets.
4584
4585 Fri Oct 15 15:17:29 1999 Greg McGary <gkm@gnu.org>
4586
4587 * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
4588 * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
4589 (f_options): Add "bounded-pointers" and "bounds-check" entries.
4590 * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
4591 (lang_init): Set default for flag_bounds_check if still "unspecified".
4592
4593 Sat Oct 16 13:42:29 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4594
4595 * config/c4x/c4x.md (HF mode patterns): Add missing modes.
4596
4597 Sat Oct 16 13:37:46 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4598
4599 * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
4600 instructions.
4601
4602 Sat Oct 16 13:26:47 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4603
4604 * config/c4x/c4x.md (*db_noclobber,
4605 *decrement_and_branch_until_zero_noclobber): New patterns and
4606 associated splitters.
4607
4608 Sat Oct 16 13:13:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4609
4610 * config/c4x/c4x.md (parallel instruction patterns): Rework
4611 constraints to keep reload happy.
4612
4613 Sat Oct 16 13:03:16 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4614
4615 * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
4616 *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
4617 *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
4618 Add new patterns and associated post-reload splitters.
4619
4620 Sat Oct 16 12:42:12 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4621
4622 * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
4623
4624 Sat Oct 16 12:34:44 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4625
4626 * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
4627 if appropriate.
4628 * config/c4x/c4x.md (rpts_top): New pattern and splitter.
4629
4630 Sat Oct 16 12:26:30 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4631
4632 * config/c4x/c4x.c (src_operand): Check SYMBOL_REF and LABEL_REF
4633 memory mode.
4634
4635 Fri Oct 15 17:02:09 1999 Jeffrey A Law (law@cygnus.com)
4636
4637 * pa.c (move_operand): Rely on memory_address_p to determine the
4638 validity of non-indexed memory addresses.
4639 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
4640 operand in DFmode and SFmode when generating PA2.0 code.
4641
4642 Fri Oct 15 14:25:19 1999 Richard Henderson <rth@cygnus.com>
4643
4644 * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
4645
4646 Fri Oct 15 13:48:45 1999 Richard Henderson <rth@cygnus.com>
4647
4648 * mips.c (function_prologue): Fix argument types.
4649 * mips.md (casesi): Use emit_jump_insn for casesi_internal.
4650 (casesi_internal): Write to the scratch register.
4651
4652 1999-10-15 11:16 -0700 Zack Weinberg <zack@bitmover.com>
4653
4654 * cppexp.c (cpp_parse_escape): Make static. Change second arg
4655 to U_CHAR **.
4656 (parse_charconst): Delete unnecessary cast when calling
4657 cpp_parse_escape.
4658 (cpplib.h): Kill prototype of cpp_parse_escape.
4659
4660 Fri Oct 15 11:02:46 1999 Richard Henderson <rth@cygnus.com>
4661
4662 Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
4663 * unroll.c (unroll_loop): Cast return value of alloca.
4664 * i370/i370.c: Include function.h and toplev.h.
4665 (i370_label_scan): Remove c++ commented abort.
4666 * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
4667 (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
4668 * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
4669 * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
4670
4671 Fri Oct 15 03:01:01 1999 Loren Rittle <ljrittle@acm.org>
4672
4673 * config/t-freebsd: Do not override USER_H.
4674 * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
4675
4676 Fri Oct 15 02:37:28 1999 Alastair J. Houghton <ajh8@doc.ic.ac.uk>
4677 Mumit Khan <khan@xraylith.wisc.edu>
4678
4679 * c-parse.in (component_decl): Support anonymous struct/union.
4680 (%expect): Update.
4681 * c-parse.y: Regenerate.
4682 * c-parse.c: Likewise.
4683 * objc/objc-parse.y: Likewise.
4684 * objc/objc-parse.c: Likewise.
4685 * c-decl.c (finish_struct): Don't sort the fields.
4686 (field_decl_cmp): Delete unused function.
4687
4688 Fri Oct 15 01:20:52 1999 Richard Henderson <rth@cygnus.com>
4689
4690 * sparc.md (movsf_const_intreg): Revert last constraint change.
4691 (movdf_const_intreg_sp32): Likewise.
4692
4693 Fri Oct 15 01:47:51 1999 Vladimir Makarov <vmakarov@loony.cygnus.com>
4694
4695 * cse.c: Include hashtab.h instead of splay-tree.h
4696 (struct cse_reg_info): No longer use variant union. Add new
4697 field "regno". All references changed to avoid union.
4698 (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
4699 (free_cse_reg_info): Remove.
4700 (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
4701 (get_cse_reg_info): Revamp to use expandable hash tables instead
4702 of splay trees. Initialize new fields in cse_reg_info structure.
4703 (new_basic_block): Similarly.
4704
4705 Thu Oct 14 23:51:56 1999 Richard Henderson <rth@cygnus.com>
4706
4707 * genrecog.c (message_with_line): Prototype.
4708 (validate_pattern): Pass along the set for the dest, not a flag.
4709 Fix non-lvalue message. Don't warn for VOIDmode SET_DEST of CALL.
4710 Check for PC/CC0 as sources.
4711 (nodes_identical): Check for children position match before
4712 allowing the combination.
4713
4714 * rtl.c (read_rtx): Track line number across \\\n.
4715
4716 Thu Oct 14 23:50:25 1999 Richard Henderson <rth@cygnus.com>
4717
4718 * mips.h (SPECIAL_MODE_PREDICATES): New.
4719 * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
4720 (movdi+1, movsi+1): Add output reload constraint.
4721 (casesi_internal): Likewise. Fix commentary.
4722 (return_internal): Use pmode_register_operand.
4723
4724 Thu Oct 14 23:19:34 1999 Richard Henderson <rth@cygnus.com>
4725
4726 * 1750a.md (movstrqi): Add missing output reload constraint.
4727 (call_value): Likewise.
4728 * a29k.md (cpxxx patterns): Add missing match_operator mode.
4729 (jmpfdec): Add missing inout reload constraint.
4730 * elxsi.md (addsi patterns): Add missing output reload constraint.
4731 (move from sp): Use @ alternates.
4732 (call_value): No constraint on output.
4733 * fr30.md (movsi_pop): Add missing output reload constraint.
4734 (movsf_constant_store): Likewise.
4735 (splits): Remove constraints.
4736 (subsi3): Add missing mode.
4737 * i370.md (cmpstrsi+1): Add missing output reload constraint.
4738 (call_value): Likewise.
4739 * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
4740 * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
4741 * m32r.md (movsicc_internal): Add output reload constraint.
4742 (movstrsi_internal): Add inout reload constraints.
4743 * m88k.h (reg_names): Don't declare.
4744 (SPECIAL_MODE_PREDICATES): New.
4745 * m88k.md (*): Use register_operand not reg_or_0_operand
4746 on destinations.
4747 * mn10200.h (PREDICATE_CODES): New.
4748 * ns32k.md (ffs pattern): Add output reload constraint.
4749 * pdp11.md (sob pattern): Add inout reload constraint.
4750 * sh.md (splits): Remove constraints.
4751 (indirect_jump_scratch, fpu_switch): Add output reload constraint.
4752 * v850.md (pattern_is_ok_for_epilogue): Likewise.
4753 * vax.md (jgequ pattern): Add inout reload constraint.
4754
4755 Fri Oct 15 00:05:00 1999 Jeffrey A Law (law@cygnus.com)
4756
4757 * configure.in (djgpp): Revert previous patch.
4758 * configure: Rebuit.
4759 * config/i386/djgpp.h: Revert previous patch.
4760
4761 Fri Oct 15 00:00:24 1999 Loren J. Rittle <ljrittle@acm.org>
4762
4763 * fixinc/inclhack.def: Restore patch lost during last merge of
4764 "no_bogosity" branch.
4765 * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
4766
4767 Thu Oct 14 23:57:56 1999 Gavin Romig-Koch <gavin@cygnus.com>
4768
4769 * fixincludes: Add a HPUX 11 fix for inttypes.h.
4770 * fixinc/inclhack.def: Same.
4771 * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
4772
4773 Thu Oct 14 22:51:55 1999 Richard Henderson <rth@cygnus.com>
4774
4775 * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
4776 as the base of a PLUS.
4777
4778 Fri Oct 15 18:36:07 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4779
4780 * config/c4x/c4x.md: Define mode for remaining unspec operators.
4781 * config/c4x/c4x.c (dst_operand): Use nonimmediate_operand.
4782
4783 Thu Oct 14 22:14:23 1999 Richard Henderson <rth@cygnus.com>
4784
4785 * pa.md (post_stw+1): Use pmode_register_operand.
4786 (dcacheflush, icacheflush): Likewise.
4787
4788 * i386.md (movstricthi_1): Allow r/r.
4789
4790 Thu Oct 14 19:44:08 1999 Jan Hubicka <hubicka@freesoft.cz>
4791
4792 * fold-const.c (fold): Convert (or (not arg0) (not arg1))
4793 to (not (and (arg0) (arg1))). Similary for and.
4794
4795 * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
4796 fallthrough to associate code.
4797 Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
4798 bits in common.
4799
4800 * combine.c (simplify_logical): Convert XOR to IOR if operands have
4801 no bits in common; remove XOR to ROTATE conversion.
4802
4803 Fri Oct 15 17:40:11 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4804
4805 * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
4806
4807 Fri Oct 15 17:27:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4808
4809 * config/c4x/c4x.c (dst_operand): New.
4810 (PREDICATE_CODES): Update.
4811 * config/c4x/c4x.h (dst_operand): Declare it.
4812 * config/c4x/c4x.md: Define mode for each unspec usage.
4813 (move patterns): Use dst_operand predicate instead of src_operand.
4814 (movqi_update, movqf_update): Delete.
4815
4816 Thu Oct 14 18:48:54 1999 Richard Henderson <rth@cygnus.com>
4817
4818 * recog.c (pmode_register_operand): New.
4819 * recog.h: Declare it.
4820 * genrecog.c (pred_codes): Likewise.
4821 (special_mode_pred_table): Likewise.
4822 (validate_pattern): Don't warn no mode for address_operand.
4823
4824 * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
4825 if the operand is not insn-like.
4826
4827 Thu Oct 14 19:38:42 1999 Jeffrey A Law (law@cygnus.com)
4828 Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
4829
4830 * fold-const.c (fold): Handle more simplifications allowed by IEEE.
4831
4832 Thu Oct 14 17:30:14 1999 Richard Henderson <rth@cygnus.com>
4833
4834 * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
4835 instead of general_operand in a SET_DEST. Use const_double_operand
4836 instead of an explicit test against CONST_DOUBLE.
4837 (movsf_const_lo): Add missing register mode.
4838 (goto_handler_and_restore): Add auxiliary test for Pmode.
4839 (flush): Adjust to use address_operand.
4840 (return_sf_no_fpu): Add missing output constraint.
4841
4842 Thu Oct 14 17:21:26 1999 Richard Henderson <rth@cygnus.com>
4843
4844 * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
4845 for call return value.
4846 (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
4847
4848 Thu Oct 14 13:54:25 1999 Jason Merrill <jason@yorick.cygnus.com>
4849
4850 * toplev.c (main): Only warn about options for other languages.
4851 * collect2.c (main): Pass -w to sub-gcc.
4852
4853 Thu Oct 14 16:27:50 1999 Richard Henderson <rth@cygnus.com>
4854
4855 * flow.c (propagate_block): Add call-clobbered registers to
4856 significant too.
4857
4858 * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
4859 zapping mem_set_list.
4860 (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
4861 (mark_set_1, mark_used_regs): Likewise.
4862
4863 Thu Oct 14 10:51:49 1999 Richard Henderson <rth@cygnus.com>
4864
4865 * m68k.md (zero_extendsidi2): Add missing output reload constraint.
4866
4867 Wed Oct 13 00:09:18 1999 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4868
4869 * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
4870 -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
4871 options. Also add a new item "C-only Warning Options" to the
4872 option summary.
4873
4874 1999-10-14 Gavin Romig-Koch <gavin@cygnus.com>
4875
4876 * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
4877 from multiple calls.
4878
4879 Thu Oct 14 04:54:54 1999 Richard Henderson <rth@cygnus.com>
4880
4881 * i386.md (call value patterns): Move to the end of the file.
4882 (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
4883
4884 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
4885
4886 * configure.in (djgpp configuration): Define extra_objects..
4887 * configure: Rebuilt.
4888 * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
4889 (DTORS_SECTION_ASM_OP): Define.
4890 (INIT_SECTION_ASM_OP): Define.
4891 (FINI_SECTION_ASM_OP): Define.
4892 (DATA_SECTION_ASM_OP): Define.
4893 (TEXT_SECTION_ASM_OP): Define.
4894 (EH_FRAME_SECTION_ASM_OP): Define.
4895 (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
4896 (STARTFILE_SPEC): Add crtbegin.o.
4897 (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
4898 to here from LINK_COMMAND_SPEC.
4899 (DO_GLOBAL_CTORS_BODY): Define.
4900 (CRTSTUFF_USE_FINI_SECTION): Define
4901 (HAS_INIT_SECTION): Delete.
4902
4903 Thu Oct 14 05:08:14 1999 Andreas Schwab <schwab@suse.de>
4904
4905 * Makefile.in (all.cross): Depend on xcpp$(exeext).
4906
4907 Thu Oct 14 04:00:40 1999 Richard Henderson <rth@cygnus.com>
4908
4909 * pa.h (PREDICATE_CODES): New.
4910
4911 * genrecog.c (validate_pattern): Condense the destination
4912 non-lvalue message.
4913
4914 Thu Oct 14 03:23:08 1999 Richard Henderson <rth@cygnus.com>
4915
4916 * alpha.md (call-1): Supply missing mode for operator.
4917 (*): Add missing output reload constraints. Remove constraints
4918 from define_splits.
4919
4920 * i386.h (SPECIAL_MODE_PREDICATES): New.
4921 * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
4922 (movqi_1, movdi_1, movdi_2, some splits): Likewise.
4923 (addsi_lea_3): Add missing mode for op 3.
4924 (prologue_set_got, prologue_get_pc): Add missing modes.
4925 (*) Add missing output reload constraints.
4926
4927 Thu Oct 14 03:59:57 1999 Stephane Carrez <stcarrez@worldnet.fr>
4928
4929 * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
4930 check for member bit-size overflow and use var_size if it occurs.
4931 (layout_record): Use bitsize_int() to define the type size in bits.
4932 Likewise for computation and assignment to DECL_FIELD_BITPOS.
4933 (layout_decl): Likewise when assigning to DECL_SIZE.
4934
4935 Thu Oct 14 02:57:05 1999 Richard Henderson <rth@cygnus.com>
4936
4937 * genrecog.c (validate_pattern): Typo last change. Verify
4938 that output operands have output reloads.
4939
4940 Thu Oct 14 01:49:54 1999 Richard Henderson <rth@cygnus.com>
4941
4942 * genrecog.c (special_mode_pred_table): New.
4943 (NUM_SPECIAL_MODE_PREDS): New.
4944 (find_operand): New.
4945 (validate_pattern): New argument `insn'. Warn for assignment to
4946 any predicate accepting non-lvalues. Conditionaly warn for
4947 match_operand without a mode. Try much harder to match source
4948 and destination modes on a set.
4949 * tm.texi (SPECIAL_MODE_PREDICATES): Document.
4950
4951 Thu Oct 14 02:54:13 1999 Jeffrey A Law (law@cygnus.com)
4952
4953 * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
4954
4955 Thu Oct 14 02:18:19 1999 Marc Espie <espie@cvs.openbsd.org>
4956
4957 * combine.c (simplify_logical): Recognize xor pattern that encodes
4958 rotation.
4959
4960 Wed Oct 13 23:23:45 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4961
4962 * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
4963 alignment.
4964
4965 Wed Oct 13 21:47:18 1999 Richard Henderson <rth@cygnus.com>
4966
4967 * ggc-page.c (MAP_FAILED): Provide default.
4968
4969 Wed Oct 13 21:41:59 1999 Richard Henderson <rth@cygnus.com>
4970
4971 * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
4972 * sparc.h (PREDICATE_CODES): Update.
4973
4974 Wed Oct 13 21:18:17 1999 Richard Henderson <rth@cygnus.com>
4975
4976 * alpha.c (some_ni_operand): New.
4977 * alpha-protos.h: Declare it.
4978 * alpha.h (PREDICATE_CODES): Update.
4979 * alpha.md (sXaddq reload insns): Use some_ni_operand
4980 for SET_DEST instead of some_operand.
4981
4982 Wed Oct 13 21:04:45 1999 Richard Henderson <rth@cygnus.com>
4983 Jim Wilson <wilson@cygnus.com>
4984
4985 * genrecog.c (maybe_both_true_2): Don't compare modes of
4986 two DT_pred tests.
4987 (process_tree): Elide peephole2_insns. Invoke simplify_tests
4988 after find_afterward.
4989 (debug_decision_1): Dump next and afterward codes.
4990
4991 Wed Oct 13 20:35:16 1999 Richard Henderson <rth@cygnus.com>
4992
4993 * rtl.c (dump_and_abort): Remove.
4994 (fatal_with_file_and_line): New.
4995 (fatal_expected_char): New.
4996 (read_rtx_lineno, read_rtx_filename): New.
4997 (read_skip_spaces): Track line number.
4998 (read_name): Use fatal_with_file_and_line.
4999 (read_rtx): Use fatal_expected_char. Track line number.
5000 * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
5001
5002 * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
5003 if it isn't a CODE_LABEL.
5004
5005 * genattr.c (main): Set read_rtx_filename.
5006 * genattrtab.c (main): Likewise.
5007 * gencodes.c (main): Likewise.
5008 * genconfig.c (main): Likewise.
5009 * genemit.c (main): Likewise.
5010 * genextract.c (main): Likewise.
5011 * genflags.c (main): Likewise.
5012 * genopinit.c (main): Likewise.
5013 * genoutput.c (main): Likewise.
5014 * genpeep.c (main): Likewise.
5015
5016 * genrecog.c (decision_test.u.insn): Add `lineno'.
5017 (pattern_lineno, error_count): New variables.
5018 (message_with_line): New.
5019 (add_to_sequence): Break out checking code to ...
5020 (validate_pattern): ... here. Detect SET_DEST matching CONST_INT.
5021 (merge_insn): Use message_with_line.
5022 (make_insn_sequence): Use validate_pattern. Record insn lineno.
5023 (main): Set read_rtx_filename, pattern_lineno. Exit early on error.
5024
5025 Wed Oct 13 22:01:35 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
5026
5027 * expr.c (store_constructor): Clear union if constructor is empty.
5028
5029 Wed Oct 13 15:19:04 1999 Jim Wilson <wilson@cygnus.com>
5030
5031 * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
5032 Add !endian checks. Change %{...} to %(...).
5033
5034 Wed Oct 13 13:30:34 1999 Richard Henderson <rth@cygnus.com>
5035
5036 * i386.md (*addsi3_cc): Renamed from addcsi3.
5037 (*addsi3_carry): Renamed from addxsi3.
5038 (*subsi3_cc): Renamed from subcsi3.
5039 (*subsi3_carry): Renamed from subxsi3.
5040 (*xorqi_cc_1): Renamed from xorcqi_1.
5041 (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
5042 * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
5043
5044 Wed Oct 13 13:10:46 1999 Richard Henderson <rth@cygnus.com>
5045
5046 * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
5047 (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
5048
5049 1999-10-13 Brendan Kehoe <brendan@cygnus.com>
5050
5051 * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
5052 climb up the chain of insns.
5053
5054 Wed Oct 13 10:20:58 1999 Richard Henderson <rth@cygnus.com>
5055
5056 * genrecog.c (write_subroutine): Careful for null trees.
5057 (process_tree): Don't elide empty functions.
5058
5059 Wed Oct 13 10:07:54 1999 Richard Henderson <rth@cygnus.com>
5060
5061 * Makefile.in (genrtl.o): Depend on ggc.h.
5062 * configure.in (valloc): Probe for it.
5063 (with-gc): Use ggc-page if valloc present.
5064 * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
5065 (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
5066 (ggc_alloc_string): Moved from ggc-page.c.
5067 * ggc-none.c (ggc_alloc_obj): New.
5068 (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
5069 * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
5070 (struct globals): Likewise for dev_zero_fd.
5071 (init_ggc): Likewise for it's initialization.
5072 (ggc_allocated_p): Move careful dereference from ...
5073 (ggc_lookup_page_table): ... here. Delete.
5074 (lookup_page_table_entry): Don't use ggc_lookup_page_table.
5075 (alloc_anon): Use valloc if no mmap.
5076 (release_pages): Use free if using valloc.
5077 (ggc_alloc_obj): Renamed from alloc_obj.
5078 (ggc_set_mark): Renamed from mark_obj.
5079 (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
5080 (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
5081 (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
5082 (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
5083 (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
5084 (ggc_collect): Use fp printing instead of our own rounding.
5085 * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
5086 (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
5087 (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
5088 (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
5089 (struct ggc_string, struct ggc_any): Delete.
5090 (offsetof): Provide default definition.
5091 (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
5092 (PTR_KEY): New.
5093 (struct ggc_mem): New, from corpse of ggc_any.
5094 (struct ggc_status): Delete.
5095 (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
5096 (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
5097 (n_strings_collected, n_anys_collected): Delete.
5098 (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
5099 (ggc_alloc_string, ggc_alloc): Delete.
5100 (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
5101 (ggc_free_string, ggc_free_any): Delete.
5102 (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
5103 (ggc_compare_addresses, ggc_mark_string): Delete.
5104 (ggc_mark_string_if_gcable, ggc_mark): Delete.
5105 (search_data): Delete.
5106 (struct globals): New.
5107 (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
5108 (tree_insert, tree_lookup): New.
5109 (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
5110 (clear_marks, sweep_objs): New.
5111 (ggc_collect): Gut. Use clear_marks, sweep_objs.
5112 (init_ggc): Set allocated_last_gc.
5113 (ggc_push_context): Gut. Use G.context.
5114 (ggc_pop_context): Likewise.
5115 (ggc_pop_context_1): New.
5116 (debug_ggc_tree): New.
5117 (debug_ggc_balance, tally_leaves): New.
5118 * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
5119 (ggc_mark_string_if_gcable): Remove decl.
5120 (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
5121 (ggc_mark_rtvec_children): New.
5122 (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
5123 (ggc_mark_if_gcable): New decl.
5124 (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
5125 (ggc_alloc_tree, ggc_alloc): Likewise.
5126 (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
5127 (ggc_alloc_obj): New decl.
5128 (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
5129 (ggc_alloc_tree, ggc_alloc): Likewise.
5130 (ggc_set_mark): New decl.
5131 * rtl.h (struct rtx_def): Remove gc_mark.
5132 (struct rtvec_def): Likewise.
5133 * tree.h (struct tree_common): Likewise.
5134
5135 Wed Oct 13 01:44:29 1999 Carol LePage <carolo@hal.com>
5136
5137 * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
5138 float_format and thread_file definitions.
5139 * configure: Rebuilt.
5140
5141 Wed Oct 13 09:25:03 1999 Niels Möller <nisse@lysator.liu.se>
5142
5143 * extend.texi (Function Names): Document types of function names.
5144
5145 Wed Oct 13 00:45:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
5146
5147 * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with
5148 an earlyclobbered output conflict with RELOAD_INPUT reloads.
5149
5150 Tue Oct 12 23:28:28 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
5151
5152 * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
5153
5154 Tue Oct 12 23:19:32 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
5155
5156 * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
5157
5158 Tue Oct 12 17:09:38 1999 David Edelsohn <edelsohn@gnu.org>
5159
5160 * collect2.c (main): Do prelimnary link on AIX if rflag.
5161
5162 Tue Oct 12 09:45:19 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
5163
5164 * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
5165 __CTOR_LIST__ in opposite order, which is the correct order for sorted
5166 constructors.
5167 (__do_global_dtors): similarly for __DTOR_LIST__.
5168
5169 Fri Oct 8 19:46:03 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
5170 Diego Novillo <dnovillo@cygnus.com>
5171
5172 * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
5173 FPUL_REGS.
5174
5175 Tue Oct 12 07:38:41 1999 Bruce Korb <autogen@linuxbox.com>
5176
5177 * fixincl/*: Merged "no_bogosity" branch
5178 * fixincl/fixlib.h: protect against doubly defining t_bool
5179 * fixincl/server.h: protect against doubly defining t_bool
5180
5181 Mon Oct 11 20:18:41 1999 Jim Wilson <wilson@cygnus.com>
5182
5183 * genoutput.c: Include toplev.h.
5184
5185 Mon Oct 11 18:56:14 1999 Jim Wilson <wilson@cygnus.com>
5186
5187 * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
5188 Undef.
5189 * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
5190 * configure: Regenerate.
5191
5192 Mon Oct 11 16:07:49 1999 Richard Henderson <rth@cygnus.com>
5193
5194 * gcse.c (delete_null_pointer_checks): Returns void.
5195
5196 Mon Oct 11 20:31:51 1999 Bernd Schmidt <bernds@cygnus.co.uk>
5197
5198 * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
5199 * emit-rtl.c (copy_insn_1): Likewise.
5200
5201 Mon Oct 11 13:29:06 1999 Geoffrey Keating <geoffk@cygnus.com>
5202
5203 * config/mips/mips.c (mips_build_va_list): Correct
5204 TREE_CHAIN setting when hard-float.
5205 (mips_va_start): Use corrected setting.
5206 (mips_va_arg): Likewise. Also pass a tree to build of
5207 POSTINCREMENT_EXPR rather than a naked 'int'.
5208
5209 Sun Oct 10 18:27:27 1999 Mark Mitchell <mark@codesourcery.com>
5210
5211 * ggc.h (ggc_push_context): Fix comment.
5212 (ggc_pop_context): Likewise.
5213 (mark_string_if_gcable): Likewise.
5214 * ggc-common.c (ggc_mark_rtx_children): Use
5215 ggc_mark_string_if_gcable.
5216 * ggc-page.c (ggc_lookup_page_table): New function.
5217 (ggc_allocated_p): Likewise.
5218 (mark_obj): Fix formatting.
5219 (ggc_mark_string_if_gcable): New function.
5220 * ggc-simple.c (ggc_allocated_strings): New variable.
5221 (ggc_strings_used): Likewise.
5222 (ggc_compare_addresses): New function.
5223 (ggc_pop_context): Pop the `any' memory too.
5224 (ggc_mark_string_if_gcable): New function.
5225 (ggc_collect): Initialize and tear down ggc_allocated_strings.
5226
5227 Sun Oct 10 20:05:21 1999 David Edelsohn <edelsohn@gnu.org>
5228
5229 * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
5230 (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
5231 * rs6000.c (expand_block_move): Match movstrsi_?reg register
5232 changes.
5233
5234 Sun Oct 10 16:37:01 1999 Richard Henderson <rth@cygnus.com>
5235
5236 * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
5237 (sched_reg_live_length, sched_reg_basic_block): Delete.
5238 (current_block_num, bb_live_regs, old_live_regs): Delete.
5239 (dead_notes, struct sometimes): Delete.
5240 (sched_note_set, birthing_insn_p): Delete.
5241 (adjust_priority): Gut useless reg lifetime code.
5242 (create_reg_dead_note, attach_deaths): Delete.
5243 (attach_deaths_insn, new_sometimes_live): Delete.
5244 (finish_sometimes_live): Delete.
5245 (find_pre_sched_live, find_post_sched_live): Delete.
5246 (update_reg_usage): Delete.
5247 (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
5248 (schedule_insns): Delete reg lifetime code.
5249 (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
5250 (unlink_other_notes): Adjust REG_NOTE commentary.
5251 (reemit_notes): Use REG_SAVE_NOTE.
5252 (schedule_block): Likewise.
5253 (schedule_region): Allocate bitmap of blocks in region. Use
5254 count_or_remove_death_notes. Use update_life_info.
5255
5256 * rtl.h (REG_SAVE_NOTE): New.
5257 * rtl.c (reg_note_name): Update.
5258
5259 Sun Oct 10 16:14:16 1999 Richard Henderson <rth@cygnus.com>
5260
5261 * combine.c (refresh_blocks, need_refresh): New.
5262 (combine_instructions): Allocate refresh_blocks. Invoke
5263 update_life_info if needed.
5264 (distribute_notes): Mark refresh_blocks instead of installing
5265 USE insns.
5266 * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
5267 * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
5268
5269 * Makefile.in (recog.o): Depend on basic-block.h.
5270
5271 Sun Oct 10 12:03:21 1999 Richard Henderson <rth@cygnus.com>
5272
5273 * genrecog.c (add_to_sequence): Thinko last change: delete
5274 shadowing allow_const_int variable.
5275
5276 Sun Oct 10 08:40:00 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5277
5278 * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
5279 __GNUC__ and __GNUC_MINOR__.
5280
5281 * gansidecl.h: Likewise.
5282
5283 * rtl.c: Likewise.
5284
5285 * rtl.h: Likewise.
5286
5287 * toplev.h: Likewise.
5288
5289 * tree.c: Likewise.
5290
5291 * tree.h: Likewise.
5292
5293 * varray.c: Likewise.
5294
5295 * varray.h: Likewise.
5296
5297 Sun Oct 10 13:28:48 1999 Bernd Schmidt <bernds@cygnus.co.uk>
5298
5299 * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
5300 use one before a jump table.
5301
5302 * rtl.def (ADDRESS): Change documentation to match reality.
5303 * md.texi: Don't document it.
5304 * gmicro.md (load address pattern): Use 'p' constraint, delete use
5305 of ADDRESS rtx.
5306
5307 * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
5308
5309 Sun Oct 10 02:41:41 1999 Richard Henderson <rth@cygnus.com>
5310
5311 * genrecog.c (add_to_sequence): Move allow_const_int test outside
5312 known predicate block; default allow_const_int true.
5313 (debug_decision_list): New.
5314
5315 Sun Oct 10 00:43:08 1999 Richard Henderson <rth@cygnus.com>
5316
5317 * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
5318
5319 Sat Oct 9 23:26:55 1999 Jeffrey A Law (law@cygnus.com)
5320
5321 * gcse.c (gcse_main): Avoid global optimizations if we have a
5322 large number of basic blocks and the ratio of edges to blocks
5323 is high.
5324 (delete_null_pointer_checks): Likewise.
5325
5326 Sat Oct 9 23:16:01 1999 Ken Raeburn <raeburn@mit.edu>
5327
5328 * c-common.c (check_format_info): Warn if format string isn't a
5329 string literal.
5330
5331 Sat Oct 9 23:04:02 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
5332
5333 * configure.in (arm*-*-*): Don't let autoconf remove brackets
5334 * configure: regenerate
5335
5336 Sat Oct 9 13:15:53 1999 Richard Henderson <rth@cygnus.com>
5337
5338 * alpha.md (extendsidi2): Turn into a splitter. Allow f/f.
5339 If TARGET_FIX, allow r/f. Remove cvtlq unspec pattern.
5340 (peepholes): Re-enable.
5341
5342 Sat Oct 9 12:18:16 1999 Richard Henderson <rth@cygnus.com>
5343
5344 * Makefile.in (flow.o): Depend on TREE_H.
5345 * basic-block.h (REG_SET_EQUAL_P): New.
5346 (XOR_REG_SET): New.
5347 (n_edges): Declare.
5348 (free_regset_vector): Remove declaration.
5349 (flow_delete_insn_chain): Declare.
5350 (enum update_life_extent): New.
5351 (update_life_info, count_or_remove_death_notes): Declare.
5352 * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
5353 Verify register live at bb->global_live_at_start before adding USE.
5354 * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
5355 (CLEAN_ALLOCA): New.
5356 (n_edges): New.
5357 (PROP_*): New flags.
5358 (find_basic_blocks_1): Use alloc_EXPR_LIST.
5359 (clear_edges): Zero n_edges.
5360 (make_edge): Increment n_edges.
5361 (split_edge): Don't allocate bb->local_set. Increment n_edges.
5362 (flow_delete_insn_chain): Export.
5363 (delete_block): Decrement n_edges.
5364 (merge_blocks_nomove): Likewise.
5365 (life_analysis): Give life_analysis_1 PROP flags.
5366 (verify_wide_reg_1, verify_wide_reg): New.
5367 (verify_local_live_at_start): New.
5368 (update_life_info): Rewrite to call into propogate_block.
5369 (mark_reg): New.
5370 (mark_regs_live_at_end): After reload, if epilogue as rtl,
5371 always mark stack pointer. Conditionally mark PIC register.
5372 After reload, mark call-saved registers, return regsiters.
5373 (life_analysis_1): Accept PROP flags not remove_dead_code.
5374 Call mark_regs_live_at_end before zeroing regs_ever_live.
5375 Use calculate_global_regs_live. Copy global_live_at_end before
5376 calling final propagate_block. Zero reg_next_use on exit.
5377 (calculate_global_regs_live): New.
5378 (allocate_bb_life_data): Don't allocate bb->local_set.
5379 (init_regset_vector, free_regset_vector): Remove.
5380 (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
5381 Test flags before every operation. Warn if prologue/epilogue insn
5382 would have been deleted.
5383 (mark_set_regs, mark_set_1): Accept and use FLAGS.
5384 Use alloc_EXPR_LIST.
5385 (mark_used_regs): Accept and use FLAGS, not FINAL.
5386 Remove special handling for RETURN.
5387 (try_pre_increment): Use alloc_EXPR_LIST.
5388 (dump_flow_info): Dump n_edges.
5389 (unlink_insn_chain, split_hard_reg_notes): Remove.
5390 (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
5391 (find_insn_with_note, new_insn_dead_notes): Remove.
5392 (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
5393 (maybe_remove_dead_notes, prepend_reg_notes): Remove.
5394 (replace_insns): Remove.
5395 (count_or_remove_death_notes): New.
5396 (verify_flow_info): Abort on error after all checks.
5397 (remove_edge): Decrement n_edges.
5398 (remove_fake_edges): Tweek format.
5399 * haifa-sched.c (schedule_insns): Use split_all_insns.
5400 * output.h (update_life_info): Remove declaration.
5401 * recog.c (split_all_insns): From the corpse of split_block_insns,
5402 do the whole function block by block. Use update_life_info.
5403 (recog_last_allowed_insn): New.
5404 (recog_next_insn): Mind it.
5405 (peephole2_optimize): Set it. Walk backwards through blocks.
5406 Use update_life_info.
5407 * rtl.h (update_flow_info, replace_insns): Remove declarations.
5408 (split_all_insns): Declare.
5409 * toplev.c (rest_of_compilation): Thread prologue before flow2.
5410 Use split_all_insns.
5411
5412 * i386.md (or -1 peep2s): Disable.
5413
5414 Fri Oct 8 17:49:08 1999 Richard Henderson <rth@cygnus.com>
5415
5416 * config/mips/mips.md (movstrsi+[123]) : Combine these into
5417 a single pattern. Scrap the 'd' versions as unnecessary.
5418
5419 * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
5420 tablejump_mips162,tablejump_internal4): The operands to a
5421 label_ref must be VOIDmode.
5422
5423 Fri Oct 8 16:12:42 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5424
5425 * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
5426
5427 Fri Oct 8 11:58:34 1999 Richard Henderson <rth@cygnus.com>
5428
5429 * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
5430
5431 Fri Oct 8 11:58:34 1999 Richard Henderson <rth@cygnus.com>
5432
5433 * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
5434 cache every function if ggc_p.
5435
5436 Fri Oct 8 18:46:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
5437
5438 * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
5439 instead of copy_rtx. Accept sequences that contain asm statements.
5440 * emit-rtl.c (copy_insn_1, copy_insn): New functions.
5441 (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
5442 orig_asm_operands_vector, copy_asm_operands_vector,
5443 orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
5444 variables.
5445 * rtl.h (copy_insn, copy_insn_1): Declare.
5446
5447 Fri Oct 8 13:08:12 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5448
5449 * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
5450
5451 * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
5452 arguments to `current_file_function_operand'.
5453
5454 * genrecog.c: Include hard-reg-set.h and resource.h in the
5455 generated output file.
5456
5457 * real.c: Include tm_p.h.
5458
5459 Fri Oct 8 18:46:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
5460
5461 * i386.md (prologue_allocate_stack): Add '=' constraint letter on
5462 output operand.
5463
5464 Thu Oct 7 23:06:50 1999 Richard Henderson <rth@cygnus.com>
5465
5466 * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
5467 before the fctiwz insn.
5468
5469 Thu Oct 7 22:53:00 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5470 Mark Mitchell <mark@codesourcery.com>
5471
5472 * tree.c (make_lang_type_fn): New funtion pointer.
5473 (make_lang_type): Call it.
5474 * tree.h (make_lang_type): Declare.
5475 (make_lang_type_fn): Likewise.
5476 * rs6000.c (rs6000_build_va_list): Use make_lang_type.
5477
5478 Thu Oct 7 00:36:17 1999 Diego Novillo <dnovillo@cygnus.com>
5479
5480 * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
5481 make sure that HIGH instructions are copied into BASE_REGS.
5482
5483 Thu Oct 7 17:02:34 1999 Jason Merrill <jason@yorick.cygnus.com>
5484
5485 * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
5486
5487 Thu Oct 7 17:01:58 1999 Greg McGary <gkm@gnu.org>
5488
5489 * c-decl.c (finish_struct): Use simpler method of
5490 removing elements of a singly-linked list.
5491
5492 Thu Oct 7 15:23:28 1999 Michael Meissner <meissner@cygnus.com>
5493
5494 * alpha.md (peephole2's): Comment out peephole2's that generate
5495 buggy code.
5496
5497 Thu Oct 7 12:00:53 1999 Richard Henderson <rth@cygnus.com>
5498
5499 * genrecog.c (add_to_sequence): Disable mode check for
5500 wildcard matches.
5501
5502 Thu Oct 7 20:14:16 1999 Bernd Schmidt <bernds@cygnus.co.uk>
5503
5504 * ggc-simple.c (init_ggc): Set empty_string.
5505
5506 Thu Oct 7 01:13:15 1999 Richard Henderson <rth@cygnus.com>
5507
5508 * configure.in: Detect mmap. Add --with-gc=foo to select
5509 garbage collector; default to page if mmap available.
5510 * Makefile.in (GGC): Substitute.
5511
5512 Wed Oct 6 23:56:30 1999 Richard Henderson <rth@cygnus.com>
5513
5514 * c-decl.c (ggc_p): Enable.
5515
5516 Wed Oct 6 17:17:08 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5517
5518 * flow.c (verify_flow_info): Make it extern & unconditionally define.
5519
5520 1999-10-06 Brendan Kehoe <brendan@cygnus.com>
5521
5522 * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
5523 string for little-endian-data.
5524
5525 Wed Oct 6 16:10:35 1999 Michael Meissner <meissner@cygnus.com>
5526
5527 * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
5528 case somebody tries to compile --enable-checking code with gcc
5529 1.34 or such.
5530
5531 Wed Oct 6 12:22:50 1999 Richard Henderson <rth@cygnus.com>
5532
5533 * genrecog.c (add_to_sequence): Verify operand to label_ref is
5534 VOIDmode.
5535
5536 Wed Oct 6 10:21:15 1999 Richard Henderson <rth@cygnus.com>
5537
5538 * genconfig.c (main): Disable HAVE_conditional_arithmetic.
5539 * jump.c (jump_optimize_1): Document why.
5540
5541 Wed Oct 6 10:41:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5542
5543 * collect2.c (scan_prog_file, scan_libraries): Prototype function
5544 pointers and casts for `int_handler' and `quit_handler'.
5545
5546 * flow.c (verify_flow_info, split_hard_reg_notes,
5547 find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
5548 remove_edge, remove_fake_successors): Add static prototypes.
5549 (verify_flow_info): Wrap with macro ENABLE_CHECKING.
5550 (mark_set_1): Initialize variable `regno'.
5551 (unlink_insn_chain): Likewise for variable `curr'.
5552 (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
5553
5554 * loop.c (strength_reduce): Initialize variable
5555 `unrolled_insn_copies'.
5556 (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
5557 prototypes. Change these functions to take const PTR parameters
5558 to avoid prototype conflict when used as the comparson argument
5559 for qsort.
5560 (check_dbra_loop): Initialize variable `comparison_val'.
5561
5562 * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
5563 (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
5564 (find_valid_class): Initialize variable `best_class'.
5565 (find_reloads): Call memcpy, not bcopy.
5566
5567 * reload1.c (gen_mode_int, dump_needs): Add prototypes.
5568 (hard_reg_use_compare): Don't needlessly cast away const.
5569 (reload_reg_class_lower): Likewise.
5570 (choose_reload_regs): Initialize variable `regno'.
5571
5572 Tue Oct 5 16:34:12 1999 Paul Burchard <burchard@pobox.com>
5573
5574 * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
5575
5576 Tue Oct 5 16:14:40 1999 Michael Meissner <meissner@cygnus.com>
5577
5578 * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
5579 ({,d}discard): Add forward declarations. Declare parameter as
5580 unused.
5581 (main_without_main): Explicitly declare return type to be int.
5582 (memcpy): Properly declare.
5583
5584 * libgcc2.c (toplevel): If inhibit_libc is defined and not
5585 building the trampoline support, declare malloc, free, and
5586 atexit.
5587 (__clear_cache): Mark arguments as potentially unused.
5588
5589 * frame.c (toplevel): If inhibit_libc is defined, declare
5590 malloc and free.
5591
5592 Tue Oct 5 12:00:32 1999 Richard Henderson <rth@cygnus.com>
5593
5594 * flow.c (make_edge): Accept an optional 2D bitmap in which
5595 to cache edge existence. Update all callers.
5596 (make_label_edge, make_eh_edge): Pass through the edge cache.
5597 (make_edges): Provide the cache.
5598
5599 Tue Oct 5 12:16:49 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5600
5601 * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
5602 a char*.
5603 (local_mbtowc): Change the type of variable `i' from int to size_t.
5604
5605 * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
5606 (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
5607
5608 Tue Oct 5 11:34:52 1999 Michael Meissner <meissner@cygnus.com>
5609
5610 * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
5611 after other includes that define the appropriate types. Include
5612 tm_p.h for getting user prototypes.
5613 * ggc-callbacks.c (toplevel): Ditto.
5614 * ggc-none.c (toplevel): Ditto.
5615 * gcc-page.c (toplevel): Ditto.
5616 * ggc-simple.c (toplevel): Ditto.
5617
5618 Mon Oct 4 16:48:16 1999 Diego Novillo <dnovillo@cygnus.com>
5619 Jonathan Larmour <jlarmour@cygnus.co.uk>
5620
5621 * config/mips/mips.c (mips_move_2words): Split doubles if
5622 ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
5623
5624 Mon Oct 4 21:47:31 1999 Richard Henderson <rth@cygnus.com>
5625
5626 * genrecog.c (struct decision_test): New.
5627 (struct decision): Remove test-related members, sort the rest by size.
5628 (IS_SPLIT): Simplify.
5629 (new_decision, new_decision_test): New.
5630 (add_to_sequence): Use them. No special handling for args of
5631 non-MATCH codes.
5632 (maybe_both_true): Renamed from not_both_true; return sense changed.
5633 (maybe_both_true_1, maybe_both_true_2): New. Broken out
5634 of maybe_both_true and adjusted for decision_test.
5635 (position_merit): Remove.
5636 (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
5637 (merge_accept_insn): New, broken out of merge_trees.
5638 (merge_trees): Use them. No special case for c_test; no node
5639 splitting; use test type instead of position_merit.
5640 (factor_tests): New.
5641 (simplify_tests): New.
5642 (break_out_subroutines): Don't write code now.
5643 (find_afterward): New.
5644 (write_afterward, write_switch, write_cond): New.
5645 (write_action, is_unconditional): New.
5646 (write_node): New. Use them.
5647 (write_tree_1): Rewrite. Use the new functions above.
5648 (write_tree): Remove afterward processing.
5649 (write_subroutine): Simplify function variant emission.
5650 (write_subroutines): New.
5651 (same_codes, clear_codes): Remove.
5652 (same_modes, clear_modes): Remove.
5653 (write_header): New, broken out of main.
5654 (make_insn_sequence): Use new_decision and new_decision_test.
5655 (process_tree): New, broken out of main.
5656 (main): Adjust for merge_trees interface change.
5657 Don't #define operands in the output file.
5658 (record_insn_name): New, broken out of make_insn_sequence.
5659 (debug_decision_2, debug_decision_1, debug_decision_0): New.
5660 (debug_decision): New.
5661
5662 1999-10-04 21:58 -0700 Zack Weinberg <zack@bitmover.com>
5663
5664 * resource.c (find_free_register): Mark class_str argument const.
5665 * resource.h: Update prototype to match.
5666
5667 * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
5668 * i386.md: Give all anonymous insns names.
5669
5670 Mon Oct 4 21:12:02 1999 Jeffrey A Law (law@cygnus.com)
5671
5672 * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
5673 blocks.
5674
5675 Mon Oct 4 21:01:39 1999 Richard Henderson <rth@cygnus.com>
5676
5677 * toplev.c (dbr_sched_time): Unconditional.
5678 (peephole2_time): New.
5679 (compile_file): Add pass numbers to all of the dump file suffixes.
5680 Dump peephole2_time. Don't dump times for non-applicable passes.
5681 (rest_of_compilation): Add pass numbers to dump file suffixes.
5682 Conditionalize calls to the scheduler.
5683 * invoke.texi: Update.
5684
5685 Mon Oct 4 20:25:13 1999 Anthony Green <green@cygnus.com>
5686
5687 * flow.c (make_edges): Fix insn iteration.
5688 (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
5689 (find_basic_blocks_1): Fix spelling mistake.
5690
5691 Mon Oct 4 16:56:11 1999 Richard Henderson <rth@cygnus.com>
5692
5693 * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
5694 always have side-effects. Use memset not bzero.
5695 (make_node): Likewise.
5696
5697 Mon Oct 4 16:22:20 1999 Mark Mitchell <mark@codesourcery.com>
5698
5699 * stmt.c (expand_anon_union_decl): When any of the elements of the
5700 union is addressable, so is the entire union.
5701
5702 Mon Oct 4 11:38:33 1999 Richard Henderson <rth@cygnus.com>
5703
5704 * sbitmap.c (sbitmap_ones): Don't set too many bits.
5705
5706 * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
5707 * bitmap.c (bitmap_operation): Return true iff TO changed.
5708 (bitmap_equal_p): New.
5709 (bitmap_bit_p): Tidy arithmetic.
5710 (debug_bitmap_file): Likewise.
5711
5712 Mon Oct 4 11:28:37 1999 Richard Henderson <rth@cygnus.com>
5713
5714 * toplev.c (rest_of_compilation): Turn on cse_not_expected
5715 before cse2 instead of after.
5716
5717 Mon Oct 4 09:55:17 1999 Stan Cox <scox@cygnus.com>
5718
5719 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
5720 register offsets.
5721
5722 Mon Oct 4 08:54:12 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
5723
5724 * cppinit.c (is_idchar initializer): Loosen tests to accept
5725 gcc 2.>6 and >2.
5726
5727 Mon Oct 4 02:31:20 1999 Mark Mitchell <mark@codesourcery.com>
5728
5729 * mips.md: Define conditional move patterns for floating point
5730 operands and DI mode conditions.
5731
5732 Mon Oct 4 02:12:41 1999 Mark Mitchell <mark@codesourcery.com>
5733
5734 * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
5735 always have side-effects.
5736
5737 Sun Oct 3 14:14:16 1999 Jeffrey A Law (law@cygnus.com)
5738
5739 * mn10200.c (asm_file_start): Fix typo.
5740
5741 * cppinit.c (is_idchar initializer): Tighten tests for when
5742 to put the table into initialized memory.
5743
5744 * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
5745 not an array of rtunion.
5746 * gcc-page.c (ggc_alloc_rtvec): Similarly.
5747 * gcc-simple (ggc_free_rtvec): Similarly.
5748
5749 * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
5750 of rtunions.
5751
5752 * mbchar.h: Add missing #endif.
5753
5754 * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
5755 (FPBIT, DPBIT): Define.
5756
5757 Sun Oct 3 12:44:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5758
5759 * print-tree.c (print_node, indent_to): Remove redundant prototypes.
5760
5761 * profile.c (instrument_arcs, output_gcov_string,
5762 tablejump_entry_p): Add static prototypes.
5763 (output_gcov_string): Constify a char*.
5764
5765 * regmove.c (replacement_quality, fixup_match_2): Add static
5766 prototypes.
5767
5768 * resource.h (reg_dead_p): Add extern prototype.
5769
5770 * rtl.c (trim_filename): Add static prototype.
5771
5772 * scan-decls.c (skip_to_closing_brace): Likewise.
5773
5774 * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
5775 (expand_end_case): Initialize variable `range'.
5776 (emit_case_nodes): Remove unused prototype `rtx_fn'.
5777
5778 * varasm.c (asm_emit_uninitialised): Add static prototype.
5779 (asm_emit_uninitialised, assemble_variable): Mark parameter with
5780 ATTRIBUTE_UNUSED.
5781
5782 Sun Oct 3 12:24:52 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5783
5784 * cpplib.c (if_directive_nameo): Add static prototype.
5785
5786 * cse.c (cse_insn): Remove unused variable `p'.
5787
5788 * except.c (create_rethrow_ref, push_entry,
5789 receive_exception_label, new_eh_region_entry, find_func_region,
5790 clear_function_eh_region, process_nestinfo): Add static prototypes.
5791 (get_reg_for_handler): Hide definition.
5792 (process_nestinfo): Initialize variable `extra_handlers'.
5793
5794 * expr.h (expand_builtin_longjmp): Add extern prototype.
5795
5796 * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
5797
5798 * function.c (prepare_function_start): Likewise.
5799 (pop_function_context_from): Mark parameter `context' with
5800 ATTRIBUTE_UNUSED.
5801 (push_temp_slots_for_block, flush_addressof): Hide definition.
5802
5803 * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
5804 solve_program_flow_graph, calculate_branch_probs,
5805 function_summary, main, fancy_abort): Add prototypes.
5806
5807 * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
5808 (add_hash): Constify a char*.
5809
5810 * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
5811 ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
5812 ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
5813
5814 * integrate.c (expand_inline_function_eh_labelmap): Likewise.
5815
5816 * lists.c (free_list, zap_lists): Likewise.
5817
5818 Sun Oct 3 12:05:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5819
5820 * alias.c (nonlocal_reference_p): Add static prototype.
5821
5822 * bitmap.c (bitmap_element_allocate): Prototype args in function
5823 pointer cast.
5824
5825 * builtins.c (stabilize_va_list): Add static prototype.
5826 (expand_builtin_va_arg): Constify a char*.
5827
5828 * c-lex.c (getch, put_back, extend_token_buffer_to,
5829 read_line_number, token_getch, token_put_back): Add static
5830 prototypes.
5831
5832 * c-parse.gperf (hash, is_reserved_word): Likewise.
5833
5834 * cccp.c (is_dir_separator): Likewise.
5835
5836 Sat Oct 2 16:07:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5837
5838 * graph.h: New file to prototype functions exported by graph.c.
5839
5840 * Makefile.in (graph.o, toplev.o): Depend on graph.h.
5841
5842 * graph.c: Include graph.h.
5843
5844 * toplev.c: Likewise. Remove redundant prototypes.
5845
5846 Sat Oct 2 11:28:33 1999 Krister Walfridsson <cato@df.lth.se>
5847
5848 * invoke.texi: Removed duplicated description for -Q.
5849
5850 Sat Oct 2 11:16:00 1999 Jim Kingdon <http://developer.redhat.com>
5851
5852 * extend.texi: Grammar fix in __extension__ text.
5853
5854 Sat Oct 2 11:06:31 1999 Richard Henderson <rth@cygnus.com>
5855
5856 * md.texi (define_peephole2): New section.
5857
5858 Sat Oct 2 10:57:56 1999 Jan Hubicka <hubicka@freesoft.cz>
5859
5860 * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
5861 (mov $-1 to or peepholer): Enable for pentium when optimizing for
5862 speed.
5863
5864 Sat Oct 2 10:55:25 1999 Jan Hubicka <hubicka@freesoft.cz>
5865
5866 * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
5867
5868 Sat Oct 2 10:53:22 1999 Jan Hubicka <hubicka@freesoft.cz>
5869
5870 * i386.md (ffs expander): Emit Pentium friendly code for
5871 TARGET_PENTIUM.
5872
5873 Sat Oct 2 02:48:21 1999 Mark P. Mitchell <mark@codesourcery.com>
5874
5875 * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
5876 for non-trees.
5877 (build1): Likewise.
5878
5879 Fri Oct 1 18:01:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
5880
5881 * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
5882
5883 Fri Oct 1 12:42:53 1999 Andreas Schwab <schwab@suse.de>
5884
5885 * config/m68k/m68k.c (use_return_insn): Return false if the pic
5886 register is in use.
5887
5888 Fri Oct 1 10:56:06 1999 Bernd Schmidt <bernds@cygnus.co.uk>
5889
5890 * md.texi (No Constraints): Delete section.
5891 * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
5892 * final.c (final_scan_insn): We always have register constraints.
5893 * genattrtab.c: Don't include "insn-config.h".
5894 (write_attr_case): We always have register constraints.
5895 * genconfig.c (register_constraint_flag): Delete.
5896 (walk_insn_part): Don't check whether we have register constraints.
5897 (main): Don't write out "#define REGISTER_CONSTRAINTS".
5898 * genoutput.c (have_constraints): Delete.
5899 (main): Don't set it.
5900 (output_operand_data): We always have constraints.
5901 (scan_operands): Likewise.
5902 (compare_operands): Likewise.
5903 * local-alloc.c (block_alloc): We always have constraints.
5904 (requires_inout): Always compile this function.
5905 * recog.c (extract_insn): We always have constraints.
5906 (constrain_operands, reg_fits_class_p): Always compile these
5907 functions.
5908 * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
5909 fields.
5910 (struct insn_operand_data): Likewise.
5911 * regclass.c (regclass): We always have constraints.
5912 (record_reg_classes, copy_cost, record_address_regs,
5913 auto_inc_dec_reg_p): Always compile these functions.
5914 * regmove.c (regmove_optimize): We always have constraints.
5915 * reload.c (find_reloads): Likewise.
5916 * reload1.c (reload): Likewise.
5917 (reload_cse_simplify_operands): Likewise.
5918 * i860.c (output_delay_insn): Likewise.
5919
5920 Thu Sep 30 23:04:41 1999 Mark P. Mitchell <mark@codesourcery.com>
5921
5922 * iris6.h (BUILD_VA_LIST_TYPE): Define.
5923
5924 Thu Sep 30 18:44:50 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5925
5926 * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
5927 for the va_list record.
5928
5929 Thu Sep 30 18:34:54 1999 Jan Hubicka <hubicka@freesoft.cz>
5930
5931 * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
5932 prologues.
5933
5934 Thu Sep 30 18:31:36 1999 Jan Hubicka <hubicka@freesoft.cz>
5935
5936 * alias.c: Include insn-flags.h.
5937 * Makefile.in (alias.o): Update.
5938
5939 Thu Sep 30 18:21:30 1999 Jan Hubicka <hubicka@freesoft.cz>
5940
5941 * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
5942 to LTU and GEU. Handle more cases using sbb.
5943
5944 Thu Sep 30 18:18:39 1999 Jan Hubicka <hubicka@freesoft.cz>
5945
5946 * i386.md (truncatexfdf splitters): Do not use subreg.
5947 (fop XFmode patterns): Fix mode in operand testing.
5948
5949 Thu Sep 30 18:04:13 1999 Richard Henderson <rth@cygnus.com>
5950
5951 * jump.c (jump_optimize_1): Amend last change to test only the
5952 form of the operand, not the insn.
5953
5954 * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
5955 not register_operand to determine when B may need preloading.
5956
5957 Thu Sep 30 17:39:16 1999 Richard Henderson <rth@cygnus.com>
5958
5959 * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
5960 (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
5961 (call-value patterns): Move to end of file.
5962 (*): Remove mode from label_ref in (pc) context.
5963 (movstrqi): Use memory not general_operand for BLKmode operands.
5964 (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
5965 to register_operand operands.
5966 (peep2 patterns): Convert from commented-out peephole patterns.
5967
5968 Thu Sep 30 14:39:17 1999 Bernd Schmidt <bernds@cygnus.co.uk>
5969
5970 * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
5971 to BUILT_IN_INIT_DWARF_REG_SIZES.
5972 * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
5973 Renamed from BUILT_IN_DWARF_REG_SIZE; call
5974 expand_builtin_init_dwarf_reg_sizes.
5975 * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
5976 with __builtin_init_dwarf_reg_size_table.
5977 * dwarf2out.c (struct reg_size_range): Delete.
5978 (expand_builtin_init_dwarf_reg_sizes): New function.
5979 (expand_builtin_dwarf_reg_size): Delete.
5980 * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
5981 (expand_builtin_dwarf_reg_size): Don't declare.
5982 * libgcc2.c (dwarf_reg_size_table_initialized): New.
5983 (dwarf_reg_size_table): New.
5984 (init_reg_size_table): New function.
5985 (copy_reg): Use dwarf_reg_size_table.
5986 (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
5987 before use.
5988
5989 Thu Sep 30 05:40:34 1999 Richard Earnshaw <rearnsha@arm.com>
5990
5991 * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
5992 Correctly build argument list to constructor and destructor functions.
5993
5994 Thu Sep 30 00:13:27 1999 Dirk Zoller <duz@rtsffm.com>
5995
5996 * c-tree.h (warn_float_equal): Declare.
5997 * c-decl.c (warn_float_equal): Define.
5998 (c_decode_option): Recognize -W[no-]float-equal.
5999 * c-typeck.c (build_binary_op): Conditionally warn
6000 about equality tests of floating point types.
6001 * toplev.c (documented_lan_options): Add -W[no-]float-equal.
6002 * invoke.texi: Add docs for -Wfloat-equal warning.
6003
6004 Wed Sep 29 23:43:39 1999 Jeffrey A Law (law@cygnus.com)
6005
6006 * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
6007 generating RTL directly.
6008 * mips.h (INIT_TARGET_OPTABS): Likewise.
6009 * mn10200.h (INIT_TARGET_OPTABS): Likewise.
6010
6011 * expr.h (init_mov_optab): Delete declaration
6012
6013 * h8300.c (WORD_REG_USED): Update to avoid useless register
6014 saves in interrupt functions and functions which never return.
6015
6016 * cse.c (struct set): Delete inner_dest_loc field.
6017 (cse_insn): Remove assignments to inner_dest_loc field.
6018
6019 Wed Sep 29 16:06:20 1999 Richard Henderson <rth@cygnus.com>
6020
6021 * ggc-page.c: Don't include <unistd.h> etc taken care of
6022 by "system.h". Include <sys/mman.h> afterward.
6023
6024 Wed Sep 29 16:05:18 1999 Richard Henderson <rth@cygnus.com>
6025
6026 * rs6000.c (rs6000_encode_section_info): If ggc_p, use
6027 ggc_alloc_string.
6028
6029 Tue Sep 28 16:45:40 1999 David Edelsohn <edelsohn@gnu.org>
6030
6031 * xcoffout.c (xcoffout_declare_function): Add documentation.
6032 * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
6033 TARGET_64BIT. Compare constant to -1, not bit pattern.
6034 (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
6035 (expand_block_move): Allow 8 DImode loads for PowerPC64. Fix
6036 gen_movsi typos.
6037
6038 Tue Sep 28 16:43:14 1999 Nick Clifton <nickc@cygnus.com>
6039
6040 * dwarf2out.c (add_abstract_origin_attribute): Abort if
6041 origin_die is NULL.
6042 (gen_inlined_enumeration_type_die): Do not abort if the type has
6043 not been writeen out.
6044 (gen_inlined_structure_type_die): Do not abort if the type has
6045 not been writeen out.
6046 (gen_inlined_union_type_die): Do not abort if the type has
6047 not been writeen out.
6048 (gen_tagged_type_instantiation_die): Do not abort if the type
6049 has not been written out.
6050
6051 Tue Sep 28 14:33:47 1999 Bernd Schmidt <bernds@cygnus.co.uk>
6052
6053 * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
6054 call it.
6055 * reg-stack.c (straighten_stack): Copy hard reg set with
6056 COPY_HARD_REG_SET.
6057
6058 Tue Sep 28 01:11:05 1999 Richard Henderson <rth@cygnus.com>
6059
6060 * builtins.c (stabilize_va_list): Stabilize array type va_list
6061 to a pointer type, not the base record type.
6062 (expand_builtin_va_copy): Dereference the pointers explicitly;
6063 use the correct size for the copy.
6064
6065 * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
6066 (rs6000_va_arg): Likewise.
6067
6068 Mon Sep 27 23:27:21 1999 Richard Henderson <rth@cygnus.com>
6069
6070 * rtl.h (struct rtx_def): Move gc_mark to align mode field.
6071
6072 Mon Sep 27 23:20:29 1999 Mark Mitchell <mark@codesourcery.com>
6073
6074 * tree.h (struct tree_decl): Use `bclass', not `class', in name of
6075 field.
6076 (DECL_BUILT_IN_CLASS): Adjust accordingly.
6077
6078 Mon Sep 27 23:03:16 1999 Richard Henderson <rth@cygnus.com>
6079
6080 * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
6081 (init_ggc): Use it instead of a constant.
6082 (ggc_collect): Bound allocated_last_gc by it.
6083
6084 Mon Sep 27 19:06:04 1999 Jeffrey A Law (law@cygnus.com)
6085
6086 * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
6087 with va_list.
6088
6089 Mon Sep 27 19:40:17 CEST 1999 Marc Espie <espie@cvs.openbsd.org>
6090
6091 * configure.in (mips*el-*-openbsd*): Don't duplicate default settings.
6092 (mips*-*-openbsd*): Let big endian configuration be a fragment.
6093 * configure: Regen.
6094 * config/mips/openbsd.h: New, OpenBSD little endian target.
6095 * config/mips/openbsd-be.h: New, OpenBSD big endian target fragment.
6096 * config/mips/xm-openbsd.h: New, OpenBSD host.
6097
6098 Mon Sep 27 10:28:48 1999 Andreas Schwab <schwab@suse.de>
6099
6100 * config/m68k/m68k.c (output_function_prologue,
6101 output_function_epilogue): Use
6102 current_function_uses_pic_offset_table instead of regs_ever_live
6103 to decide whether to save/restore pic register.
6104 (legitimize_pic_address): Don't modify regs_ever_live any more.
6105
6106 Sun Sep 26 10:55:36 1999 Mark Mitchell <mark@codesourcery.com>
6107
6108 * function.h (struct function): Add x_dont_save_pending_sizes_p.
6109 * stor-layout.c (variable_size): Don't add sizes to the pending
6110 sizes list if x_dont_save_pending_sizes_p is set.
6111
6112 Sun Sep 26 16:36:52 1999 Robert Lipe (robertlipe@usa.net)
6113
6114 * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
6115 for symbolic_operand().
6116 * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
6117
6118 Sun Sep 26 07:37:11 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6119
6120 * combine.c (gen_rtx_combine): Add missing call to va_end().
6121
6122 * final.c (asm_fprintf): Likewise.
6123
6124 * genattrtab.c (attr_rtx): Likewise.
6125
6126 Sat Sep 25 13:11:07 1999 Jeffrey A Law (law@cygnus.com)
6127
6128 * cse.c: Update comments.
6129 (cse_insn): When converting a conditional/computed jump into
6130 an unconditional jump, always make sure a BARRIER immediately
6131 follows the converted jump. Do not delete unreachable code.
6132 (cse_basic_block): Do not delete unreachable code.
6133 * toplev.c (rest_of_compilation): Move call to
6134 delete_trivially_dead_insns after the conditional call to
6135 jump_optimize.
6136
6137 Sat Sep 25 09:03:17 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6138
6139 * collect2.c (make_temp_file): Don't prototype.
6140
6141 * gcc.c (make_temp_file): Likewise.
6142
6143 * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
6144
6145 Sat Sep 25 13:42:15 1999 Nick Clifton <nickc@cygnus.com>
6146
6147 * varasm.c (asm_emit_uninitialised): New function: Generate
6148 the assembler statements necessary to declare an uninitialised
6149 variable.
6150 (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
6151 variable.
6152 (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
6153 (ASM_EMIT_COMMON): New macro: Emit an entry in the common
6154 section.
6155 (assemble_variable): Use asm_emit_uninitialised to emit an
6156 uninitialised variable.
6157
6158 Fri Sep 24 17:10:56 1999 Nick Clifton <nickc@cygnus.com>
6159
6160 * combine.c (simplify_comparison): Cope with downshifting a 32 bit
6161 constant on a 64 bit host. Patch supplied by Geoffrey Keating
6162 <geoffk@cygnus.com>.
6163
6164 Fri Sep 24 10:48:10 1999 Bernd Schmidt <bernds@cygnus.co.uk>
6165
6166 * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
6167 * c-common.h (builtin_function): Don't declare.
6168
6169 * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
6170 DECL_BUILT_IN.
6171 (pushdecl): Likewise.
6172 (finish_decl): Likewise.
6173 (builtin_function): New arg CLASS. Arg FUNCTION_CODE now of type
6174 int. All callers changed.
6175 Set the builtin's DECL_BUILT_IN_CLASS.
6176 * tree.h (enum built_in_class): New.
6177 (enum built_in_function): Delete NOT_BUILT_IN.
6178 (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
6179 in a union.
6180 (DECL_SET_FUNCTION_CODE): Likewise.
6181 (DECL_BUILT_IN_CLASS): New macro.
6182 (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
6183 (struct tree_decl): Split builtin function code field into a
6184 struct.
6185 (builtin_function): Declare.
6186
6187 Fri Sep 24 01:45:05 1999 Mark Mitchell <mark@codesourcery.com>
6188
6189 * optabs.c (init_traps): Fix typo in last change.
6190
6191 Fri Sep 24 01:10:11 1999 Mark Mitchell <mark@codesourcery.com>
6192
6193 * toplev.c (rest_of_decl_compilation): Update comment.
6194
6195 Fri Sep 24 11:57:06 1999 Geoffrey Keating <geoffk@cygnus.com>
6196
6197 * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
6198 in .sbss if appropriate.
6199 (EXTRA_SECTION_FUNCTIONS): Add sbss.
6200 (SBSS_SECTION_ASM_OP): New macro.
6201 * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
6202 (EXTRA_SECTIONS): Add in_sbss.
6203 * config/mips/mips.h: Prototype sbss_section.
6204
6205 Thu Sep 23 18:18:55 1999 Mark Mitchell <mark@codesourcery.com>
6206
6207 * stmt.c (expand_start_bindings): Don't allow cleanup instructions
6208 to disappear.
6209
6210 Thu Sep 23 18:07:01 1999 Mark Mitchell <mark@codesourcery.com>
6211
6212 * optabs.c (init_traps): Register trap_rtx as a GC root.
6213
6214 Thu Sep 23 17:41:47 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6215
6216 * config/mips/mips.c (function_arg_pass_by_reference): Define
6217 unconditionally, since it's called unconditionally.
6218
6219 Thu Sep 23 13:40:02 1999 Jason Merrill <jason@yorick.cygnus.com>
6220
6221 * toplev.c (documented_lang_options): Add -fshort-wchar.
6222 * c-decl.c (c_decode_option): Likewise.
6223 (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
6224 for wchar_t.
6225 * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
6226 * gcc.c (default_compilers): If -fshort-wchar,
6227 override __WCHAR_TYPE__.
6228 * tm.texi (C Dialect Options): Add -fshort-wchar.
6229
6230 * dwarf2out.c (output_aranges): Use DW_AT_location to find the
6231 symbol for a variable.
6232
6233 * cpplib.h (CPP_PREPROCESSED): New macro.
6234 * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
6235 we're seeing this input for a second time.
6236
6237 Thu Sep 23 12:54:49 1999 Alex Samuel <samuel@codesourcery.com>
6238
6239 * emit-rtl.c (init_emit_once): Initialize modes first.
6240
6241 Sun Sep 19 01:23:23 1999 Alex Samuel <samuel@codesourcery.com>
6242
6243 * config/i386/i386.c (pic_label_name): Change to char pointer.
6244 (global_offset_table): New variable.
6245 (load_pic_register): Fill global_offset_table if it hasn't
6246 already been done. Allocate pic_label_name dynamically.
6247 * ggc.h (empty_string): New variable.
6248 * ggc-simple.c (empty_string): Likewise.
6249 (init_ggc): Allocate empty_string and add as root.
6250 * stmt.c (digit_strings): New variable.
6251 (init_stmt): Add last_block_end_note as root. Allocate and
6252 initialize digit_strings.
6253 (expand_asm_operands): Use empty_string instead of string
6254 constant. Use digit_strings instead of string constants.
6255 * profile.c (init_arc_profiler): Allocate string with
6256 ggc_alloc_string instead of xmalloc.
6257 (output_func_start_profiler): Likewise.
6258 * c-typeck.c (digest_init): Check if init is error_mark_node.
6259
6260 Thu Sep 23 12:59:14 1999 Alex Samuel <samuel@codesourcery.com>
6261 Richard Henderson <rth@cygnus.com>
6262
6263 * ggc-page.c: New file.
6264 * Makefile.in (ggc-page.o): New.
6265
6266 Thu Sep 23 13:55:21 1999 Jeffrey A Law (law@cygnus.com)
6267
6268 * invoke.texi: Document -fdelete-null-pointer-checks
6269 * toplev.c (flag_delete_null_pointer_checks): New.
6270 (f_options): Add entry for -fdelete-null-pointer-checks.
6271 (rest_of_compilation): Conditionalize null pointer check
6272 elimination on flag_delete_null_pointer_checks.
6273 (main): If -O2 or greater, enable -fdelete-null-pointer-checks
6274
6275 1999-09-23 10:56 -0700 Zack Weinberg <zack@bitmover.com>
6276
6277 * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
6278 copyright notice and special exception to GPL.
6279
6280 Thu Sep 23 13:40:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6281
6282 * abi64.h (mips_function_value): Add prototype arguments.
6283
6284 * mips-protos.h: New file with mips prototypes.
6285
6286 * mips.c: Include "tm_p.h".
6287 (mktemp, lookup_name): Add prototype arguments.
6288 (extern_list, string_constant, mips_fill_delay_slot,
6289 mips_output_external, mips_output_external_libcall,
6290 mips_output_filename, mips_declare_object, function_prologue,
6291 mips_expand_prologue, function_epilogue, mips16_constant,
6292 build_mips16_function_stub, mips_output_conditional_branch):
6293 Constify a char*.
6294 (mips_va_start): Remove unused variable `u'.
6295 (mips_va_arg): Cast value to unsigned when comparing against one.
6296 (trace): Delete.
6297 (save_restore_insns, mips_expand_prologue): Add missing arg in
6298 call to `large_int'.
6299
6300 * mips.h: Move prototypes to mips-protos.h.
6301 (data_section, memory_address_p, rdata_section,
6302 readonly_data_section, simple_epilogue_p, text_section): Delete
6303 prototypes delcared elsewhere.
6304 (mips_epilogue_delay_slots, print_options): Delete unused decls.
6305 (trace): Delete.
6306 (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
6307
6308 * mips.md: Delete extra args in call to `mips_move_2words'.
6309
6310 * xm-iris6.h (alloca): Add prototype argument.
6311
6312 * genpeep.c: Include "tm_p.h" in generated output file.
6313
6314 Thu Sep 23 10:36:55 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
6315
6316 * basic-block.h (find_edge_index): Change parameters.
6317 * flow.c (verify_edge_list): Pass basic_block parameters to
6318 find_edge_index instead of integers.
6319
6320 Thu Sep 23 15:54:12 1999 Nick Clifton <nickc@cygnus.com>
6321
6322 * combine.c (simplify_comparison): Use an unsigned shift to adjust
6323 the constant.
6324
6325 Thu Sep 23 08:46:21 1999 Guy Harris <guy@netapp.com>
6326
6327 * gcc.1: Fix a formatting error.
6328
6329 Wed Sep 22 16:10:21 1999 Martin v. Löwis <loewis@informatik.hu-berlin.de>
6330
6331 * install.texi (Configurations): Remove pyramid. Add fr30, i686,
6332 i786, mn10200, mn10300, pdp11, v850.
6333
6334 Thu Sep 23 07:37:13 1999 Dan Nicolaescu <dann@ics.uci.edu>
6335
6336 * libgcc2.c (num_digits): Add prototype with
6337 __attribute__((const)).
6338 (__terminate): Add prototype.
6339
6340 Thu Sep 23 05:32:06 1999 Richard Henderson <rth@cygnus.com>
6341
6342 * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
6343
6344 * alpha/alpha.c (print_operand): Fix type of `code'.
6345 (alpha_output_filename): Constify.
6346 * alpha/alpha.h: Move all function declarations ...
6347 * alpha/alpha-protos.h: ... here. New file.
6348 * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
6349 (SECTION_FUNCTION_TEMPLATE): Likewise.
6350
6351 Thu Sep 23 11:15:36 1999 Bernd Schmidt <bernds@cygnus.co.uk>
6352
6353 * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
6354 * expr.c (expand_expr): Likewise.
6355 (do_jump): Likewise.
6356 (do_store_flag): Pass ccp_store_flag to can_compare_p.
6357 * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
6358 accessor macros.
6359 (enum can_compare_purpose): New.
6360 (can_compare_p): Adjust prototype.
6361 (prepare_cmp_insn, prepare_operand): Declare.
6362 * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
6363 * optabs.c (cmp_available_p): Deleted.
6364 (expand_abs): Pass ccp_jump to can_compare_p.
6365 (can_compare_p): New arg PURPOSE. Check for combined optabs.
6366 (prepare_cmp_insn): No longer static. Add arg PURPOSE.
6367 Call can_compare_p rather than cmp_available_p.
6368 (prepare_operand): No longer static.
6369 (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
6370 (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
6371 (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
6372 sequence to use emit_cmp_and_jump_insns.
6373 (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
6374
6375 Wed Sep 22 17:58:01 1999 Stan Cox <scox@cygnus.com>
6376
6377 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
6378 register offsets; let LEGITIMIZE_ADDRESS load it into a register.
6379 (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
6380 (plus (reg) (const_int 0))
6381 * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
6382
6383 Wed Sep 22 17:55:31 1999 David Edelsohn <edelsohn@gnu.org>
6384
6385 * rs6000.c (expand_block_move): DImode loads and stores require
6386 word-aligned displacements. Increment address registers with
6387 adddi3 on 64-bit platform. Use TARGET_POWERPC64 not TARGET_64BIT.
6388
6389 Wed Sep 22 17:35:55 1999 Michael Meissner <meissner@cygnus.com>
6390
6391 * dwarf2out.c (base_type_die): Use the name __unknown__ if there
6392 is no name for the base type, rather than segfault. If we are
6393 writing out a complex integer type, use DW_ATE_lo_user.
6394
6395 * expr.c (emit_move_insn_1): If we are copying a complex that fits
6396 in one word or less (complex char, complex short, or on 64 bit
6397 systems complex float) to/from a hard register, copy it through
6398 memory instead of dying in gen_{real,imag}part. If we have a
6399 short complex type, prevent inlining since it allocates stack
6400 memory.
6401
6402 * tree.c (build_complex_type): If we are writing dwarf2 output,
6403 generate a name for complex integer types.
6404
6405 Wed Sep 22 11:34:08 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
6406
6407 * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
6408 * flow.c (remove_edge): Remove extra whitespace.
6409 (remove_fake_edges): Fix comment.
6410 (add_noreturn_fake_exit_edges): Use the correct name.
6411
6412 Wed Sep 22 16:12:40 BST 1999 Nathan Sidwell <nathan@acm.org>
6413
6414 * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
6415 (mostlyclean): Depend on INTL_MOSTLYCLEAN.
6416 (clean): Depend on INTL_CLEAN.
6417 (maintainer-clean): Adjust.
6418
6419 Wed Sep 22 10:18:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6420
6421 * configure.in (AC_PREREQ): Bump to 2.13.
6422 (AC_C_STRINGIZE): Call this instead of using a custom macro.
6423
6424 * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
6425
6426 * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
6427
6428 * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
6429
6430 * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
6431 (HAVE_STRINGIZE): Define.
6432
6433 Wed Sep 22 06:25:15 1999 Jim Kingdon <http://developer.redhat.com>
6434
6435 * c-parse.in: save and restore warn_pointer_arith on __extension__
6436 along with pedantic.
6437 (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
6438 Set the type of extension to itype rather than $<itype>1 kludge.
6439 * extend.texi (Alternate Keywords): Adjust documentation.
6440 * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
6441
6442 Wed Sep 22 06:06:57 1999 Jeffrey A Law (law@cygnus.com)
6443
6444 * pa.c, pa.h, pa.md: Support multiple assembler dialects in
6445 most assembler templates.
6446
6447 * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
6448 FP loads and stores.
6449 (following_call): Always return zero for the PA8000.
6450 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
6451 FP loads and stores.
6452 (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
6453
6454 * pa.h (BRANCH_COST): Define.
6455
6456 * pa.md (return, return_internal): Use bve for PA2.0.
6457
6458 * pa.md (fused multiply): Add variants which reduce height for the
6459 fused multiply, but which still generate 2 insns.
6460 (fnegabs): Similarly.
6461
6462 * pa.md (subsi3): Turn into an expander. Create two anonymous
6463 patterns. One for PA2.0 one for PA1.x. Use mtsarcm for PA2.0.
6464 * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
6465
6466 * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
6467 for TARGET_PA_20.
6468 (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
6469 code generation.
6470 (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
6471 (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
6472
6473 * regclass.c (init_regs): Add "top_of_stack" as a garbage
6474 collection root.
6475
6476 * flow.c (record_active_eh_regions): Terminate loop after finding
6477 the last insn in the last basic block.
6478
6479 Wed Sep 22 20:25:00 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6480
6481 * config/c4x/c4x.md: Delete parallel instruction peepholes.
6482
6483 Wed Sep 22 19:59:19 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6484
6485 * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
6486
6487 Wed Sep 22 19:56:25 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6488
6489 * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
6490 splitting to not use output template.
6491
6492 Wed Sep 22 19:50:12 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6493
6494 * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
6495 * config/c4x/c4x.c (c4x_va_start): New function.
6496
6497 Tue Sep 21 18:40:01 1999 Jan Hubicka <hubicka@freesoft.cz>
6498
6499 * genrecog.c (not_both_true): Handle correctly cases when called for
6500 tests with different positions in the insn.
6501
6502 Tue Sep 21 18:29:11 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6503
6504 * machmode.h (HOST_PTR_PRINTF): Move from here ...
6505
6506 * system.h (HOST_PTR_PRINTF): ... to here.
6507
6508 * mips-tfile.c: Don't include machmode.h.
6509
6510 * Makefile.in (MACHMODE_H): New variable. Update to use it.
6511 (mips-tfile.o): Don't depend on machmode.h.
6512
6513 Tue Sep 21 18:27:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6514
6515 * haifa-sched.c (sched_analyze): Rename local variable `region' to
6516 avoid conflicts with typedef struct `region' at the top level scope.
6517
6518 Tue Sep 21 14:14:50 1999 Richard Henderson <rth@cygnus.com>
6519
6520 * basic-block.h (basic_block): Add eh_beg, eh_end.
6521 * flow.c (entry_exit_blocks): Update.
6522 (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
6523 Call new functions.
6524 (find_basic_blocks_1): Don't record eh_list at each bb. Use
6525 lists.c functions to allocate insn lists.
6526 (make_edges): Use eh_beg+eh_end, not the lists. Split out EH
6527 edge creation ...
6528 (make_eh_edge): ... here. New.
6529 (move_stray_eh_region_notes): New.
6530 (record_active_eh_regions): New.
6531 (delete_unreachable_blocks): Split out block merging ...
6532 (try_merge_blocks): ... here. New.
6533 (merge_blocks_move_predecessor_nojumps): Remove edge arg.
6534 Dump debugging data.
6535 (merge_blocks_move_successor_nojumps): Likewise.
6536 (merge_blocks): Use eh_beg+eh_end to validate block movement.
6537
6538 Tue Sep 21 11:15:03 1999 Martin v. Löwis <loewis@informatik.hu-berlin.de>
6539
6540 * extend.texi (Bound member functions): Document unbound pmf
6541 conversion.
6542
6543 Tue Sep 21 14:55:11 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
6544
6545 * flow.c (split_edge): Handle insertion on a fallthrough edge which
6546 has the EXIT_BLOCK as a dest.
6547
6548 Tue Sep 21 14:51:23 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
6549
6550 * flow.c (remove_edge): New function to remove an edge from the
6551 flow graph.
6552 (remove_fake_successors): New function to remove fake successor edges.
6553 (remove_fake_edges): New function to remove all fake edges from the
6554 flow graph.
6555 (add_fake_exit_edges): New function to add fake edges from all blocks
6556 with no successors to the exit block.
6557 * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
6558 prototypes for new functions.
6559
6560 Tue Sep 21 14:49:53 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
6561
6562 * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
6563 Use Pmode to determine whether to output .dword or .word.
6564
6565 Tue Sep 21 11:04:34 1999 Alex Samuel <samuel@codesourcery.com>
6566
6567 * tree.c (built_in_filename): New variable.
6568 (BUILT_IN_FILENAME): New macro.
6569 (init_tree_codes): Allocate built_in_filename.
6570 (make_node): Use built_in_filename instead of string constant.
6571
6572 Tue Sep 21 14:13:27 1999 Nick Clifton <nickc@cygnus.com>
6573
6574 * configure.in: Add fr30 target.
6575 * configure: Regenerate.
6576 * config/fr30: New directory.
6577 * config/fr30/crti.asm: New file.
6578 * config/fr30/fr30.c: New file.
6579 * config/fr30/crtn.asm: New file.
6580 * config/fr30/fr30.h: New file.
6581 * config/fr30/fr30.md: New file.
6582 * config/fr30/lib1funcs.asm: New file.
6583 * config/fr30/t-fr30: New file.
6584 * config/fr30/xm-fr30.h: New file.
6585
6586 Tue Sep 21 06:45:31 1999 Jeffrey A Law (law@cygnus.com)
6587
6588 * flow.c (merge_blocks_move_successor_nojumps): Delete the
6589 BARRIER at the end of the successor, not the BARRIER before
6590 the successor.
6591
6592 * pa.c (pa_add_gc_roots): Fix thinko in last change.
6593
6594 Tue Sep 21 05:29:17 1999 Richard Earnshaw (rearnsha@arm.com)
6595
6596 * stmt.c (any_pending_cleanups): Don't crash when
6597 current_function->stmt is unset.
6598
6599 Tue Sep 21 00:59:49 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6600
6601 * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
6602 other initializations that may use it for relative offsets.
6603
6604 Mon Sep 20 21:43:25 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6605
6606 * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
6607 (ASM_SPEC): Moved from sol2dbg.h. Added work-around for gas.
6608 * config/i386/sol2dbg.h: Removed.
6609 * config/i386/sol2gas.h: New file, to enable gas work-around.
6610 * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
6611 Don't use sol2dbg.h.
6612 * configure: Rebuilt.
6613
6614 Mon Sep 20 13:29:41 1999 Mark Mitchell <mark@codesourcery.com>
6615
6616 * invoke.texi (-fthis-is-variable): Remove documentation.
6617
6618 Mon Sep 20 12:59:16 1999 Richard Henderson <rth@cygnus.com>
6619
6620 * basic-block.h (compute_bb_for_insn): Declare.
6621 * flow.c (compute_bb_for_insn): Export. Don't accept the varray
6622 to use; set size of basic_block_for_insn directly.
6623 (find_basic_blocks): Update.
6624
6625 Mon Sep 20 15:11:54 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6626
6627 * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
6628
6629 Mon Sep 20 14:56:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6630
6631 * crtstuff.c (ON_EXIT): Delete empty macro definition.
6632 (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
6633
6634 Mon Sep 20 15:25:35 1999 Nick Clifton <nickc@cygnus.com>
6635
6636 * c-decl.c (c_decode_option): Extend comment.
6637
6638 Mon Sep 20 14:43:37 1999 Nick Clifton <nickc@cygnus.com>
6639
6640 * toplev.c (progname): Make 'const char *'
6641 (flag_print_mem): Move out of main.
6642 (version_flag): Move out of main.
6643 (filename): Move out of main.
6644 (debug_args): Remove g prefix from options.
6645 (documented_lang_options): Remove cpplib specific options.
6646 (display_help): Add g prefix to debug options.
6647 (check_lang_option): Delete this function.
6648 (decode_d_option): New function: Decode -d... option.
6649 (decode_f_option): New function: Decode -f... option.
6650 (decode_W_option): New function: Decode -W... option.
6651 (decode_g_option): New function: Decode -g... option.
6652 (independent_decode_option): New function: Decode a language
6653 independent command line option.
6654 (main): Invoke lang_decode_option and then
6655 independent_decode_option on each command line option in
6656 turn.
6657
6658 Mon Sep 20 05:41:36 1999 Jeffrey A Law (law@cygnus.com)
6659
6660 Revert this change. Gavin's patch to operand_equal_p is a better fix.
6661 * fold-const.c (fold_range_test): Do not try to fold the range
6662 test if the rhs or lhs has side effects.
6663
6664 * basic-block.h (compute_flow_dominators): Declare.
6665
6666 * gcse.c (alloc_code_hoist_mem): New function.
6667 (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
6668 (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
6669 (hoist_code, one_code_hoisting_pass): Likewise.
6670 (gcse_main): If optimizing for size, then hoist expressions
6671 computed in multiple dominated basic blocks.
6672
6673 * gcse.c (invalid_nonnull_info): New function.
6674 (delete_null_pointer_checks): Likewise.
6675 * rtl.h (delete_null_pointer_checks): Declare.
6676 * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
6677
6678 * flow.c (merge_blocks_move_predecessor_nojumps): New function.
6679 (merge-blocks_move_successor_nojumps): Likewise.
6680 (merge_blocks): Allow merging of some blocks, even if it requires
6681 physical movement of the blocks, but not if it requires new jumps.
6682
6683 * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
6684 Callers and prototype changed.
6685 * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
6686
6687 Mon Sep 20 06:56:32 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6688
6689 * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
6690 -YP when both -p and -pg are present. From i386/sol2.h.
6691
6692 Mon Sep 20 10:49:05 1999 Bernd Schmidt <bernds@cygnus.co.uk>
6693
6694 * Makefile.in (distclean): Delete tm_p.h.
6695 * configure.in: Create a new file, "tm_p.h", from a list in
6696 "tm_p_file". For ix86 systems, set up "tm_p_file" to include
6697 "i386/i386-protos.h".
6698
6699 * alias.c: Include "tm_p.h".
6700 * c-typeck.c: Likewise.
6701 * calls.c: Likewise.
6702 * cse.c: Likewise.
6703 * emit-rtl.c: Likewise.
6704 * explow.c: Likewise.
6705 * expmed.c: Likewise.
6706 * expr.c: Likewise.
6707 * final.c: Likewise.
6708 * flow.c: Likewise.
6709 * fold-const.c: Likewise.
6710 * function.c: Likewise.
6711 * gcse.c: Likewise.
6712 * global.c: Likewise.
6713 * haifa-sched.c: Likewise.
6714 * integrate.c: Likewise.
6715 * jump.c: Likewise.
6716 * local-alloc.c: Likewise.
6717 * loop.c: Likewise.
6718 * optabs.c: Likewise.
6719 * recog.c: Likewise.
6720 * reg-stack.c: Likewise.
6721 * regclass.c: Likewise.
6722 * regmove.c: Likewise.
6723 * reload.c: Likewise.
6724 * reload1.c: Likewise.
6725 * reorg.c: Likewise.
6726 * resource.c: Likewise.
6727 * stmt.c: Likewise.
6728 * stor-layout.c: Likewise.
6729 * toplev.c: Likewise.
6730 * tree.c: Likewise.
6731 * unroll.c: Likewise.
6732 * genattrtab.c (main): Make generated file include "tm_p.h".
6733 * genemit.c (main): Likewise.
6734 * genoutput.c (main): Likewise.
6735 * genrecog.c (main): Likewise.
6736
6737 * i386.h: Delete all prototypes.
6738 * i386.c: Include "tm_p.h".
6739 (ix86_attr_length_default): Call constant_call_address_operand
6740 with correct number of arguments.
6741 * i386-protos.h: New file.
6742 * i386.md (unnamed patterns): Call constant_call_address_operand
6743 with correct number of arguments.
6744 (exception_receiver): Call load_pic_register with correct number
6745 of arguments.
6746
6747 Sun Sep 19 14:18:39 1999 Richard Henderson <rth@cygnus.com>
6748
6749 * c-pragma.c (mark_align_stack): Dereference the void* properly.
6750
6751 Sun Sep 19 09:03:40 1999 Mark Mitchell <mark@codesourcery.com>
6752
6753 * rtl.h (insns_safe_to_move_p): New function.
6754 * loop.c (find_and_verify_loops): Use it.
6755 * rtlanal.c (insns_safe_to_move_p): Define it.
6756
6757 Sun Sep 19 02:54:33 1999 Richard Henderson <rth@cygnus.com>
6758
6759 * c-pragma.c: Include ggc.h.
6760 * Makefile.in (c-pragma.o): Update.
6761
6762 Sat Sep 18 16:01:18 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6763
6764 * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
6765 (LIB_SPEC): Likewise.
6766 (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
6767 Reindent -YP/-p/-pg.
6768 Copied from config/sparc/sol2.h.
6769
6770 Sat Sep 18 11:52:43 1999 Richard Henderson <rth@cygnus.com>
6771
6772 * c-pragma.c (mark_align_stack): New.
6773 (init_pragma): New.
6774 * c-pragma.h (init_pragma): Declare it.
6775 * c-lex.c (init_parse): Call it.
6776
6777 Sat Sep 18 15:20:38 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6778
6779 * configure.in: Pick up thread library on Solaris/x86 just
6780 like on Solaris/sparc.
6781 * configure: Rebuilt.
6782
6783 Sat Sep 18 11:15:58 1999 Alex Samuel <samuel@codesourcery.com>
6784
6785 * rtl.h (global_rtx_index): New enum.
6786 (global_rtl): Change to array of rtx.
6787 (pc_rtx, cc0_rtx): Redefine accordingly.
6788 (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
6789 (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
6790 (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
6791 (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
6792 (const_int_rtx): Change to array of rtx.
6793 (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
6794 accordingly.
6795 * emit-rtl.c (global_rtl): Change to array of rtx.
6796 (const_int_rtx): Change to aray of rtx.
6797 (gen_rtx_CONST_INT): Redefine accordingly.
6798 (init_emit_once): Allocate and initialize global_rtl. Likewise
6799 for const_int_rtx. Add both as GC roots.
6800 * genattrtab.c (global_rtl): Update declaration.
6801
6802 1999-09-17 Ulrich Drepper <drepper@cygnus.com>
6803
6804 * Makefile (USER_H): Add iso646.h back.
6805
6806 Sat Sep 18 01:07:21 1999 Jeffrey A Law (law@cygnus.com)
6807
6808 * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
6809 zapping the LOG_LINKS of sched_before_next_call.
6810
6811 * pa.h (INSN_SETS_ARE_DELAYED): Delete.
6812 * pa.c (insn_refs_are_delayed): Renamed from
6813 insn_sets_and_refs_are_delayed.
6814
6815 Fri Sep 17 15:19:01 1999 Mark Mitchell <mark@codesourcery.com>
6816
6817 * functiion.h (struct function): Add x_whole_function_mode_p.
6818 (retrofit_block): Declare.
6819 * function.c (retrofit_block): New function.
6820 (identify_blocks): Add assertions. Allow an incomplete set of
6821 block notes if we're still generating code for the function.
6822 * integrate.c: Include loop.h.
6823 (expand_inline_function): Call find_loop_tree_blocks to map block
6824 notes to blocks when in whole-function mode. Use retrofit_block
6825 to insert new BLOCKs for the inlined function, rather than
6826 insert_block.
6827 * stmt.c (expand_fixup): Likewise. Don't use pushlevel/polevel.
6828 * Makefile.in (integrate.o): Depend on loop.h.
6829
6830 Fri Sep 17 15:11:20 1999 Mark Mitchell <mark@codesourcery.com>
6831
6832 * tree.h (warn_about_unused_variables): Declare.
6833 * stmt.c (warn_about_unused_variables): New function, split out
6834 from ...
6835 (expand_end_bindings): Here.
6836
6837 Fri Sep 17 15:07:37 1999 Mark Mitchell <mark@codesourcery.com>
6838
6839 * stmt.c (preserve_subexpressions_p): Don't crash when
6840 current_function->stmt is unset.
6841
6842 Fri Sep 17 15:03:16 1999 Mark Mitchell <mark@codesourcery.com>
6843
6844 * stmt.c (expand_start_bindings): Allow callers to pass a flag
6845 indicating that no NOTE_INSN_BLOCK_BEG note is required.
6846 (expand_start_target_temps): Use it.
6847 * except.c (expand_eh_region_start_for_decl): Likewise.
6848 * expr.c (expand_expr): Likewise.
6849
6850 Fri Sep 17 15:05:27 1999 Gavin Romig-Koch <gavin@cygnus.com>
6851
6852 * fold-const.c (operand_equal_p): Pay attention to side effects.
6853
6854 Fri Sep 17 11:14:17 1999 Jason Merrill <jason@yorick.cygnus.com>
6855
6856 * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
6857 * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
6858
6859 * tlink.c (scan_linker_output): Look for keywords before accepting
6860 a mangled name in quotes.
6861
6862 Thu Sep 16 16:47:08 1999 Richard Henderson <rth@cygnus.com>
6863
6864 * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
6865 * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
6866
6867 Thu Sep 16 16:35:41 1999 Richard Henderson <rth@cygnus.com>
6868
6869 * alpha.md: Revert Thu Nov 26 change that came in through the
6870 last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
6871 Avoid earlyclobber when possible.
6872
6873 Thu Sep 16 18:44:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6874
6875 * libgcc2.c (__do_global_ctors): Call atexit with one arg.
6876
6877 * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
6878 Define HAVE_ON_EXIT.
6879
6880 Thu Sep 16 18:06:35 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6881
6882 * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros. Use
6883 CTYPE_CONV in all ctype macros.
6884
6885 * cccp.c (initialize_char_syntax): Use uppercase ctype macro
6886 from system.h.
6887
6888 * cexp.y (initialize_random_junk): Likewise.
6889
6890 * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
6891
6892 * i370.c (handle_pragma): Likewise.
6893
6894 * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
6895
6896 * v850.c (override_options): Likewise.
6897
6898 * doprint.c (_doprnt): Likewise.
6899
6900 * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
6901 Likewise.
6902
6903 * fixinc/server.c (load_data): Likewise.
6904
6905 * fold-const.c (real_hex_to_f): Likewise.
6906
6907 * genattr.c (write_upcase, gen_attr): Likewise.
6908
6909 * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
6910 write_upcase): Likewise.
6911
6912 * genemit.c (print_code): Likewise.
6913
6914 * genopinit.c (gen_insn): Likewise.
6915
6916 * genpeep.c (print_code): Likewise.
6917
6918 * genrecog.c (print_code): Likewise.
6919
6920 * optabs.c (init_libfuncs): Likewise.
6921
6922 Thu Sep 16 14:03:32 1999 Mark Mitchell <mark@codesourcery.com>
6923
6924 * haifa-sched.c (sched_analyze): Keep the list of notes organized
6925 in pairs.
6926 (reemit_notes): Likewise.
6927
6928 Thu Sep 16 11:50:52 1999 Alex Samuel <samuel@codesourcery.com>
6929
6930 * ggc.h (ggc_root): Move to ggc-common.c.
6931 (roots): Remove.
6932 (ggc_mark_rtx, ggc_mark_tree): Change to macro.
6933 (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
6934 (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
6935 (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
6936 * ggc-common.c (ggc_root): Move from ggc.h.
6937 (roots): Declare, static.
6938 (ggc_mark_rtx, ggc_mark_tree): Renamed to...
6939 (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
6940 null or check/set mark bit.
6941 (ggc_mark_roots): New.
6942 * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
6943
6944 Thu Sep 16 11:37:32 1999 Richard Henderson <rth@cygnus.com>
6945
6946 * m32r.c: Include toplev.h.
6947 (*): Add ATTRIBUTE_UNUSED as needed to arguments.
6948 (gen_compare): Rename swap_p to must_swap to match uses.
6949 Add default abort case.
6950 (m32r_output_function_epilogue): Remove unused variables.
6951 (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
6952 * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
6953 define to empty parameter list. Update all uses.
6954 (predicate decls): Use enum machine_mode not int.
6955 * m32r.md (movsi): Call abort, not fatal_insn.
6956 (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
6957
6958 1999-09-14 Andrew Haley <aph@cygnus.com>
6959
6960 * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
6961 use $0 instead of 0.
6962
6963 Thu Sep 16 10:53:36 1999 Bernd Schmidt <bernds@cygnus.co.uk>
6964
6965 * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
6966 computation out of loop over hard regs.
6967
6968 Wed Sep 15 21:37:06 1999 Mark Mitchell <mark@codesourcery.com>
6969
6970 * function.c (identify_blocks): Don't shadow a variable in an
6971 outer scope.
6972 * integrate.c (integrate_decl_tree): Don't use pushlevel,
6973 pushdecl, or poplevel to build up the new BLOCK tree.
6974 (expand_inline_function): Likewise.
6975 (integrate_parm_decls): Likewise.
6976
6977 Wed Sep 15 21:20:38 1999 Mark Mitchell <mark@codesourcery.com>
6978
6979 * c-typeck.c (qualify_type): Merge qualifiers from both types.
6980
6981 1999-09-15 Brad Lucier <lucier@math.purdue.edu>
6982
6983 * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
6984 * invoke.texi: Document this change.
6985
6986 Wed Sep 15 17:56:00 1999 Richard Henderson <rth@cygnus.com>
6987
6988 * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
6989 Free the struct.
6990 (mark_emit_status): Renamed from mark_emit_state.
6991 * except.c (mark_eh_status): Renamed from mark_eh_state.
6992 Check not null before marking.
6993 (free_eh_status): New.
6994 * expr.c (mark_expr_status, free_expr_status): New.
6995 * function.c (free_machine_status): New.
6996 (free_after_parsing): New.
6997 (free_after_compilation): Move bits to free_after_parsing; call
6998 free_eh_status, free_expr_status; zero the marked members of the
6999 function state.
7000 (prepare_function_start): No can_garbage_collect.
7001 Call init_eh_for_function.
7002 (expand_dummy_function_end): Free up current_function state.
7003 (mark_function_status): Renamed from mark_function_state.
7004 (mark_function_chain): No can_garbage_collect. Call mark_expr_status.
7005 * function.h (struct function): No can_garbage_collect.
7006 (free_machine_status, free_after_parsing): Declare.
7007 (free_eh_status, free_expr_status): Declare.
7008 * ggc.h (mark_expr_status): Declare.
7009 * stmt.c (free_stmt_status): Free the struct.
7010 (mark_stmt_status): Renamed from mark_stmt_state.
7011 (init_stmt): Don't call init_eh.
7012 (init_stmt_for_function): Don't call init_eh_for_function.
7013 * toplev.c (compile_file): Call init_eh.
7014 (rest_of_compilation): Free basic block info before ggc_collect.
7015 Call free_after_parsing; conditionally call free_after_compilation.
7016 * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
7017 Check not null before marking.
7018 (free_varasm_status): Don't check DECL_DEFER_OUTPUT. Free the struct.
7019
7020 Wed Sep 15 17:53:16 1999 Richard Henderson <rth@cygnus.com>
7021
7022 * c-lex.c (yylex): Initialize warn.
7023
7024 Wed Sep 15 18:35:38 1999 Jeffrey A Law (law@cygnus.com)
7025
7026 * pa.c (emit_move_sequence): Properly set the mode of the scratch
7027 register when performing secondary reloads for the SAR register.
7028
7029 Wed Sep 15 15:51:52 1999 Mark Mitchell <mark@codesourcery.com>
7030
7031 * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
7032 (NOTE_BLOCK): New macro.
7033 (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
7034 * function.h (identify_blocks): Change prototype.
7035 * function.c (identify_blocks): Simplify.
7036 (reorder_blocks): Likewise.
7037 * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
7038 NOTE_INSN_BLOCK_{BEG,END}.
7039 * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
7040 the list of saved notes if the note isn't a
7041 NOTE_INSN_BLOCK_{BEG,END}.
7042 (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
7043 NOTE_BLOCK_NUMBER.
7044 (reemit_notes): Adjust recreation of notes to reflect new saved
7045 note structure.
7046 * print-rtl.c (print_rtx): Print the address of the BLOCK when
7047 printing a block note.
7048 * stmt.c (block_vector): Remove.
7049 (find_loop_tree_blocks): Simplify.
7050 (unroll_block_trees): Likewise.
7051 * tree.h (reorder_block): Change prototype.
7052
7053 Wed Sep 15 14:39:35 1999 Jason Merrill <jason@yorick.cygnus.com>
7054
7055 * gbl-ctors.h: Lose HAVE_ATEXIT. Don't define ON_EXIT.
7056 * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
7057 (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
7058 (__do_global_dtors): Likewise. Don't mess with _exit_dummy_decl.
7059 (atexit, exit): Simplify.
7060 * tm.texi: Document NEED_ATEXIT and ON_EXIT. Remove HAVE_ATEXIT.
7061 * config/lots: Remove defns of HAVE_ATEXIT.
7062
7063 Wed Sep 15 10:25:12 1999 Mark Mitchell <mark@codesourcery.com>
7064
7065 * calls.c (precompute_arguments): Fix typo in comment.
7066 * expr.c (preexpand_calls): Don't preexpand the cleanup in a
7067 TARGET_EXPR.
7068
7069 Wed Sep 15 09:59:59 1999 Mark Mitchell <mark@codesourcery.com>
7070
7071 * dsp16xx.c (override_options): Fix typos in GC root registration.
7072
7073 Wed Sep 15 15:23:28 1999 Philip Blundell <pb@nexus.co.uk>
7074
7075 * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
7076 from config/svr4.h.
7077 (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
7078 (FUNCTION_PROFILER): Redefine appropriately for Linux.
7079 (CC1_SPEC): Likewise.
7080
7081 Wed Sep 15 10:09:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7082
7083 * genattr.c (main): Add extern prototype. Call return, not exit.
7084 * genattrtab.c (main): Likewise.
7085 * gencheck.c (main): Likewise.
7086 * gencodes.c (main): Likewise.
7087 * genconfig.c (main): Likewise.
7088 * genemit.c (main): Likewise.
7089 * genextract.c (main): Likewise.
7090 * genflags.c (main): Likewise.
7091 * gengenrtl.c (main): Likewise.
7092 * genopinit.c (main): Likewise.
7093 * genoutput.c (main): Likewise.
7094 * genpeep.c (main): Likewise.
7095 * genrecog.c (main): Likewise.
7096
7097 * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
7098 * genattrtab.c (get_insn_name): Likewise.
7099 * gencodes.c (get_insn_name): Likewise.
7100 * genconfig.c (get_insn_name): Likewise.
7101 * genemit.c (get_insn_name): Likewise.
7102 * genextract.c (get_insn_name): Likewise.
7103 * genflags.c (get_insn_name): Likewise.
7104 * genopinit.c (get_insn_name): Likewise.
7105 * genpeep.c (get_insn_name): Likewise.
7106
7107 * gencheck.c (usage): Add static prototype.
7108 * genextract.c (print_path): Constify a char*.
7109 * genopinit.c (optabs): Likewise.
7110 * genoutput.c (operand_data, data, output_predicate_decls,
7111 compare_operands): Likewise.
7112 * genrecog.c (write_tree): Add default case in switch.
7113
7114 Wed Sep 15 09:59:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7115
7116 * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
7117
7118 * print-rtl.c (get_insn_name): Remove prototype.
7119
7120 * toplev.h (progname): Declare const.
7121
7122 * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
7123 init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
7124 dump_sched_info, dump_local_alloc, regset_release_memory,
7125 print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
7126 error_with_file_and_line, error_with_decl, error_for_asm, error,
7127 fatal, warning_with_file_and_line, warning_with_decl, warning,
7128 pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
7129 Remove redundant prototypes.
7130
7131 (notice, check_lang_option, report_file_and_line, vnotice,
7132 mark_file_stack): Add static prototype.
7133 (set_fatal_function): Add prototype.
7134 (vnotice, report_file_and_line, set_fatal_function,
7135 check_lang_option): Constify a char*.
7136 (main): Prototype. Call return, not exit.
7137
7138 Wed Sep 15 09:50:18 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7139
7140 * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
7141
7142 * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
7143
7144 * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
7145
7146 * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
7147
7148 Wed Sep 15 11:04:43 1999 Bernd Schmidt <bernds@cygnus.co.uk>
7149
7150 * function.c (assign_parms): Delete arg SECOND_TIME. Don't test it,
7151 behave as if it's zero in all cases.
7152 (expand_function_start): Adjust call to assign_parms.
7153 * tree.h (assign_parms): Adjust prototype.
7154 * objc/objc-act.c (hack_method_prototype): Adjust call to
7155 assign_parms.
7156
7157 Tue Sep 14 21:47:06 1999 Jeffrey A Law (law@cygnus.com)
7158
7159 * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
7160 arg_pointer_rtx fixed if the argument pointer register is
7161 not fixed.
7162 (NONZERO_BASE_PLUS_P): Likewise.
7163
7164 Tue Sep 14 20:26:02 1999 Richard Henderson <rth@cygnus.com>
7165
7166 * rtl.def (match_insn, match_insn2): Remove match_insn; rename
7167 match_insn2 to match_insn.
7168 * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
7169
7170 Tue Sep 14 20:10:29 1999 Richard Henderson <rth@cygnus.com>
7171
7172 * Makefile.in (USER_H): Remove va-foo.h.
7173
7174 * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
7175 va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
7176 va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
7177 va-spur.h,va-v850.h}: Remove.
7178
7179 Tue Sep 14 19:43:16 1999 Richard Henderson <rth@cygnus.com>
7180
7181 * sparc/sparc.md (eligible_for_return_delay): New attribute.
7182 (in_return_delay): Use it instead of match_insn.
7183
7184 Tue Sep 14 23:05:37 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
7185
7186 * config/alpha/va_list.h (va-alpha.h): Do not include.
7187 (__gnuc_va_list): Typedef as in varargs.h.
7188
7189 Tue Sep 14 18:14:03 1999 Richard Henderson <rth@cygnus.com>
7190
7191 * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
7192 DECL_LIVE_RANGE_RTL.
7193
7194 Tue Sep 14 16:47:08 1999 Mark Mitchell <mark@codesourcery.com>
7195
7196 * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
7197 not NOTE_BLOCK_NUMBER.
7198 (expand_eh_region_end): Likewise.
7199 (find_exception_handler_labels): Likewise.
7200 (scan_region): Likewise.
7201 (exception_optimize): Likewise.
7202 (update_rethrow_references): Likewise.
7203 (set_insn_eh_region): Likewise.
7204 * final.c (final_scan_insn): Likewise.
7205 * flow.c (make_edges): Likewise.
7206 * integrate.c (expand_inline_function): Likewise.
7207 * print-rtl.c (print_rtx): Likewise.
7208
7209 Tue Sep 14 16:30:16 1999 Richard Henderson <rth@cygnus.com>
7210
7211 * ginclude/stdarg.h, ginclude/varargs.h: Implement in
7212 terms of builtin functions and types.
7213
7214 * mips.c (mips_build_va_list): New.
7215 (mips_va_start, mips_va_arg): New.
7216 * mips.h (BUILD_VA_LIST_TYPE): New.
7217 (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
7218
7219 * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
7220 (sh_build_va_list, sh_va_start, sh_va_arg): New.
7221 * sh.h (BUILD_VA_LIST_TYPE): New.
7222 (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
7223
7224 Tue Sep 14 16:20:24 1999 Richard Henderson <rth@cygnus.com>
7225
7226 * recog.h (struct recog_data): Make dup_num, operand_address_p,
7227 n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
7228 (struct insn_data): Likewise with n_operands, n_dups,
7229 n_alternatives, output_format.
7230 * regclass.c (scan_one_insn): Cast n_operands to int before
7231 arithmetic inside comparison.
7232
7233 Tue Sep 14 15:13:36 1999 Richard Henderson <rth@cygnus.com>
7234
7235 * toplev.c (compile_function): Unconditionally emit nop.
7236
7237 Tue Sep 14 14:41:47 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7238
7239 * haifa-sched.c (actual_hazard): Move declaration of variable
7240 `this_cost' into the scope where it is used.
7241
7242 Tue Sep 14 14:14:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7243
7244 * c-pragma.c (handle_pragma_token): Wrap variables `name' and
7245 `value' in HANDLE_PRAGMA_WEAK. Wrap variable `align' in
7246 HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
7247
7248 * genrecog.c (make_insn_sequence): Call memset, not bzero.
7249
7250 * jump.c (find_insert_position): Don't declare or define unless
7251 !HAVE_conditional_arithmetic.
7252 (returnjump_p_1, delete_prior_computation): Add static prototypes.
7253
7254 * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
7255
7256 * recog.c (offsettable_address_p): Prototype function pointer.
7257 (preprocess_constraints): Call memset, not bzero.
7258
7259 * tree.c (tree_node_kind_names): Constify a char*. Make static.
7260 (gcc_obstack_init): Don't declare.
7261 (fix_sizetype): Add static prototype.
7262 (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
7263 (tree_cons): Call memset, not bzero.
7264
7265 * varasm.c (remove_from_pending_weak_list): Wrap declaration and
7266 definition in macro ASM_WEAKEN_LABEL.
7267 (mark_const_hash_entry): Add static prototype.
7268
7269 Tue Sep 14 12:22:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7270
7271 * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
7272
7273 * unroll.c (find_common_reg_term, subtract_reg_term,
7274 loop_find_equiv_value): Add static prototypes.
7275 (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
7276 (copy_loop_body): Remove unreachable break statement.
7277
7278 * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
7279
7280 * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
7281
7282 Tue Sep 14 15:28:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
7283
7284 Undo some changes from the gcc2 merge:
7285 * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
7286 * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
7287 pointers.
7288
7289 Undo this change:
7290 Sat Oct 3 07:20:28 1998 Stephen L Moshier <moshier@world.std.com>
7291 * emit-rtl.c (gen_lowpart_common): Disable optimization of
7292 initialized float-int union if the value is a NaN.
7293
7294 Tue Sep 14 04:03:44 1999 Mumit Khan <khan@xraylith.wisc.edu>
7295
7296 * gthr-win32.h: New file.
7297
7298 * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
7299 shared as a valid attribute.
7300 * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
7301 * extend.texi: Document `shared' variable attribute.
7302
7303 Tue Sep 14 04:01:46 1999 Loren Rittle <ljrittle@acm.org>
7304
7305 * configure.in: Handle --enable-threads on FreeBSD.
7306 * configure: Rebuit.
7307
7308 Tue Sep 14 03:58:44 1999 Andreas Jaeger <aj@arthur.rhein-neckar.de>
7309
7310 * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
7311 thread support.
7312 * configure: Rebuilt.
7313
7314 Tue Sep 14 03:47:23 1999 Joel Sherrill <joel@OARcorp.com>
7315 Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
7316 Rosimildo DaSilva <rdasilva@connecttel.com>
7317
7318 * configure.in (m68k-*-rtemscoff*): Added.
7319 * configure.in (mips64orion-*-rtems*): Converted to ELF.
7320 * configure.in (sparc-*-rtemsaout*): Added as alias for old
7321 sparc-rtems configuration.
7322 * configure.in (sparc-*-rtemself*): Added.
7323 * configure.in (sparc-*-rtems*): Now ELF not a.out.
7324 * config/i386/rtems.h: Added comment.
7325 * config/sparc/rtemself.h: New file.
7326
7327 * configure.in (m68k-rtemself): Added.
7328 * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
7329 and DWARF_DEBUGGING_INFO.
7330 * config/m68k/crti.s: New file.
7331 * config/m68k/crtn.s: New file.
7332 * config/m68k/t-crtstuff: New file.
7333 * config/m68k/rtemself.h: New file.
7334
7335 * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
7336 global ctor/dtor and C++ exception handling.
7337 * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
7338 for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
7339 ENDFILE_SPEC.
7340 * config/i386/t-rtems-i386: New File.
7341
7342 Tue Sep 14 09:47:41 1999 Andreas Schwab <schwab@suse.de>
7343
7344 * stmt.c (expand_end_case): Return right away if the case stack is
7345 empty.
7346
7347 Tue Sep 14 01:47:19 1999 Jeffrey A Law (law@cygnus.com)
7348
7349 * Makefile.in (version.c): Remove rule incorrectly brought in from
7350 the gcc2 merge.
7351
7352 Tue Sep 14 01:42:27 1999 Marc Espie <espie@cvs.openbsd.org>
7353
7354 * Makefile.in: Prepend $(SHELL) to move-if-change calls.
7355 * msdos/top.sed: Take into account a prepended $(SHELL) to
7356 move-if-change.
7357 * winnt/config-nt.sed: Likewise. Kill bogus substitution.
7358
7359 * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
7360
7361 Tue Sep 14 01:38:52 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
7362
7363 * regmove.c (fixup_match_1): Don't change an unchanging register.
7364 (stable_but_for_p): Renamed to:
7365 (stable_and_no_regs_but_for_p). Reject unchanging registers too.
7366 Changed all callers.
7367
7368 Tue Sep 14 01:33:15 1999 Andreas Schwab <schwab@suse.de>
7369
7370 * loop.c (strength_reduce): Don't call reg_used_between_p if the
7371 insn from BL2 is after the insn from BL.
7372
7373 Mon Sep 13 21:06:01 1999 Richard Henderson <rth@cygnus.com>
7374
7375 * recog.h (INSN_OUTPUT_FORMAT_*): New.
7376 (struct insn_data): Merge `template' and `outfun' into `output'.
7377 Add `output_format'.
7378 * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
7379 (struct data): Remove `outfun'; add `output_format'.
7380 (name_for_index): Remove declaration.
7381 (output_insn_data): Handle output formats.
7382 (process_template): Emit the bare array for @.
7383 (gen_expand, gen_split): Set output_format to NONE.
7384 * output.h (get_insn_template): Declare.
7385 * final.c (get_insn_template): New.
7386 (final_scan_insn): Use it.
7387 * toplev.c (compile_file): Likewise.
7388
7389 * c4x/c4x.c (c4x_process_after_reload): Likewise.
7390 * i860/i860.c (output_delayed_branch): Likewise.
7391 (output_delay_insn): Likewise.
7392
7393 1999-09-13 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
7394
7395 * rtl.c (obstack_alloc_rtx): Removed.
7396
7397 1999-09-13 17:03 -0700 Zack Weinberg <zack@bitmover.com>
7398
7399 * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
7400
7401 Mon Sep 13 15:21:46 1999 Richard Henderson <rth@cygnus.com>
7402
7403 * i386.c (call_insn_operand): Reject const_int.
7404 (expander_call_insn_operand): Use call_insn_operand.
7405
7406 Mon Sep 13 17:44:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7407
7408 * gcc.c (getrusage): Wrap prototype arguments in PROTO().
7409
7410 1999-09-13 12:18 -0700 Zack Weinberg <zack@bitmover.com>
7411
7412 * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
7413 Use DImode operation.
7414
7415 1999-09-13 12:13 -0700 Zack Weinberg <zack@bitmover.com>
7416
7417 * gcc.c: Include sys/resource.h.
7418 (report_times): New flag.
7419 (execute): If report_times is set, calculate and report the
7420 CPU time consumed by each subprocess.
7421
7422 (rus, prus): New globals.
7423 (option_map): Add --time.
7424 (display_help): Document -time.
7425 (process_command): Set report_times if -time is given.
7426 Turn off -pipe if -time is given.
7427
7428 * invoke.texi: Document new option -time.
7429
7430 * configure.in: Check for getrusage. Check if we have to
7431 prototype getrusage.
7432 * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
7433 * configure: Regenerate.
7434 * config.in: Regenerate.
7435
7436 Mon Sep 13 12:57:06 1999 Dave Brolley <brolley@cygnus.com>
7437
7438 * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
7439 fields.
7440
7441 Mon Sep 13 10:01:33 1999 Nick Clifton <nickc@cygnus.com>
7442
7443 * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
7444 appropriate) if FINE_GRAINED_LIBRARIES is not defined.
7445 (nan): Return _thenan_sf or _thenan_df as appropriate.
7446 (L_thenan_sf): Define _thenan_sf.
7447 (L_thenan_df): Define _thenan_df.
7448
7449 * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
7450 (DPBIT_FUNCS): Add _thenan_df.
7451
7452 Mon Sep 13 09:38:53 1999 Andreas Schwab <schwab@suse.de>
7453
7454 * tree.c (fix_sizetype): Exchange the types for TYPE_SIZE and
7455 TYPE_SIZE_UNIT.
7456
7457 Sun Sep 12 23:28:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7458
7459 * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
7460
7461 * gcc.h: New file.
7462 (lang_specific_driver): Don't take a function pointer parameter.
7463 All callers changed.
7464
7465 * gcc.c: Include gcc.h.
7466 (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
7467 lang_specific_extra_outfiles, fatal): Don't declare.
7468 (multilib_defaults_raw): Constify.
7469 (read_specs): Call memset, rather than bzero.
7470 (main): Call return, not exit.
7471 (lookup_compiler): Call memcpy, not bcopy.
7472 (fatal): Make extern.
7473
7474 * cppspec.c: Include gcc.h.
7475 (lang_specific_driver): Initialize variable `quote'. Constify a
7476 char*. All calls to the function pointer parameter now
7477 explicitly call `fatal'.
7478
7479 * gccspec.c (lang_specific_driver): Include gcc.h.
7480
7481 Sun Sep 12 19:52:10 1999 Richard Earnshaw <rearnsha@arm.com>
7482
7483 * arm.c (note_invalid_constants): Use recog_data.operand_type
7484 for recog_op_type.
7485
7486 Sun Sep 12 15:53:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
7487
7488 * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
7489 Declare.
7490
7491 * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
7492 reload_reg_class, reload_inmode, reload_outmode, reload_optional,
7493 reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
7494 reload_secondary_in_reload, reload_secondary_out_reload,
7495 reload_secondary_in_icode, reload_secondary_out_icode,
7496 reload_reg_rtx, reload_when_needed): Delete declarations.
7497 (struct reload): New structure.
7498 (rld): Declare new array.
7499 * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
7500 reload_reg_class, reload_inmode, reload_outmode, reload_optional,
7501 reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
7502 reload_secondary_in_reload, reload_secondary_out_reload,
7503 reload_secondary_in_icode, reload_secondary_out_icode,
7504 reload_reg_rtx, reload_when_needed): Delete definitions.
7505 (rld): New array.
7506 (whole file): Replace uses of the deleted arrays with uses of rld.
7507 * reload1.c (whole file): Replace uses of the deleted arrays with
7508 uses of rld.
7509 (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
7510 explicit loops, not with bcopy.
7511
7512 Sun Sep 12 05:00:24 1999 Richard Henderson <rth@cygnus.com>
7513
7514 * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
7515 insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
7516 insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
7517 insn_name): Delete and consolidate into new structures.
7518 (insn_operand_predicate_fn): New.
7519 (insn_output_fn): New.
7520 (insn_gen_fn): New.
7521 (struct insn_operand_data): New.
7522 (struct insn_data): New.
7523 (insn_data): New.
7524 (OUT_FCN): Update for insn_data change.
7525 * builtins.c (expand_builtin_strlen): Likewise.
7526 (expand_builtin_memcmp): Likewise.
7527 * combine.c (make_extraction, simplify_comparison): Likewise.
7528 * cse.c (canon_reg, cse_insn): Likewise.
7529 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
7530 * expmed.c (store_bit_field, extract_bit_field): Likewise.
7531 (emit_store_flag): Likewise.
7532 * expr.c (convert_move, emit_block_move): Likewise.
7533 (clear_storage, emit_push_insn, expand_increment): Likewise.
7534 (do_store_flag): Likewise.
7535 * expr.h (GEN_FCN): Likewise.
7536 (insn_gen_function): Die.
7537 * final.c (final_scan_insn): Update for insn_data change.
7538 (output_asm_name): Likewise.
7539 * function.c (fixup_var_refs_1): Likewise.
7540 * loop.c (check_dbra_loop): Likewise.
7541 * optabs.c (expand_binop, expand_twoval_binop): Likewise.
7542 (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
7543 (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
7544 (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
7545 * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
7546 * regmove.c (gen_add3_insn): Likewise.
7547 * reload.c (push_secondary_reload, combine_reloads): Likewise.
7548 (find_reloads, find_reloads_address_1): Likewise.
7549 (debug_reload_to_stream): Likewise.
7550 * reload1.c (emit_reload_insns, gen_reload): Likewise.
7551 * stmt.c (expand_end_case): Likewise.
7552 * toplev.c (compile_file): Likewise.
7553
7554 * c4x/c4x.c (c4x_process_after_reload): Likewise.
7555 * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
7556
7557 * print-rtl.c (insn_name_ptr): Remove declaration.
7558 (get_insn_name): Declare.
7559 (print_rtx): Use it.
7560 * genoutput.c (insn_name_ptr): Remove.
7561 (next_operand_number): New.
7562 (struct operand_data): New.
7563 (null_operand, odata, odata_end): New.
7564 (struct data): Use struct operand_data.
7565 (idata, idata_end): Renamed from insn_data and end_of_insn_data.
7566 (get_insn_name): Renamed from name_for_index.
7567 (output_prologue): Define NO_MD_PROTOTYPES.
7568 (output_predicate_decls): Break out from output_epilogue.
7569 Iterate over the operands list.
7570 (output_operand_data): Break out from output_epilogue. Emit
7571 just the operands list.
7572 (output_insn_data): Break out from output_epilogue. Emit just
7573 the insn data.
7574 (output_epilogue): Remove.
7575 (output_get_insn_name): New.
7576 (constraints, op_n_alternatives, predicates, address_p): Die.
7577 (modes, strict_low, seen): Die.
7578 (scan_operands): Take new param `d' instead of writing to
7579 seven global variables.
7580 (compare_operands): New.
7581 (place_operands): New.
7582 (validate_insn_alternatives): Update for struct data change.
7583 (gen_insn): Don't zero or copy 7 global arrays. Update for
7584 scan_operands; call place_operands.
7585 (gen_peephole, gen_expand, gen_split): Likewise.
7586 (main): Update for new output routines.
7587
7588 * genattr.c (insn_name_ptr): Remove.
7589 (get_insn_name): New function.
7590 * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
7591 * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
7592 * genrecog.c: Likewise.
7593
7594 * alpha.md (adddi3): Make `pattern' array static.
7595
7596 Sun Sep 12 22:05:21 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7597
7598 * config/c4x/c4x.h (c4x_rpts_cycles_string,
7599 c4x_cpu_version_string): Constify char *.
7600 * config/c4x/c4x.c (c4x_rpts_cycles_string,
7601 c4x_cpu_version_string): Likewise.
7602
7603 Sat Sep 11 23:28:33 1999 Richard Henderson <rth@cygnus.com>
7604
7605 * tree.c (save_tree_status): Revert 10 Sep change.
7606 (restore_tree_status): Likewise. Call obstack_free with NULL
7607 before freeing the obstack proper.
7608
7609 Sat Sep 11 23:23:46 1999 Richard Henderson <rth@cygnus.com>
7610
7611 * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
7612
7613 * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
7614 surrounding context.
7615
7616 Sat Sep 11 19:52:43 1999 Mark Mitchell <mark@codesourcery.com>
7617
7618 * tree.c (type_hash_canon): Put all types in the hash-table, when
7619 GC'ing.
7620
7621 Sat Sep 11 18:37:04 1999 Richard Henderson <rth@cygnus.com>
7622
7623 * recog.h (struct recog_data, recog_data): New.
7624 (recog_foo variables): Kill.
7625 * recog.c (recog_operand, recog_operand_loc): Kill.
7626 (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
7627 (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
7628 (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
7629 (recog_data): Define.
7630 (extract_insn): Update all recog_foo references to use recog_data.
7631 (preprocess_constraints, constrain_operands): Likewise.
7632 * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
7633 * genattrtab.c (main): Likewise.
7634 * genextract.c (main): Likewise.
7635 * genoutput.c: Likewise.
7636 * genrecog.c (write_subroutine, main): Likewise.
7637 * local-alloc.c (block_alloc): Likewise.
7638 * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
7639 * regclass.c (scan_one_insn, record_reg_classes): Likewise.
7640 * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
7641 * reload.c (find_reloads, find_reloads_toplev): Likewise.
7642 * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
7643 (reload_cse_simplify_operands): Likewise.
7644
7645 * arc/arc.c (arc_final_prescan_insn): Likewise.
7646 * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
7647 * h8300/h8300.c (notice_update_cc): Likewise.
7648 * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
7649 * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
7650 * mn10200/mn10200.c (notice_update_cc): Likewise.
7651 * mn10300/mn10300.c (notice_update_cc): Likewise.
7652 * romp/romp.c (update_cc): Likewise.
7653 * sparc/sparc.c (check_pic): Likewise.
7654 * v850/v850.c (notice_update_cc): Likewise.
7655
7656 * genemit.c (main): Don't declare recog_operand.
7657
7658 Sat Sep 11 12:41:55 1999 Alex Samuel <samuel@codesourcery.com>
7659
7660 * ggc.h (rtvec_def): Forward declare.
7661 (tree_node): Likewise.
7662 (ggc_root): Define.
7663 (roots): Declare.
7664 (ggc_set_mark_rtx): Add prototype.
7665 (ggc_set_mark_rtvec): Likewise.
7666 (ggc_set_mark_tree): Likewise.
7667 * ggc-simple.c (ggc_root): Don't define.
7668 (roots): Don't declare.
7669 (ggc_mark_rtx): Remove.
7670 (ggc_mark_rtvec): Likewise.
7671 (ggc_mark_tree): Likewise.
7672 (ggc_mark_varray): Likewise.
7673 (ggc_mark_tree_hash_table_entry): Likewise.
7674 (ggc_mark_tree_hash_table): Likewise.
7675 (ggc_set_mart_rtx): New function.
7676 (ggc_set_mark_rtvec): Likewise.
7677 (ggc_set_mark_tree): Likewise.
7678 (ggc_add_root): Remove.
7679 (ggc_add_rtx_root): Likewise.
7680 (ggc_remove_tree_root): Likewise.
7681 (ggc_add_string_root): Likewise.
7682 (ggc_add_tree_varray_root): Likewise.
7683 (ggc_add_tree_hash_table_root): Likewise.
7684 (ggc_del_root): Likewise.
7685 (ggc_mark_rtx_ptr): Likewise.
7686 (ggc_mark_tree_ptr): Likewise.
7687 (ggc_mark_string_ptr): Likewise.
7688 (ggc_mark_tree_varray_ptr): Likewise.
7689 (ggc_mark_tree_hash_table_ptr): Likewise.
7690 * ggc-common.c: New file.
7691 * Makefile.in (OBJS): Add ggc-common.o.
7692 (ggc-common.o): List dependencies.
7693
7694 1999-09-10 22:37 -0700 Zack Weinberg <zack@bitmover.com>
7695
7696 * cppalloc.c (xstrdup): Use memcpy.
7697 * cpperror.c (cpp_print_containing_files): Don't use
7698 cpp_notice.
7699 * cpplib.c (conditional_skip): Set temp->lineno.
7700 (do_endif): Make error message less obscure.
7701 (if_directive_name): New function.
7702 (cpp_get_token [case EOF]): Unwind the if stack and generate
7703 error messages for each unterminated conditional in this file.
7704 (parse_string): Do not behave differently if -traditional.
7705
7706 Fri Sep 10 14:04:07 1999 Richard Henderson <rth@cygnus.com>
7707
7708 * builtins.c (expand_builtin_va_arg): Cope with an array-type
7709 va_list decomposing to pointer-type.
7710 * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
7711 (rs6000_va_arg): Likewise.
7712
7713 Fri Sep 10 13:21:21 1999 Jim Wilson <wilson@cygnus.com>
7714
7715 * except.c (start_dynamic_handler): Compute size using
7716 STACK_SAVEAREA_MODE.
7717
7718 Fri Sep 10 16:01:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7719
7720 * protoize.c: Remove various __STDC__ and POSIX hacks. Don't
7721 include directory headers. Don't define strrchr. Don't provide
7722 my_* replacement functions. Prefer PTR over `pointer_type'.
7723 Don't prototype system functions. Don't redefine getopt.
7724
7725 (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
7726 safe_read, safe_write, save_pointers, restore_pointers,
7727 is_id_char, in_system_include_dir, directory_specified_p,
7728 file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
7729 find_corresponding_lparen, referenced_file_is_newer,
7730 save_def_or_dec, munge_compile_params, gen_aux_info_file,
7731 process_aux_info_file, identify_lineno, check_source,
7732 seek_to_line, forward_to_next_token_char, output_bytes,
7733 output_string, output_up_to, other_variable_style_function,
7734 find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
7735 do_processing, is_syscalls_file, rename_c_file, find_extern_def,
7736 find_static_definition, connect_defs_and_decs, add_local_decl,
7737 add_global_decls, needs_to_be_converted, visit_each_hash_node,
7738 add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
7739 edit_fn_declaration, edit_formals_lists, edit_fn_definition,
7740 scan_for_missed_items, edit_file, string_list_cons): Add static
7741 prototypes.
7742 (standard_exec_prefix, target_machine, target_version,
7743 default_syscalls_dir, string_list, string_list_cons, find_file,
7744 do_cleaning): Constify a char*.
7745 (safe_read, safe_write): Use PTR, not a char*.
7746 (is_id_char): Take an int, not a char.
7747 (main): Add prototype. Call return, not exit.
7748
7749 Fri Sep 10 16:48:26 1999 Andrew Haley <aph@cygnus.com>
7750
7751 * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
7752 when comparing types.
7753
7754 Fri Sep 10 08:43:32 1999 Richard Henderson <rth@cygnus.com>
7755
7756 * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
7757 (strength_reduce): Release the varrays from the no-bivs early exit.
7758
7759 * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
7760 the loop over the registers.
7761
7762 * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
7763 for a new obstack.
7764 (restore_tree_status): Check that instead when freeing the obstack.
7765
7766 Wed Sep 8 16:12:04 1999 Andrew Haley <aph@cygnus.com>
7767
7768 * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
7769 as pointers.
7770
7771 Fri Sep 10 11:58:55 1999 Bernd Schmidt <bernds@cygnus.co.uk>
7772
7773 * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall. Fix some
7774 operand size modifiers.
7775
7776 Fri Sep 10 10:32:32 1999 Bernd Schmidt <bernds@cygnus.co.uk>
7777
7778 * c-common.c (c_common_nodes_and_builtins): Don't build
7779 va_list_type_node.
7780 * c-common.h (enum c_tree_index and related accesor macros): Remove
7781 everything now declared in tree.h.
7782 * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
7783 LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
7784 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
7785 (error_mark_node, void_type_node, char_type_node, integer_type_node,
7786 unsigned_type_node, ptr_type_node, va_list_type_node,
7787 integer_zero_node, null_pointer_node, integer_one_node): Delete.
7788 (init_decl_processing): Call build_common_tree_nodes and
7789 build_common_tree_nodes_2 instead of building their nodes here.
7790 Don't add roots for these nodes.
7791 * stor-layout.c (size_zero_node, size_one_node): Delete.
7792 (set_sizetype): Make a new node for bitsizetype each time.
7793 * tree.c (global_trees): New variable.
7794 (init_obstacks): Add a gc root for it.
7795 (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
7796 LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
7797 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
7798 (build_common_tree_nodes): New function.
7799 (fix_sizetype): New function.
7800 (build_common_tree_nodes_2): New function.
7801 * tree.h (enum tree_index): New.
7802 (global_trees): Declare.
7803 Add accessor macros for all nodes now moved to global_trees.
7804 Delete their declarations.
7805
7806 Thu Sep 9 20:15:46 1999 Richard Henderson <rth@cygnus.com>
7807
7808 * c-decl.c (finish_function): When processing a nested function,
7809 push and pop GC context around rest_of_compilation.
7810
7811 Thu Sep 9 16:42:06 1999 Richard Henderson <rth@cygnus.com>
7812
7813 * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
7814 Default ix86_arch to PROCESSOR_I386.
7815 * i386.h (CC1_CPU_SPEC): Don't add -march=foo. Remove -mno-foo.
7816 (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
7817 (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
7818 (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
7819 __tune_foo__ if no -mcpu. Make -mcpu=bar define __tune_bar__.
7820 (EXTRA_SPECS): Remove deleted specs.
7821
7822 Thu Sep 9 16:03:06 1999 Richard Henderson <rth@cygnus.com>
7823
7824 * function.c (assign_stack_local_1): Allocate from
7825 function->x_frame_offset, not frame_offset.
7826
7827 Thu Sep 9 14:36:31 1999 Mark Mitchell <mark@codesourcery.com>
7828
7829 * ggc.h (lang_cleanup_tree): Remove.
7830 * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
7831 * ggc-callbacks.c (lang_cleanup_tree): Remove.
7832
7833 * c-decl.c (finish_struct): Use ggc_alloc to allocate
7834 TYPE_LANG_SPECIFIC when garbage collecting.
7835 (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
7836 (lang_cleanup_tree): Remove.
7837
7838 Thu Sep 9 14:23:02 1999 Jason Merrill <jason@yorick.cygnus.com>
7839
7840 * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
7841 * crtstuff.c: Not here.
7842 * dwarf2out.c: Or here.
7843 * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
7844 info.
7845
7846 Thu Sep 9 09:40:58 1999 Mark Mitchell <mark@codesourcery.com>
7847
7848 * function.h (free_after_compilation): Remove decl parameter.
7849 (free_varasm_status0: Likewise.
7850 (free_emit_status): Likewise.
7851 (free_stmt_status): Likewise.
7852 (free_after_compilation): Likewise.
7853 (init_lang_status): New variable.
7854 (free_lang_status): Likewise.
7855 * emit-rtl.c (free_emit_status): Make decl parameter implicit.
7856 * function.c (init_lang_status): New variable.
7857 (free_lang_status): Likewise.
7858 (push_function_context_to): Don't set function::decl here.
7859 (free_after_copmilation): Make decl parameter implicit. Call
7860 free_lang_status if defined.
7861 (prepare_function_start): Call init_lang_status if defined.
7862 (init_function_start): Set function::decl here.
7863 * profile.c (output_func_start_profiler): Don't call pushdecl
7864 until we've actually started the function.
7865 * stmt.c (free_stmt_status): Make decl parameter implicit.
7866 * toplev.c (rest_of_compilation): Don't pass decl to
7867 free_after_compilation.
7868 * varasm.c (free_varasm_status): Likewise.
7869
7870 Thu Sep 9 17:23:19 1999 Bernd Schmidt <bernds@cygnus.co.uk>
7871
7872 * except.c (call_get_eh_context): Add root when allocating static
7873 tree variable.
7874
7875 Thu Sep 9 15:24:59 BST 1999 Richard Earnshaw <rearnsha@arm.com>
7876
7877 * arm.c: Include "ggc.h".
7878 (arm_add_gc_roots): New function.
7879 (arm_override_options): Call it.
7880 (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
7881
7882 * arm.md (define_asm_attributes): Add a pool_range attribute.
7883
7884 Thu Sep 9 12:32:57 BST 1999 Nathan Sidwell <nathan@acm.org>
7885
7886 * extend.texi (Volatiles): New node.
7887
7888 Thu Sep 9 03:37:31 1999 Richard Henderson <rth@cygnus.com>
7889
7890 * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
7891 (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
7892 (struct ggc_any): Replace `mark' with `magic_mark'.
7893 (ggc_alloc_string): Use memcpy, not bcopy.
7894 (ggc_alloc_any): Set magic_mark. Update bytes_alloced_since_gc.
7895 (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
7896 (ggc_free_any): New.
7897 (ggc_mark_string): Use IGNORE_MARK. Calc back to struct gcc_string.
7898 (ggc_mark): Use IGNORE_MARK. Abort if magic doesn't match.
7899 (ggc_collect): Re-enable collection avoidance. Use GGC_ANY_MARK.
7900 Use IS_MARKED. Use ggc_free_any.
7901
7902 1999-09-09 Scott Bambrough <scottb@netwinder.org>
7903
7904 * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
7905
7906 Thu Sep 9 01:55:21 1999 Richard Henderson <rth@cygnus.com>
7907
7908 * toplev.c (main): Always init_ggc.
7909
7910 Wed Sep 8 23:53:22 1999 Richard Henderson <rth@cygnus.com>
7911
7912 * except.c (find_all_handler_type_matches): Free the list if
7913 we found no matches.
7914
7915 * combine.c (SUBST): Break out to a real function do_SUBST.
7916 (SUBST_INT): Likewise.
7917 * gcse.c (free_pre_mem): Free `temp_bitmap'.
7918 (pre_insert): Free `inserted'.
7919 * loop.c (basic_induction_var): Always set `location'.
7920
7921 * function.c (expand_function_end): Add initial_trampoline as a root.
7922 * rtl.h (init_varasm_once): Declare.
7923 * toplev.c (compile_file): Call it.
7924 * ggc-simple.c (ggc_mark_string_ptr): New.
7925 (ggc_add_string_root): New.
7926 (ggc_collect): Disable collection avoidance temporarily.
7927 * ggc.h (ggc_add_string_root): Declare.
7928 * except.c (create_rethrow_ref): Use ggc_alloc_string.
7929 * optabs.c (init_libfuncs): Likewise.
7930 * varasm.c (named_section): Use ggc_alloc_string.
7931 (make_function_rtl): Likewise.
7932 (make_decl_rtl): Likewise.
7933 (assemble_static_space): Likewise.
7934 (assemble_trampoline_template): Likewise.
7935 (output_constant_def): Likewise.
7936 (force_const_mem): Likewise.
7937 (mark_const_hash_entry): New.
7938 (mark_pool_sym_hash_table): New.
7939 (mark_varasm_state): Use it.
7940 (init_varasm_once): New.
7941
7942 * expr.h (init_one_libfunc): Declare.
7943 * optabs.c (init_one_libfunc): New.
7944 (init_optabs): Use it.
7945 * config/gofast.h: Likewise.
7946 * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
7947 * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
7948
7949 Thu Sep 9 13:46:06 1999 Geoffrey Keating <geoffk@cygnus.com>
7950
7951 * Makefile.in (cppexp.o): Depend on cpphash.h.
7952 * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
7953 Include cpphash.h.
7954 * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
7955 * cpplib.c (do_define): Generalise to handle poisoned definitions,
7956 redefining poisoned identifiers, etc.
7957 (do_undef): Don't allow poisoned identifiers to be undefined.
7958 (do_pragma): Add #pragma poison.
7959 (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
7960
7961 * cccp.c: Add T_POISON node type.
7962 (special_symbol): Handle `defined(xxx)' and plain `xxx' for
7963 poisoned xxx.
7964 (do_define): Generalise to handle poisoned definitions,
7965 redefining poisoned identifiers, etc.
7966 (do_undef): Don't allow poisoned identifiers to be undefined.
7967 (do_pragma): Add #pragma poison.
7968 (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
7969
7970 * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
7971 * c-pragma.h: Add ps_poison state. We now always have generic
7972 pragmas.
7973
7974 Wed Sep 8 20:30:42 1999 Mark Mitchell <mark@codesourcery.com>
7975
7976 * ggc.h (ggc_alloc): New function.
7977 (ggc_mark): Likewise.
7978 * ggc-simple.c (ggc_any): New structure.
7979 (ggc_status): Add anys.
7980 (n_anys_collected): New variable.
7981 (ggc_alloc): Define.
7982 (ggc_mark): Likewise.
7983 (ggc_collect): Collect the anys.
7984
7985 Wed Sep 8 20:15:14 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7986
7987 * c-decl.c (mark_binding_level): Make static to match prototype.
7988
7989 Wed Sep 8 16:41:27 1999 Richard Henderson <rth@cygnus.com>
7990
7991 * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
7992
7993 Wed Sep 8 16:07:52 1999 Richard Henderson <rth@cygnus.com>
7994
7995 * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
7996 will use into account. Expand the max width to 5.
7997 * rtl.c: Likewise.
7998
7999 Wed Sep 8 16:01:14 1999 Richard Henderson <rth@cygnus.com>
8000
8001 * ggc-simple.c (ggc_free_rtx): Poison the correct amount
8002 for the rtx length.
8003
8004 Wed Sep 8 15:23:54 1999 Richard Henderson <rth@cygnus.com>
8005
8006 * alpha.md (call value patterns): Remove the result predicates.
8007
8008 Wed Sep 8 13:35:38 1999 Richard Henderson <rth@cygnus.com>
8009
8010 * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
8011 last change.
8012
8013 Wed Sep 8 15:32:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8014
8015 * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
8016 changed from extern char *, to extern PTR. Also fix typo in
8017 NEED_DECLARATION_REALLOC test.
8018
8019 * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
8020
8021 Wed Sep 8 11:40:47 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8022
8023 * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
8024 ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
8025 ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
8026 ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
8027
8028 * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
8029
8030 * cccp.c (pcfinclude): Likewise.
8031
8032 * global.c (allocno_compare): Likewise.
8033
8034 * haifa-sched.c (rank_for_schedule): Likewise.
8035
8036 * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
8037
8038 * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
8039
8040 * stupid.c (stupid_reg_compare): Likewise.
8041
8042 * tree.c (_obstack_allocated_p): Likewise.
8043
8044 * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
8045
8046 1999-09-08 Bruce Korb autogen@linuxbox.com
8047
8048 * gcc/ch/Makefile.in: Give the hapless gperf user a hint about
8049 why "gperf -F" fails.
8050 * gcc/cp/Makefile.in: ditto
8051 * gcc/Makefile.in: ditto
8052 * gcc/java/Makefile.in: ditto
8053
8054 Wed Sep 8 04:43:22 1999 Richard Henderson <rth@cygnus.com>
8055
8056 * lists.c: Include ggc.h.
8057 (zap_lists): New.
8058 (init_EXPR_INSN_LIST_cache): Install it.
8059
8060 * ggc-simple.c (init_ggc): Absorb the old init.
8061 (ggc_push_context): Use xcalloc.
8062 (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
8063 (ggc_collect): Add [rvts] tags to the collection stats.
8064
8065 Wed Sep 8 11:14:25 1999 Andreas Schwab <schwab@suse.de>
8066
8067 * cccp.c (main): Fix handling of -include and -imacros options.
8068
8069 Wed Sep 8 02:23:08 1999 Jeffrey A Law (law@cygnus.com)
8070
8071 * cpplib.c (cpp_push_buffer): Fix order of arguments.
8072
8073 Wed Sep 8 04:44:09 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
8074
8075 * rtl.h (obstack_alloc_rtx): Removed, it's now static in
8076 genrtl.c.
8077
8078 Wed Sep 8 00:33:43 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
8079
8080 * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
8081 * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
8082 and SET_DEST. Update comment.
8083
8084 Wed Sep 8 18:55:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8085
8086 * config/c4x/c4x.c: Include ggc.h.
8087 (c4x_add_gc_roots): New function.
8088 (c4x_override_options): Call c4x_add_gc_roots.
8089
8090 Wed Sep 8 00:00:16 1999 Richard Henderson <rth@cygnus.com>
8091
8092 * defaults.h (TARGET_ESC): Move ...
8093 * system.h: ... here, where Linas had it in the first place. Silly me.
8094
8095 Tue Sep 7 23:46:35 1999 Linas Vepstas <linas@linas.org>
8096
8097 * c-common.c: Use ISGRAPH, ISLOWER, toupper.
8098 * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
8099 genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
8100 * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
8101 * defaults.h (TARGET_ESC): Add default.
8102
8103 Tue Sep 7 23:36:59 1999 Linas Vepstas <linas@linas.org>
8104
8105 * configure.in: add i370-*-openedition, i370-*-mvs and
8106 i370-*-linux targets
8107
8108 Tue Sep 7 23:31:53 1999 Mark Mitchell <mark@codesourcery.com>
8109
8110 * dsp16xxx.c: Include ggc.h
8111 (override_options): Mark GC roots.
8112 * mn10200.c: Include ggc.h.
8113 (asm_file_start): Mark GC roots.
8114 * tahoe.c: Include ggc.h.
8115 (extensible_operand): Mark GC roots.
8116
8117 Tue Sep 7 23:23:15 1999 Linas Vepstas <linas@linas.org>
8118
8119 * README: Add section discussing status of ELF ABI.
8120 * i370.c: Fix misc spelling mistakes.
8121 (i370_label_scan): Updated notes, exception handling.
8122 (i370_function_prolog): Simplify ELF stack handling.
8123 * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
8124 (STACK_GROWS_DOWNWARD): ELF stack grows down.
8125 (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
8126 * i370.md: (movdi): Add notes.
8127 (floatsidf2): Use stack not rtca for scratch float area.
8128 (iorsi3): Correct operand constraints.
8129 * x-oe: Restore TAROUTOPTS which are used by pax.
8130
8131 Tue Sep 7 22:39:18 1999 Mark Mitchell <mark@codesourcery.com>
8132
8133 * rs6000.c: Include ggc.h.
8134 (rs6000_add_gc_roots): New function.
8135 (override_options): Call it.
8136
8137 Tue Sep 7 22:09:03 1999 Richard Henderson <rth@cygnus.com>
8138
8139 * alpha.h (alpha_compare): New.
8140 (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
8141 * alpha.c: Likewise for the definitions.
8142 (alpha_emit_conditional_branch): Update for alpha_compare.
8143 (alpha_emit_conditional_move): Likewise.
8144 * alpha.md (cmpdf, cmpdi): Likewise.
8145 (setcc patterns): Likewise. Zero alpha_compare after use.
8146 (sne): Optimize (x != 0) into (0U < x).
8147
8148 Tue Sep 7 21:55:02 1999 Richard Henderson <rth@cygnus.com>
8149
8150 * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
8151 (struct machine_function): Declare; add eh_epilogue_sp_ofs.
8152 (INIT_EXPANDERS): Remove.
8153 * alpha.c: Include ggc.h.
8154 (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
8155 (alpha_init_machine_status, alpha_mark_machine_status): New.
8156 (override_options): Install them.
8157 (struct machine_function): Moved to alpha.h.
8158 (alpha_save_machine_status, alpha_restore_machine_status): Remove.
8159 (alpha_init_expanders): Remove.
8160 (alpha_return_addr): Adjust to use current_function->machine.
8161 (alpha_ra_ever_killed): Likewise.
8162 (alpha_expand_epilogue): Likewise.
8163 * alpha.md (eh_epilogue): Likewise.
8164
8165 Wed Sep 8 14:34:42 1999 Ian Piumarta <piumarta@prof.inria.fr>
8166 Melissa O'Neill <oneill@cs.sfu.ca>
8167 Geoffrey Keating <geoffk@cygnus.com>
8168
8169 * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
8170 call-used registers (call-saved registers must still be contiguous
8171 and end with r31, of course).
8172
8173 Tue Sep 7 21:41:38 1999 Richard Henderson <rth@cygnus.com>
8174
8175 * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
8176 (self_promoting_type_p): Delete.
8177 (self_promoting_args_p): Move ...
8178 * c-common.c: ... here.
8179 (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
8180 (simple_type_promotes_to): New.
8181 * builtins.c (lang_type_promotes_to): New.
8182 (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
8183 * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
8184 * c-common.h: ... here.
8185 (self_promoting_args_p, simple_type_promotes_to): Declare.
8186 * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
8187 (grokdeclarator): Likewise.
8188 * tree.h (lang_type_promotes_to): Declare.
8189
8190 Tue Sep 7 17:15:21 1999 Mark Mitchell <mark@codesourcery.com>
8191
8192 Add some machine-dependent GC roots.
8193 * sparc.c: Include ggc.h.
8194 (sparc_add_gc_roots): New function.
8195 (mark_ultrasparc_pipeline_state): Likewise.
8196 (override_options): Call sparc_add_gc_roots.
8197 * pa.c: Include ggc.h.
8198 (pa_add_gc_roots): New function.
8199 (mark_deferred_plabels): Likewise.
8200 (override_options): Call pa_add_gc_roots.
8201 * mips.c: Include ggc.h.
8202 (mips_add_gc_roots): New function.
8203 (override_options): Use it.
8204
8205 Tue Sep 7 11:39:41 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8206
8207 * cpperror.c (cpp_file_line_for_message): Constify a char*.
8208
8209 * cppexp.c (parse_number, parse_charconst, cpp_lex,
8210 cpp_parse_expr): Add static prototypes.
8211 (parse_charconst): Don't cast away const-ness.
8212 (token): Constify a char*.
8213
8214 * cppfiles.c (file_name_list, include_hash, find_include_file,
8215 finclude, initialize_input_buffer): Constify a char*.
8216 (file_cleanup, find_position): Add static prototypes.
8217
8218 * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
8219 collect_expansion): Add static prototypes.
8220 (cpp_install, create_definition, monthnames): Constify a char*.
8221
8222 * cpphash.h (cpp_install): Likewise.
8223
8224 * cppinit.c (known_suffixes, default_include,
8225 dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
8226 (base_name, dump_special_to_buffer, initialize_dependency_output):
8227 Add static prototypes.
8228
8229 * cpplib.c (my_strerror): Constify a char*.
8230 (null_underflow, null_cleanup, skip_comment, copy_comment,
8231 copy_rest_of_line, handle_directive, pass_thru_directive,
8232 get_directive_token, read_line_number, cpp_print_file_and_line,
8233 v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
8234 v_cpp_warning_with_line, detect_if_not_defined,
8235 consider_directive_while_skipping): Add static prototypes.
8236 (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
8237 cpp_pedwarn_with_file_and_line): Constify a char*.
8238
8239 * cpplib.h (cpp_options, include_hash, progname, definition,
8240 cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
8241 check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
8242 find_include_file, deps_output, include_hash): Constify a char*.
8243
8244 * cppmain.c (progname): Constify.
8245 (main): Add prototype. Use return, not exit.
8246
8247 * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
8248 recognized_macro, check_macro_names, read_scan_file, write_rbrac,
8249 inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
8250 check_protection): Add static prototype.
8251 (xfree): Remove.
8252 (progname, recognized_macrom, recognized_extern): Constify a char*.
8253 (main): Add prototype.
8254
8255 * gen-protos.c (progname): Constify a char*.
8256
8257 Tue Sep 7 00:47:52 1999 Mark Mitchell <mark@codesourcery.com>
8258
8259 * emit-rtl.c (free_emit_status): Take decl as a parameter.
8260 (init_emit_once): Add more GC roots.
8261 * except.c (mark_func_eh_entry): New function.
8262 (mark_eh_node): Mark false_label and rethrow_label.
8263 (init_eh): Add more GC roots.
8264 * function.c (free_after_compilation): Take decl as a paramter.
8265 Call free_stmt_status.
8266 (mark_function_state): Don't assume x_parm_reg_stack_loc is
8267 non-NULL.
8268 * function.h (free_after_compilation): Change prototype.
8269 (free_varasm_status): Likewise.
8270 (free_emit_status): Likewise.
8271 (free_stmt_status): New function.
8272 * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
8273 Remove, replacing with ...
8274 (ggc_status): New structure.
8275 (ggc_chain): New variable.
8276 (init_gcc): Define.
8277 (ggc_push_context): New function.
8278 (ggc_pop_context): Likewise.
8279 (ggc_alloc_rtx): Adjust for use of ggc_chain.
8280 (ggc_alloc_rtvec): Likewise.
8281 (ggc_alloc_tree): Likewise.
8282 (ggc_alloc_string): Likewise.
8283 (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
8284 (ggc_mark_tree): Give language-dependent code a chance to mark
8285 `x' nodes.
8286 (ggc_mark_tree_varray): Handle empty arrays.
8287 (ggc_collect): Adjust for use of ggc_chain. Clear
8288 bytes_alloced_since_last_gc.
8289 * ggc.h (ggc_pop_context): New function.
8290 (ggc_push_context): Likewise.
8291 * print-tree.c (print_node): Don't print obstacks when GC'ing.
8292 * stmt.c (free_stmt_status): New function.
8293 (init_stmt_for_function): Clear last_expr_value.
8294 * toplev.c (rest_of_compilation): Always call free_after_compilation.
8295 Conditionalize call to ggc_collect.
8296 (main): Call init_ggc.
8297 * tree.c (push_obstacks): Do the push, even when GC'ing.
8298 (push_obstacks_nochange): Likewise.
8299 (pop_obstacks): Liekwise.
8300 * varasm.c (free_varasm_status): Take decl as a parameter.
8301
8302 Tue Sep 7 08:15:49 1999 Gavin Romig-Koch <gavin@cygnus.com>
8303
8304 * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
8305 (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
8306 * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
8307 * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
8308
8309 Tue Sep 7 03:42:45 1999 Mark Klein (mklein@dis.com)
8310
8311 * pa/x-pa-mpeix: New file for the MPE port.
8312
8313 * pa/quadlib.asm: New file for long double support.
8314
8315 * configure.in: Add hppa1.0-*-mpeix for MPE port.
8316 * configure: Rebuilt.
8317
8318 Tue Sep 7 10:08:40 1999 Andreas Schwab <schwab@suse.de>
8319
8320 * final.c (shorten_branches): Fix last change.
8321
8322 Tue Sep 7 00:30:32 1999 Jeffrey A Law (law@cygnus.com)
8323
8324 * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
8325
8326 Mon Sep 6 22:44:47 1999 Jeffrey A Law (law@cygnus.com)
8327
8328 * Merge from gcc2 snapshot Jan 9, 1999. See FSFChangeLog for
8329 details.
8330
8331 Mon Sep 6 22:31:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8332
8333 * c-aux-info.c (concat): Don't define.
8334
8335 * cccp.c (my_strerror): Likewise. All callers changed to use
8336 xstrerror instead.
8337 (do_include): Call xstrdup, not xmalloc/strcpy.
8338 (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
8339 (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
8340
8341 * collect2.c (my_strsignal): Likewise. All callers changed to use
8342 strsignal instead.
8343 (locatelib): Call xstrdup, not xmalloc/strcpy.
8344
8345 * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
8346
8347 * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
8348
8349 * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
8350
8351 * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
8352
8353 * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
8354
8355 * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
8356
8357 * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
8358 malloc/realloc.
8359 (find_all_handler_type_matches): Likewise. Don't check return
8360 value.
8361 (get_new_handler, init_insn_eh_region, process_nestinfo): Call
8362 xmalloc, not malloc.
8363 (init_eh_nesting_info): Likewise. Call xcalloc, not xmalloc/bzero.
8364
8365 * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
8366 (init_spec): Call xcalloc, not xmalloc/bzero.
8367 (set_spec): Call xstrdup, not save_string.
8368 (record_temp_file): Call xstrdup, not xmalloc/strcpy.
8369 (find_a_file): Call xstrdup, not xmalloc/strcpy.
8370 (process_command): Call xstrdup, not save_string.
8371 (main): Call xcalloc, not xmalloc/bzero.
8372
8373 * gcov.c (xmalloc): Don't define.
8374 (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
8375 (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
8376 (output_data): Call xcalloc, not xmalloc/bzero.
8377
8378 * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
8379
8380 * mips-tdump.c (xmalloc): Don't define.
8381 (print_symbol): Call xmalloc, not malloc.
8382 (read_tfile): Call xcalloc, not calloc.
8383
8384 * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
8385 Don't define. All callers of xfree/my_strsignal changed to use
8386 free/strsignal instead.
8387 (allocate_cluster): Call xcalloc, not calloc.
8388
8389 * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
8390 Fix memory leak, free allocated memory.
8391
8392 * prefix.c (translate_name): Call xstrdup, not save_string.
8393 (update_path): Likewise.
8394
8395 * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
8396
8397 * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
8398 Don't define. Callers of xfree/savestring2 changed to use
8399 free/concat instead.
8400
8401 * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
8402 (init_elim_table): Likewise.
8403
8404 * resource.c (init_resource_info): Likewise.
8405
8406 * stupid.c (stupid_life_analysis): Likewise.
8407
8408 * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
8409 (open_dump_file): Call concat, not xmalloc/strcpy/...
8410 (clean_dump_file): Likewise.
8411 (compile_file): Call xstrdup, not xmalloc/strcpy.
8412
8413 Mon Sep 6 15:04:55 1999 Richard Henderson <rth@cygnus.com>
8414
8415 * v850.h (EXPAND_BUILTIN_VA_ARG): New.
8416 * v850.c (v850_va_arg): New.
8417
8418 Tue Sep 7 09:36:01 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8419
8420 * haifa-sched.c: Tidy comments.
8421
8422 Mon Sep 6 14:30:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8423
8424 * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
8425 (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
8426 $(out_object_file)): Depend on ggc.h.
8427 * c-common.c: Include "ggc.h".
8428 (combine_strings): If doing GC, use ggc_alloc_string.
8429 * c-decl.c: Include "ggc.h".
8430 (ggc_p): Define with value 0.
8431 (mark_binding_level): New function.
8432 (init_decl_processing): Add GC roots.
8433 (mark_c_function_context): New function.
8434 (lang_mark_false_label_stack): New function.
8435 (lang_mark_tree): New function.
8436 (lang_cleanup_tree): New function.
8437 * c-lang.c: Include "ggc.h".
8438 (lang_init): Call c_parse_init.
8439 * c-lex.c: Include "ggc.h".
8440 (check_linenum): If doing GC, don't copy filenames to permanent
8441 obstack.
8442 * c-parse.in: Include "ggc.h".
8443 (c_parse_init): New function.
8444 * c-tree.h (c_parse_init, mark_c_function_context): Declare.
8445 * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
8446
8447 * except.c (mark_eh_state): Mark more state.
8448 * function.c (mark_function_state): Likewise.
8449 * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
8450 (ggc_alloc_string) [GGC_DUMP]: Fix typo.
8451 * toplev.c (mark_file_stack): New function.
8452 (compile_file): If doing GC, use ggc_alloc_string on input filename.
8453 (main): Add root for input_file_stack.
8454
8455 * i386.c: Include "ggc.h".
8456 (ix86_mark_machine_status): New function.
8457 (override_options): Set mark_machine_status.
8458
8459 Mon Sep 6 15:26:23 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8460
8461 * tree.c (copy_node): Copy node contents also if doing GC.
8462
8463 Mon Sep 6 08:42:06 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
8464
8465 * collect2.c (scan_libraries): Fix double-thinko :-).
8466
8467 Mon Sep 6 02:42:36 1999 Jeffrey A Law (law@cygnus.com)
8468
8469 * collect2.c (scan_libraries): Fix thinko.
8470
8471 * cse.c (delete_trivially_dead_insns): Do not skip the last
8472 insn if it is a real insn.
8473
8474 Sun Sep 5 18:57:42 1999 Mark Mitchell <mark@codesourcery.com>
8475
8476 * Makefile.in (ggc-simple.o): Depend on hash.h.
8477 * ggc.h (ggc_add_tree_hash_table_root): Declare.
8478 (ggc_mark_tree_varray): Likewise.
8479 (ggc_mark_tree_hash_table): Likewise.
8480 * ggc-simple.c: Include hash.h.
8481 (ggc_mark_tree_hash_table_ptr): New function.
8482 (ggc_mark_tree_hash_table_entry): Likewise.
8483 (ggc_mark_tree_hash_table): Likewise.
8484 (ggc_add_tree_hash_table_root): Likewise.
8485 * varray.h (const_equiv_data): Use struct rtx_def *, rather than
8486 rtx, when defining fields.
8487
8488 Sun Sep 5 18:57:42 1999 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8489
8490 * profile.c (output_func_start_profiler): Remove apparently
8491 nonsensical call to start_sequence.
8492
8493 Sun Sep 5 17:34:33 1999 Richard Henderson <rth@cygnus.com>
8494
8495 * clipper/clipper.c (clipper_va_start): Fix typos.
8496
8497 * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
8498 * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
8499 (spur_va_arg): New stub.
8500
8501 * configure.in: Comment out pyramid.
8502
8503 Sun Sep 5 19:11:01 1999 Michael Meissner <meissner@cygnus.com>
8504
8505 * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
8506 don't conflict with the bits that win32, cygwin, and dgux
8507 defines.
8508
8509 Sun Sep 5 09:31:56 1999 Richard Henderson <rth@cygnus.com>
8510 Bernd Schmidt <bernds@cygnus.co.uk>
8511
8512 * integrate.c (function_cannot_inline_p): Do not inline
8513 functions with forced labels.
8514
8515 Sun Sep 5 00:35:17 1999 Richard Henderson <rth@cygnus.com>
8516 Bernd Schmidt <bernds@cygnus.co.uk>
8517 Mark Mitchell <mark@codesourcery.com>
8518
8519 * Makefile.in (ggc-simple.o): Depend on varray.h.
8520 (rtl.o): Depend on ggc.h.
8521 (genattrtab.o): Depend on ggc.h.
8522 (print-tree.o): Likewise.
8523 (fold-const.o): Likewise.
8524 * emit-rtl.c (sequence_element_free_list): Remove, and all references.
8525 (make_insn_raw): Don't cache insns when GC'ing.
8526 (emit_insn_before): Likewise.
8527 (emit_insn_after): Likewise.
8528 (emit_insn): Likewise.
8529 (start_sequence): Use xmalloc to allocate the sequence_stack.
8530 (end_sequence): Add free to free it.
8531 (gen_sequence): Don't cache insns when GC'ing.
8532 (clear_emit_caches): Don't use sequence_element_free_list.
8533 (init_emit): Use xcalloc, not xmalloc+bzero.
8534 * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
8535 * function.c (pop_function_context_from): Use free to free the
8536 fixup_var_refs_queue.
8537 (put_reg_into_stack): Allocate it with xmalloc.
8538 * genattrtab.c: Include ggc.h.
8539 (operate_exp): Don't use obstack_free when GC'ing.
8540 (simplify_cond): Likewise.
8541 (simplify_text_exp): Likewise.
8542 (optimize_attrs): Likewise.
8543 * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
8544 GC'ing.
8545 (gencode): Generate a #include for ggc.h.
8546 * ggc-callbacks.c (ggc_p): Define it to zero.
8547 * ggc-none.c (ggc_p): Likewise.
8548 * ggc-simple.c: Include varray.h.
8549 (ggc_mark_tree_varray): New function.
8550 (ggc_add_tree_varray_root): Likewise.
8551 (ggc_mark_tree_varray_ptr): Likewise.
8552 * ggc.h (ggc_p): Declare.
8553 (varray_head_tag): Likewise.
8554 (ggc_add_tree_varray_root): Declare.
8555 * print-tree.c (print_node): Don't check for TREE_PERMANENT
8556 inconsistencies when GC'ing.
8557 * rtl.c: Include ggc.h.
8558 (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
8559 (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
8560 (rtx_free): Don't call obstack_free when GC'ing.
8561 * toplev.c (rest_of_compilation): Call ggc_collect after every
8562 pass, if GC'ing.
8563 * tree.c (push_obstacks): Do nothing, if GC'ing.
8564 (pop_obstacks_nochange): Likewise.
8565 (pop_obstacks): Likewise.
8566 (make_node): Use ggc_alloc_tree when GC'ing.
8567 (copy_node): Likewise.
8568 (get_identifier): Use ggc_alloc_string when GC'ing.
8569 (build_string): Likewise.
8570 (make_tree_vec): Use ggc_alloc_tree when GC'ing.
8571 (tree_cons): Likewise.
8572 (build1): Likewise.
8573 (type_hash_canon): Don't call obstack_free when GC'ing.
8574
8575 Sat Sep 4 21:52:32 1999 Richard Henderson <rth@cygnus.com>
8576
8577 * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
8578 of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
8579
8580 Sat Sep 4 20:40:19 1999 Richard Henderson <rth@cygnus.com>
8581 Bernd Schmidt <bernds@cygnus.co.uk>
8582 Mark Mitchell <mark@codesourcery.com>
8583
8584 * Makefile.in (stor-layout.o): Depend on ggc.h.
8585 (expr.o): Depend on ggc.h.
8586 (profile.o): Depend on ggc.h.
8587 (stor-layout.o): Depend on ggc.h.
8588 * emit-rtl.c (init_emit_once): Add gc roots.
8589 * expr.c: Include ggc.h.
8590 (emit_block_move): Add gc roots.
8591 (clear_storage): Likewise.
8592 * expr.h (init_stor_layout_once): New function.
8593 * profile.c: Include ggc.h.
8594 (init_arc_profiler): profiler_label is a root.
8595 * scan.c (make_sstring_space): Trust xrealloc to function
8596 correctly with first parameter NULL.
8597 * stor-layout.c: Include ggc.h.
8598 (set_sizetype): Add gc root.
8599 (init_stor_layout_once): New function.
8600 * toplev.c (compile_file): Call it.
8601
8602 Sat Sep 4 19:26:25 1999 Richard Henderson <rth@cygnus.com>
8603 Bernd Schmidt <bernds@cygnus.co.uk>
8604 Mark Mitchell <mark@codesourcery.com>
8605
8606 * Makefile.in (tree.o): Depend on ggc.h.
8607 (varasm.o): Likewise.
8608 (function.o): Likewise.
8609 (stmt.o): Likewise.
8610 (except.o): Likewise.
8611 (optabs.o): Likewise.
8612 (emit-rtl.o): Likewise.
8613 * emit-rtl.c: Include ggc.h.
8614 (sequence_element_free_list): Remove, and all references.
8615 (mark_sequence): New functions.
8616 (mark_emit_state): New function.
8617 * except.c: Include ggc.h.
8618 (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
8619 (mark_tree_label_node): New functions.
8620 (mark_eh_state): New function.
8621 * function.c: Include ggc.h.
8622 (mark_temp_slot, mark_function_chain): New functions.
8623 (mark_function_state): New function.
8624 (init_function_once): New function.
8625 * function.h (init_function_once): New function.
8626 * ggc-callbacks.c (lang_mark_false_label_stack): New function.
8627 * ggc.h (label_node): Declare.
8628 (eh_status, emit_status, stmt_status, varasm_status): Likewise.
8629 (lang_mark_false_label_stack): New function.
8630 (mark_temp_slot): Remove declaration.
8631 (mark_function_chain): Likewise.
8632 (mark_eh_state): Adjust prototype.
8633 (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
8634 Likewise.
8635 * optabs.c: Include ggc.h.
8636 (mark_optab): New function.
8637 (init_optabs): Add gc roots.
8638 * stmt.c: Include ggc.h.
8639 (mark_cond_nesting, mark_loop_nesting): New functions.
8640 (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
8641 (mark_stmt_state): New function.
8642 * toplev.c (compile_file): Call init_function_once.
8643 * tree.c: Include ggc.h.
8644 (type_hash): Move declaration earlier in file.
8645 (TYPE_HASH_SIZE, type_hash_table): Likewise.
8646 (init_obstacks): Add gc roots.
8647 (mark_type_hash): New function.
8648 * varasm.c: Include ggc.h.
8649 (mark_pool_constant): New function.
8650 (mark_varasm_state): New function.
8651
8652 Sat Sep 4 22:28:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8653
8654 * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
8655
8656 Sat Sep 4 18:01:45 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8657
8658 * c-decl.c (struct language_function): Renamed from struct c_function.
8659 Delete elt NEXT.
8660 (c_function_chain): Delete.
8661 (push_c_function_context): New arg F. Don't warn about nested
8662 functions here. Fill LANGUAGE elt of F. Delete code to update
8663 c_function_chain. Don't call push_function_context.
8664 (pop_c_function_context): New arg F. Restore from there instead of
8665 from c_function_chain. Don't call pop_function_context. Clear out
8666 LANGUAGE field of F when done.
8667 * c-lang.c: Include "function.h"
8668 (lang_init): Initialize save_lang_status and restore_lang_status.
8669 * c-parse.in (nested_function, nested_function_notype): Warn about
8670 nested functions. Call push_function_context/pop_function_context
8671 instead of the _c_ variants.
8672 * c-tree.h (push_c_function_context, pop_c_function_context): Update
8673 prototype.
8674 * Makefile.in (c-lang.o): Update dependencies.
8675
8676 * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
8677 regno_pointer_flag, regno_pointer_align.
8678 (gen_reg_rtx): Use xrealloc to enlarge them.
8679 (free_emit_status): New function.
8680 * function.c (mark_machine_status, mark_lang_status): New variables.
8681 (assign_stack_local_1): Renamed from assign_outer_stack_local. Merge
8682 in some bits from assign_stack_local. All callers changed to use new
8683 name.
8684 (assign_stack_local): Just call assign_stack_local_1.
8685 (free_after_compilation): New function.
8686 (put_reg_into_stack): Simplify to always call assign_stack_local_1.
8687 (trampoline_address): Likewise.
8688 (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
8689 (prepare_function_start): Explicitly clear some more variables.
8690 * function.h (struct function): New elt can_garbage_collect.
8691 (mark_machine_status, mark_lang_status): Declare variables.
8692 (free_after_compilation, free_emit_status, free_varasm_status,
8693 init_varasm_status): Declare functions.
8694 * toplev.c (rest_of_compilation): Call free_after_compilation when
8695 done with the current function.
8696 * varasm.c (free_varasm_status): New function.
8697
8698 Sat Sep 4 17:15:13 1999 Richard Henderson <rth@cygnus.com>
8699
8700 * sparc.h (EXPAND_BUILTIN_VA_START): Define.
8701 (EXPAND_BUILTIN_VA_ARG): Define.
8702 * sparc.c (sparc_va_start): New.
8703 (sparc_va_arg): New.
8704
8705 Sun Sep 5 11:11:59 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8706
8707 * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
8708
8709 Sun Sep 5 10:13:19 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8710
8711 * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
8712
8713 Sat Sep 4 13:44:01 1999 Mark Mitchell <mark@codesourcery.com>
8714
8715 * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
8716 (OBJS): Add $(GGC).
8717 (ggc-callbacks.o): New target.
8718 * ggc-callbacks.c: New file.
8719
8720 Sat Sep 4 22:53:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8721
8722 * expr.h: Collapse individual optab and libfunc vars to arrays.
8723 (optab_index, libfunc_index): New enumerations.
8724 (optab_table, libfunc_table): New arrays.
8725 Add accessor macros for both.
8726
8727 * optabs.c (optab_table, libfunc_table): New.
8728 Delete declarations for individual optab and libfunc vars.
8729
8730 Sat Sep 4 12:57:17 1999 Richard Henderson <rth@cygnus.com>
8731
8732 * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
8733
8734 Sat Sep 4 11:19:52 1999 Richard Henderson <rth@cygnus.com>
8735
8736 * Makefile.in (GGC, GGC_LIB): New.
8737 (HOST_RTL): Include ggc-none.o.
8738 (ggc-simple.o): New target.
8739 (ggc-none.o): Likewise.
8740 * tree.h (tree_common): Add gc_mark.
8741 * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
8742 (struct rtvec_def): Add gc_mark.
8743 * emit-rtl.c (global_rtl): Update static initializers to contain
8744 enough initializers.
8745 * ggc.h, ggc-none.c, ggc-simple.c: New files.
8746 * toplev.c (gc_time): New variable.
8747 (all_time): New variable.
8748 (compile_file): Print gc time.
8749 (print_time): Calculate percentage of the whole.
8750
8751 Sat Sep 4 13:11:01 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8752
8753 Change obstack memory management and varasm constant pool handling so
8754 that nested functions are treated like any other functions.
8755 * function.c (init_machine_status): New variable.
8756 (push_function_context_to): Set contains_functions for the outer
8757 function. Don't call save_varasm_status.
8758 (pop_function_context_from): Don't call restore_varasm_status. Don't
8759 set current_function_contains_functions.
8760 (prepare_function_start): Call init_varasm_status rather than
8761 init_const_rtx_hash_table. Call (*init_machine_status) if the pointer
8762 is non-null.
8763 * function.h (struct function) Add field varasm. Delete fields
8764 inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
8765 last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
8766 (init_machine_status): Declare.
8767 (save_varasm_status, restore_varasm_status): Delete declarations.
8768 (save_tree_status, restore_tree_status): Delete last argument.
8769 * integrate.c (initialize_for_inline): Lose arg COPY. Delete copying
8770 code. All callers changed.
8771 (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
8772 save_constants_in_decl_trees, restore_constants, save_constants,
8773 save_for_inline_eh_labelmap, save_for_inline_copying): Delete
8774 functions.
8775 (inlining): New variable.
8776 (reg_map, label_map, insn_map, orig_asm_operands_vector,
8777 copy_asm_operands_vector, copy_asm_constraints_vector): Delete
8778 variables.
8779 (save_for_inline_nocopy): Don't save constants.
8780 Don't set inl_emit field in current_function.
8781 (expand_inline_function): Use emit field, not inl_emit, of the inlined
8782 function. Set new variable inlining before
8783 calling copy_rtx_and_substitute.
8784 (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
8785 constant pool references if inlining is nonzero.
8786 Delete ADDRESS and (most of the) CONST cases.
8787 (output_inline_function): Save and restore current_function/
8788 current_function_decl. Delete restore_constants code. Don't call
8789 init_const_rtx_hash_table.
8790 * output.h (init_const_rtx_hash_table): Don't declare.
8791 * rtl.h (struct function): Declare.
8792 (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
8793 * toplev.c (rest_of_compilation): Don't treat nested functions or
8794 functions containing them specially. Delete all code to deal with
8795 save_for_inline_copying.
8796 * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
8797 inline_obstacks): Delete variables.
8798 (save_tree_status): Lose arg CONTEXT. All callers changed.
8799 Simply allocate a new function_maybepermanent_obstack for the new
8800 function, delete all the special cases.
8801 Don't save inline_obstacks.
8802 (restore_tree_status): Lose arg CONTEXT. All callers changed.
8803 Delete special handling for function_maybepermanent_obstack; simply
8804 free it if empty.
8805 Don't restore inline_obstacks.
8806 (permanent_allocation): Delete code that frees inline_obstacks.
8807 (print_inline_obstack_statistics): Delete function.
8808 (dump_tree_statistics): Don't call it.
8809 * varasm.c (struct varasm_status): New.
8810 (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
8811 last_pool, pool_offset, const_double_chain): Delete global
8812 variables, replace with accessor macros.
8813 (immed_double_const): Don't walk const_double_chain outside a
8814 function, but don't treat nested functions specially anymore.
8815 (immed_real_const_1): Likewise.
8816 (clear_const_double_mem): Don't treat nested functions specially.
8817 (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
8818 (save_varasm_status, restore_varasm_status): Delete functions.
8819 (init_varasm_status): New function.
8820 (force_const_mem): Don't treat nested functions specially.
8821 (find_pool_constant): Accept new arg F, search for constants in
8822 that function's pool rather than the current one. All callers
8823 changed.
8824 (get_pool_constant_for_function, get_pool_mode_for_function): New
8825 functions.
8826
8827 * i386.c (init_386_machine_status): New function, mostly from
8828 clear_386_stack_locals.
8829 (struct machine_functions): Rename element names to avoid name
8830 clashes.
8831 (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
8832 macros, replacing global variables.
8833 (clear_386_stack_locals, save_386_machine_status,
8834 restore_386_machine_status): Delete functions.
8835 (override_options): Initialize init_machine_status.
8836 * i386.h (INIT_EXPANDERS): Delete macro.
8837 (save_386_machine_status, restore_386_machine_status,
8838 clear_386_stack_locals): Delete declarations.
8839
8840 Sat Sep 4 16:56:28 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8841
8842 * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
8843 (doloop_begin): Simplify pattern and use emit_jump_insn.
8844 (doloop_end): Simplify pattern, switch operand order,
8845 and use emit_jump_insn.
8846
8847 Fri Sep 3 19:02:38 1999 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8848
8849 * function.h (struct function): Add new element LANGUAGE.
8850 (save_lang_status): Declare new variable.
8851 (restore_lang_status): Likewise.
8852 * function.c (save_lang_status): Define.
8853 (restore_lang_status): Likewise.
8854 (push_function_context_to): Call language-specific save function.
8855 (pop_function_context_from): Call language-specific restore function.
8856
8857 Fri Sep 3 01:16:18 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
8858
8859 * i386.md (movsf_1): Check REG_P before use of REGNO.
8860 (movdf_1): Likewise.
8861 (movxf_1): Likewise.
8862 (extendsfdf2): Likewise.
8863 (extendsfxf2): Likewise.
8864 (extenddfxf2): Likewise.
8865
8866 Sat Sep 4 11:37:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8867
8868 * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
8869 constants into memory.
8870 (c4x_shiftable_constant): New function.
8871 * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
8872 (c4x_shiftable_constant): Declare.
8873 * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
8874 ashlqi3_noclobber): Add new patterns and associated splitters.
8875
8876 Fri Sep 3 16:22:17 1999 Richard Henderson <rth@cygnus.com>
8877
8878 * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
8879 * dwarf2out.c (dwarf2out_frame_init): Likewise.
8880 * final.c (shorten_branches): Likewise.
8881 * global.c (global_alloc): Likewise.
8882 * haifa-sched.c (build_control_flow): Likewise.
8883 * stmt.c (check_for_full_enumeration_handling): Likewise.
8884 (estimate_case_costs): Likewise.
8885
8886 Fri Sep 3 15:49:56 1999 Mark Mitchell <mark@codesourcery.com>
8887
8888 * rtl.h (RTL_CHECKC2): Fix typo in last change.
8889
8890 Fri Sep 3 15:13:34 1999 Richard Henderson <rth@cygnus.com>
8891
8892 * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
8893 (recompute_reg_usage): Likewise.
8894 * rtlanal.c (find_regno_fusage): Likewise.
8895
8896 * rtl.c (rtl_check_failed_code1): New function.
8897 (rtl_check_failed_code2): New.
8898 * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
8899 (RTL_CHECKC1, RTL_CHECKC2): New.
8900 (XC*): New accessor macros.
8901 (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
8902 (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
8903 (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
8904 (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
8905 (TRAP_*, RANGE_INFO_*): Likewise.
8906
8907 Fri Sep 3 15:10:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8908
8909 * Makefile.in (tlink.o): Don't depend on toplev.h.
8910
8911 * collect2.c (c_file, o_file, export_file, import_file, ldout,
8912 output_file, nm_file_name, ldd_file_name, strip_file_name,
8913 c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
8914 add_prefix, prefix_from_env, prefix_from_string, do_wait,
8915 fork_execute, maybe_unlink, add_to_list,
8916 extract_init_priority, write_list, dump_list,
8917 dump_prefix_list, write_list_with_asm, write_c_file,
8918 write_c_file_stat, write_c_file_glob, scan_prog_file,
8919 scan_libraries, is_in_list, resolve_lib_name, use_import_list,
8920 ignore_library, extract_string, notice, dump_file, target_machine,
8921 collect_wait, collect_execute, libname, locatelib, aix_std_libs,
8922 read_file, print_load_command): Constify a char*.
8923 (fdopen, error, fatal, fatal_perror): Don't prototype.
8924 (my_strerror): Remove. All callers use xstrerror instead.
8925 (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
8926 (main): Add prototype. Constify lots of char* ptrs. Change calls
8927 to xcalloc/strcpy/strcat/... to one call to concat.
8928 (main, scan_prog_file, scan_libraries): Use an intermediate
8929 `const char **' to build an argv array.
8930 (mapfile, libselect, libcompare, locatelib): Add prototypes.
8931
8932 * collect2.h (collect_execute, collect_wait, dump_file,
8933 file_exists): Constify a char*.
8934 (ldout, c_file_name, temporary_obstack, permanent_obstack,
8935 temporary_firstobj, vflag, debug): Add extern declarations.
8936 (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
8937
8938 * tlink.c: Don't include toplev.h.
8939 (vflag, debug, ldout, c_file_name, temporary_obstack,
8940 permanent_obstack, temporary_firstobj): Don't declare.
8941 (tlink_execute, frob_extension, symbol_hash_lookup,
8942 file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
8943 recompile_files, read_repo_files, demangle_new_symbols,
8944 scan_linker_output): Constify a char*.
8945 (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
8946 do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
8947
8948 Fri Sep 3 18:09:24 1999 Andrew Haley <aph@cygnus.com>
8949
8950 * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
8951 (relative) rather than jsr (absolute) subroutine call insns.
8952 * config/m68k/m68k-coff.h: Ditto.
8953
8954 Fri Sep 3 17:24:31 1999 Richard Earnshaw <rearnsha@arm.com>
8955
8956 * arm.c (note_invalid_constants): No need to ignore ASMs, we can
8957 now rework these too.
8958 (arm_reorg): If an insn can't reach the end of the current pool,
8959 ensure that we emit that pool before the insn.
8960
8961 Fri Sep 3 09:14:32 1999 Marc Espie <espie@tetto.liafa.jussieu.fr>
8962
8963 * tlink.c (scan_linker_output): Skip the initial underscore in
8964 a mangled name if appropriate.
8965
8966 Fri Sep 3 01:28:33 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8967
8968 * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
8969 objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
8970 error_with_ivar, gen_declarator, create_builtin_decl,
8971 my_build_string, generate_descriptor_table, generate_ivars_list,
8972 generate_dispatch_table, check_protocols, TAG_GETCLASS,
8973 TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
8974 dump_base_name, lang_decode_option, build_encode_expr,
8975 start_class, finish_class, encode_pointer, really_start_method,
8976 gen_declaration, dump_interface, handle_class_ref, handle_impent):
8977 Constify.
8978 (objc_demangle, objc_printable_name, generate_struct_by_value_array):
8979 Add static prototypes.
8980 (build_objc_string_decl, build_selector_reference_decl,
8981 encode_bitfield, build_class_reference_decl): Remove unused
8982 parameter, all callers changed.
8983 (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
8984 (objc_printable_name): Likewise. Change second parameter to type int.
8985 (init_objc): Use memcpy, not bcopy, to avoid casts.
8986
8987 Thu Sep 2 21:49:52 1999 Richard Henderson <rth@cygnus.com>
8988
8989 * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
8990 reg notes on a deleted insn.
8991 * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
8992
8993 Thu Sep 2 20:18:12 1999 Jeffrey A Law (law@cygnus.com)
8994
8995 * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
8996
8997 Thu Sep 2 22:00:08 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
8998
8999 * stmt.c (expand_asm_operands): Fix index into inout_mode when
9000 reading it.
9001
9002 Thu Sep 2 13:00:48 1999 Richard Henderson <rth@cygnus.com>
9003
9004 * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
9005 * tm.texi (MD_ASM_CLOBBERS): Document it.
9006
9007 Thu Sep 2 10:22:40 1999 Richard Henderson <rth@cygnus.com>
9008
9009 * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
9010 * except.c (expand_rethrow): Remove unused variable.
9011 * expr.c (do_jump_by_parts_greater_rtx): Likewise.
9012 * flow.c (replace_insns): Likewise.
9013 (create_edge_list, verify_edge_list): Likewise.
9014 * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
9015
9016 * genemit.c (gen_expand): Only emit `operands[N]' decl if there
9017 is special code to run.
9018 (main): Don't define operands to emit_operand.
9019 * genrecog.c (main): Don't emit an empty peephole2_insn function.
9020
9021 * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
9022
9023 * alpha/alpha.h (normal_memory_operand): Declare.
9024 (reg_no_subreg_operand): Declare.
9025 * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
9026
9027 Thu Sep 2 10:19:20 1999 Richard Henderson <rth@cygnus.com>
9028
9029 * c-parse.in (compstmt_primary_start): New, broken out of first
9030 part of compstmt handling in primary.
9031 (primary): Use it. Add an error clause.
9032 (compstmt_nostart): Renamed from compstmt; remove all
9033 initial invocations of compstmt_start.
9034 (compstmt): New.
9035
9036 Thu Sep 2 01:35:50 1999 Marc Espie <espie@cvs.openbsd.org>
9037
9038 * protoize.c (gen_aux_info_file): Let pexecute call choose_temp_base if
9039 needed.
9040
9041 Thu Sep 2 00:43:59 1999 Finn Hakansson <finn@axis.com>
9042
9043 * combine.c (simplify_shift_const): Remove extra semicolon.
9044 * dwarf2out.c (remove_AT): Likewise.
9045 * expmed.c (expand_mult): Likewise.
9046 * gcov.c (create_program_flow_graph): Likewise.
9047 * reorg.c (mostly_true_jump): Likewise.
9048
9049 Thu Sep 2 00:06:43 1999 Jeffrey A Law (law@cygnus.com)
9050
9051 * fold-const.c (fold_range_test): Do not try to fold the range
9052 test if the rhs or lhs has side effects.
9053
9054 * combine.c (simplify_rtx): Recognize another case of a synthesized
9055 sign extension.
9056
9057 * varasm.c (mark_constant_pool): When marking indirect references,
9058 only look at SYMBOL_REFs.
9059
9060 * except.c (expand_fixup_region_end): Do not peek at
9061 INSN_UID (node->entry->outer_context) for flag_new_exceptions.
9062
9063 Thu Sep 2 13:52:53 1999 Geoffrey Keating <geoffk@cygnus.com>
9064
9065 * flags.h: New variables align_loops, align_loops_log,
9066 align_jumps, align_jumps_log, align_labels, align_labels_log,
9067 align_functions, align_functions_log.
9068 * toplev.c: Define them.
9069 (f_options): Handle -falign-* when they have no argument.
9070 (main): Add logic to set variables for -falign-functions,
9071 -falign-jumps, -falign-labels, -falign-loops.
9072 Make it -fsched-verbose=<n> and -finline-limit=<n>.
9073 (display_help): Change help to match options.
9074 * final.c (LABEL_ALIGN): Default to align_labels_log.
9075 (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
9076 (LOOP_ALIGN): Default to align_loops_log.
9077 (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
9078 (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
9079 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
9080 * varasm.c (assemble_start_function): Handle align_functions.
9081
9082 * config/sparc/sparc.h: Don't declare sparc_align_*.
9083 Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
9084 (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
9085 sparc.c.
9086 (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
9087 it's a promise.
9088 * config/sparc/sparc.c: Delete sparc_align_loops,
9089 sparc_align_jumps, sparc_align_funcs and the corresponding string
9090 variables.
9091 (sparc_override_options): Default align_functions on ultrasparc.
9092 Delete -malign-* handling.
9093
9094 * config/mips/mips.c (override_options): On 64-bit targets,
9095 try to align code to 64-bit boundaries.
9096 (print_operand): New substitution, %~,
9097 which aligns labels to align_labels_log.
9098 * config/mips/mips.md (div_trap_normal): Use %~.
9099 (div_trap_mips16): Likewise.
9100 (abssi): Likewise.
9101 (absdi2): Likewise.
9102 (ffssi2): Likewise.
9103 (ffsdi2): Likewise.
9104 (ashldi3_internal): Likewise.
9105 (ashrdi3_internal): Likewise.
9106 (lshrdi3_internal): Likewise.
9107 (casesi_internal): Likewise.
9108
9109 Wed Sep 1 21:13:48 1999 Richard Henderson <rth@cygnus.com>
9110
9111 Merge new ia32 backend from the branch!
9112
9113 * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
9114 See ChangeLog.P2 on new_ia32_branch for details.
9115
9116 * rtl.h (stack_regs_mentioned_p): Delete prototype.
9117 * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
9118 * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
9119 * i386/gas.h (ASM_FILE_START): Define.
9120 * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
9121 for name change of ix86_valid_decl_attribute_p.
9122 (i386_pe_valid_type_attribute_p): Similarly.
9123
9124 Wed Sep 1 18:21:23 1999 Richard Henderson <rth@cygnus.com>
9125
9126 * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
9127 to step through CC modes.
9128
9129 Wed Sep 1 20:18:06 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
9130
9131 * regmove.c (fixup_match_1): Don't move INSN in front of P if
9132 it would end up in the shadow of a live flags regsiter.
9133
9134 Wed Sep 1 11:32:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9135
9136 * reload1.c: Fix many indentation problems.
9137 * reload.c: Likewise.
9138
9139 Tue Aug 31 22:08:03 1999 Marc Espie <espie@cvs.openbsd.org>
9140
9141 * alias.c (non_local_reference_p): Constify fmt.
9142
9143 Tue Aug 31 23:19:35 1999 Michael Meissner <meissner@cygnus.com>
9144
9145 * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
9146
9147 Tue Aug 31 16:44:52 1999 Jeffrey A Law (law@cygnus.com)
9148
9149 * cse.c (delete_trivially_dead_insns): Do not delete stores to
9150 the internal_arg_pointer.
9151
9152 Tue Aug 31 13:35:42 1999 Richard Henderson <rth@cygnus.com>
9153
9154 Merge peephole2 from new_ia32_branch:
9155 * Makefile.in (STAGESTUFF): Add *.peephole2.
9156 (mostlyclean): Likewise.
9157 (recog.o): Depend on resource.h.
9158
9159 * final.c (peephole): Conditionalize decl on HAVE_peephole.
9160 (final_scan_insn): Likewise for the invocation of peephole.
9161 * genconfig.c (main): Look for peephole and peephole2 patterns.
9162 Emit HAVE_peephole* accordingly.
9163 * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
9164 * flags.h (flag_peephole2): Declare.
9165 * toplev.c: New pass peephole2. New flag -fpeephole2.
9166
9167 * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
9168 * gencodes.c (main): Likewise.
9169 * genextract.c (main): Likewise.
9170 * genoutput.c (main): Likewise.
9171 * genemit.c (max_operand_1): Look for the max scratch operand.
9172 (gen_rtx_scratch): New.
9173 (gen_exp): Use it, and pass on new arg subroutine_type.
9174 (gen_expand): Take max scratch into account.
9175 (gen_split): Emit peephole2 functions.
9176 (output_peephole2_scratch): New.
9177 (main): Include hard-reg-set.h and resource.h. Handle peephole2.
9178 * genrecog.c (routine_type): Add PEEPHOLE2.
9179 (IS_SPLIT): New.
9180 (make_insn_sequence): Match outer parallel for peep2. Discard
9181 top level scratches and dups.
9182 (add_to_sequence): New args insn_type and top. Update all callers.
9183 Handle toplevel peep2 matching insns.
9184 (write_subroutine): Handle peep2.
9185 (write_tree_1): Likewise.
9186 (write_tree): Likewise.
9187 (main): Likewise.
9188 (change_state): New arg afterward. Update all callers.
9189 Handle matching separate insns.
9190 * recog.c (recog_next_insn): New.
9191 (peephole2_optimize): New.
9192 * rtl.def (DEFINE_PEEPHOLE2): New.
9193 * resource.c (find_free_register): New argument last_insn. Use it
9194 to find a register available through the entire span.
9195 * resource.h (find_free_register): Update prototype.
9196
9197 Tue Aug 31 11:51:06 1999 Jim Kingdon <http://developer.redhat.com>
9198
9199 * i386.c (output_strlen_unroll): Don't write xops[7]
9200 label if it wasn't set.
9201
9202 1999-08-31 12:44 -0700 Zack Weinberg <zack@bitmover.com>
9203
9204 * cpplib.c (struct directive): Const-ify name pointer and
9205 function pointer prototype.
9206 (validate_else, do_define, do_line, do_include, do_undef,
9207 do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
9208 do_elif, do_endif, do_sccs, do_assert, do_unassert,
9209 do_warning): Const-ify second arg.
9210 (directive_table): Mark const. Reorder entries by frequency
9211 of usage, record statistics.
9212
9213 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
9214
9215 * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
9216 bounds- check RTL accesses if --enable-checking.
9217 (RTVEC_ELT): Bounds check if --enable-checking.
9218 (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
9219 XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
9220 (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
9221 GET_NUM_ELEM.
9222 (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
9223 X0BBDEF, X0ADVFLAGS): New macros for accessing '0' slots of RTXes.
9224
9225 (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
9226 (NOTE_SOURCE_FILE): Use X0STR.
9227 (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
9228 MEM_ALIAS_SET): Use X0INT.
9229 (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
9230 JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
9231 Use X0EXP.
9232 * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
9233 * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
9234 (rtl_check_failed_bounds, rtl_check_failed_type1,
9235 rtl_check_failed_type2, rtvec_check_failed_bounds): New
9236 functions.
9237 (fancy_abort): Fix comment.
9238
9239 * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
9240 (cse_insn): Decrement LABEL_NUSES for jump target before
9241 deleting jump insn.
9242 * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
9243 * final.c (alter_subreg): Compute regno before changing x to
9244 REG; set REGNO(x) after changing it.
9245 * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
9246 notes containing CONST_INTs.
9247 (delete_eh_regions): Use NOTE_EH_HANDLER.
9248 * function.c (put_reg_into_stack): Make reg a MEM before
9249 initializing it.
9250 (fixup_var_refs_insns): Save REG_NOTES (insn) in case we
9251 delete insn.
9252 (gen_mem_addressof): Make reg a MEM before initializing it.
9253 * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
9254 X0WINT.
9255 * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
9256 deleting an insn, not after.
9257 (block_alloc): Only look at PATTERN(insn) if we have to, and
9258 only if it's format class 'i'.
9259 * loop.c (check_dbra_loop): Check bl->biv->add_val is a
9260 CONST_INT before using its INTVAL.
9261 * print-rtl.c (print_rtx): Use X0STR.
9262 * regmove.c (fixup_match_1): Don't look at PATTERN of
9263 non-class-'i' insn chain elements.
9264 * reload.c (loc_mentioned_in_p): Take address of
9265 in->fld[1].rtx directly.
9266 * reload1.c (reload): Change reg to a MEM before initializing
9267 it.
9268 * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
9269 have no names.
9270 * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
9271
9272 Fri Aug 20 13:43:41 1999 Andrew Haley <aph@cygnus.com>
9273
9274 * config/mips/mips.c (machine_dependent_reorg): Force a
9275 barrier to output the local constant pool if a barrier hasn't
9276 been found at a natural point in the instruction stream.
9277
9278 Mon Aug 30 22:04:36 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9279
9280 * c-parse.in (language_string): Constify.
9281
9282 * dwarf2out.c (language_string): Remove declaration.
9283
9284 * dwarfout.c (language_string): Likewise.
9285
9286 * toplev.c (language_string, init_parse, finish_parse): Likewise.
9287
9288 * tree.h (language_string, init_parse, finish_parse): Declare.
9289
9290 * i386/sun386.h (language_string): Remove declaration.
9291
9292 * mips.h (language_string): Likewise.
9293
9294 * nextstep.h (language_string): Likewise.
9295
9296 * nextstep21.h (language_string): Likewise.
9297
9298 * rs6000.c (language_string): Likewise.
9299
9300 Mon Aug 30 20:56:08 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9301
9302 * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
9303 (getpwd.o): Remove target.
9304
9305 * getpwd.c: Delete file. Its in libiberty now.
9306
9307 * dbxout.c (getpwd): Don't prototype.
9308 * dwarf2out.c (getpwd): Likewise
9309 * dwarfout.c (getpwd): Likewise
9310 * final.c (getpwd): Likewise.
9311 * protoize.c (getpwd): Likewise.
9312
9313 Mon Aug 30 20:21:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9314
9315 * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
9316
9317 Mon Aug 30 16:07:49 1999 Richard Henderson <rth@cygnus.com>
9318
9319 * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
9320 mark_set_resources.
9321
9322 Mon Aug 30 12:23:53 1999 Jim Wilson <wilson@cygnus.com>
9323
9324 * fixinc/Makefile.in (subdir): New.
9325 (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
9326 (Makefile): New.
9327
9328 Mon Aug 30 01:02:09 1999 Jeffrey A Law (law@cygnus.com)
9329
9330 * emit-rtl.c (copy_rtx_if_shared): A MEM which references
9331 virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
9332 be shared.
9333
9334 * invoke.texi: Fix typo.
9335
9336 * dwarf2out.c (mem_loc_descriptor): New argument MODE. All callers
9337 changed. Handle autoincrement addressing modes.
9338
9339 * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
9340 just like we would the virtual incoming args register when
9341 integrating.
9342
9343 Sun Aug 29 23:17:54 1999 David Edelsohn <edelsohn@gnu.org>
9344
9345 * rs6000.h (ASM_FILE_START): Specify complete filename, including
9346 path, in .file directive.
9347
9348 Sun Aug 29 05:06:43 1999 Russ Allbery <rra@stanford.edu>
9349
9350 * gcc.texi (External Bugs): Remove obsolete note about Perl on
9351 SunOS.
9352
9353 1999-08-29 08:38 -0700 Zack Weinberg <zack@bitmover.com>
9354
9355 * stdbool.h: Make the typedef name _Bool, with bool a #defined
9356 alias.
9357
9358 Sun Aug 29 09:36:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9359
9360 * tree.c (tree_code_name): Constify a char*.
9361
9362 * tree.h (tree_code_name, decl_printable_name): Likewise.
9363
9364 * function.h (struct function): Likewise.
9365
9366 * toplev.c (decl_name, decl_printable_name): Likewise.
9367
9368 * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
9369
9370 * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
9371 (init_objc): Remove function pointer cast.
9372
9373 Sun Aug 29 05:01:17 1999 John David Anglin <dave@hiauly1.hia.nrc.ca>
9374
9375 * pa.md (interspace_jump): New pattern.
9376 (builtin_longjmp): New expander.
9377
9378 1999-08-29 Bernd Schmidt <bernds@cygnus.co.uk>
9379
9380 * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
9381 _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
9382 sf_to_df, df_to_sf): Fix potential problem with alias analysis.
9383
9384 Sun Aug 29 04:30:52 1999 John Wehle (john@feith.com)
9385
9386 * jump.c (delete_prior_computation): Also check calls
9387 to constant functions. Don't bother checking for a
9388 REG_UNUSED note before adding it.
9389 (delete_computation): Handle multi-word hard registers
9390 when synthesizing missing REG_DEAD notes for a register
9391 which is both set and used by an insn.
9392
9393 1999-08-29 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9394
9395 * loop.c (this_loop_info): New variable.
9396 (loop_has_call, loop_has_volatile, loop_has_tablejump,
9397 loop_continue, loops_enclosed): Replace with fields in this_loop_info.
9398 All uses updated.
9399 (prescan_loop, strength_reduce): New argument loop_info. All callers
9400 updated.
9401 (scan_loop): New variable loop_info, initialise to address of
9402 this_loop_info.
9403 (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
9404 Delete variable loop_has_multiple_exit targets and replace with
9405 field in this_loop_info.
9406 (find_and_verify_loops): Rename this_loop to this_loop_num.
9407 (strength_reduce): Delete loop_iteration_info. Replace variable
9408 loop_info with function argument of same name.
9409 (insert_bct): Rework test for loop being completely unrolled.
9410
9411 * loop.h (struct loop_info): New fields num, loops_enclosed,
9412 has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
9413 has_indirect_jump, and cont. Redefine use of unroll_number.
9414 (loop_unroll_number): Delete.
9415
9416 * unroll.c (unroll_loop): Store loop unroll count in unroll_number
9417 field of loop_info.
9418 (loop_iterations): Delete variable vtop and instead use
9419 loop_info->vtop computed in prescan_loop.
9420
9421 Sun Aug 29 03:27:23 1999 Scott Weikart <scott@igc.apc.org>
9422
9423 * fix-header.c (main): Do not pass a null pointer to strcmp.
9424
9425 Sun Aug 29 03:18:48 1999 William Bader (william@nscs.fast.net)
9426
9427 * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
9428 filenames.
9429 * configure: Rebuilt.
9430
9431 Sat Aug 28 19:36:05 1999 Jeffrey A Law (law@cygnus.com)
9432
9433 * jump.c (jump_optimize_1): Do not delete assignments to
9434 internal_arg_pointer.
9435 * cse.c (delete_trivially_dead_insns): Always consider a set of
9436 the internal_arg_pointer live.
9437
9438 Sat Aug 28 16:24:31 1999 Richard Henderson <rth@cygnus.com>
9439
9440 * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
9441 (update_life_info) [REG_WAS_0]: Search the original insns rather
9442 than the new insns for the note. Fix typos finding note_dest.
9443 If no dest found, discard the note rather than abort.
9444 [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
9445 (replace_insns): Remove the old insn list after update_life_info
9446 not before.
9447
9448 Sat Aug 28 16:20:12 1999 Richard Henderson <rth@cygnus.com>
9449
9450 * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
9451 sched_analyze_insn.
9452 (sched_analyze_1): Let add_dependence care for not adding dups.
9453 (sched_analyze_2): Likewise.
9454 (add_branch_dependences): Likewise.
9455
9456 Sat Aug 28 15:58:16 1999 Mumit Khan <khan@xraylith.wisc.edu>
9457
9458 * i386/winnt.c (export_list): New type.
9459 (exports_head): Rename to
9460 (export_head): this.
9461 (i386_pe_record_exported_symbol): Add is_data flag.
9462 (i386_pe_asm_file_end): Emit directive for exported variables.
9463 * i386/cygwin.h (i386_pe_record_exported_symbol): Update
9464 prototype.
9465 * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
9466 (ASM_DECLARE_OBJECT_NAME): Likewise.
9467 (ASM_DECLARE_FUNCTION_NAME): Likewise.
9468 * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
9469
9470 Fri Aug 27 15:35:24 1999 Jeffrey A Law (law@cygnus.com)
9471
9472 * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
9473
9474 * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
9475 operand.
9476
9477 Fri Aug 27 14:01:19 1999 Marc Espie <espie@cvs.openbsd.org>
9478
9479 * config/openbsd.h: Define SET_ASM_OP.
9480 * tm.texi: cross-reference SET_ASM_OP in the index.
9481
9482 1999-08-27 13:27 -0700 Zack Weinberg <zack@bitmover.com>
9483
9484 * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
9485 for a CONST_DOUBLE, at compile time. Initialize rtx_length
9486 and class_narrowest_mode at compile time. Kill init_rtl.
9487 Mark rtx_length, mode_class, mode_size, mode_unit_size,
9488 mode_wider_mode, mode_mask_array, class_narrowest_mode, and
9489 rtx_format as const. Kill all references to EXTRA_CC_MODES or
9490 EXTRA_CC_NAMES.
9491 * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
9492 format.
9493 * rtl.h: Declare rtx_length and rtx_format as const.
9494 * machmode.def: Define CC(). Use CC() to define CCmode. If
9495 EXTRA_CC_MODES is defined, expand it here.
9496 * machmode.h: Declare mode_class, mode_size, mode_unit_size,
9497 mode_wider_mode, mode_mask_array, and class_narrowest_mode as
9498 const. Kill all references to EXTRA_CC_MODES.
9499
9500 * toplev.c: Don't prototype or call init_rtl.
9501 * optabs.c: Don't call init_mov_optab.
9502 * genemit.c: Don't generate init_mov_optab. Don't call
9503 init_rtl.
9504 * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
9505 here.
9506 * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
9507 genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
9508 genrecog.c: Don't call init_rtl.
9509
9510 * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
9511 rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES. Use CC() in
9512 definition of EXTRA_CC_MODES.
9513
9514 * md.texi: Kill ref to EXTRA_CC_NAMES.
9515 * tm.texi: Document new way to define EXTRA_CC_MODES.
9516
9517 * genrecog.c: Do not look up the name of a define_split.
9518 (Unrelated bugfix.)
9519
9520 Fri Aug 27 17:03:42 1999 Nick Clifton <nickc@cygnus.com>
9521
9522 * config/v850/v850.md: Fix typo introduced by previous delta.
9523
9524 Fri Aug 27 09:48:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9525
9526 * gcc.c (fatal): Make definition static to match prototype.
9527
9528 Fri Aug 27 10:33:35 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9529
9530 * combine.c (get_last_value): Don't look for earlier sets if the last
9531 known set is somewhere in between the insns being combined.
9532
9533 Fri Aug 27 10:03:12 BST 1999 Nathan Sidwell <nathan@acm.org>
9534
9535 * configure.in: Don't use shell ! to negate exit codes
9536 * configure: Regenerate
9537
9538 Fri Aug 27 09:36:17 1999 Andreas Schwab <schwab@suse.de>
9539
9540 * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
9541 the fact that ALIGN is measured in bits, not bytes.
9542
9543 1999-08-27 00:27 -0700 Zack Weinberg <zack@bitmover.com>
9544
9545 * errors.c: New file; defines functions error, warning, and
9546 fatal, variables have_error and progname.
9547 * errors.h: New file; prototypes and decls for stuff in errors.c.
9548
9549 * Makefile: Add rules to build errors.o and
9550 $(HOST_PREFIX)errors.o. Link genconfig, gencodes, genemit,
9551 genopinit, genrecog, genextract, genpeep, genattr, and
9552 genoutput with errors.o. Add errors.h to deps of genconfig.o,
9553 gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
9554 genpeep.o, genattr.o, and genoutput.o.
9555
9556 * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
9557 genextract.c, genpeep.c, genattr.c: Include errors.h. Don't
9558 define or prototype fatal. Set progname at beginning of main.
9559 * genoutput.c: Likewise, and don't define or prototype error
9560 either.
9561
9562 * c-typeck.c (c_expand_start_case): Return immediately if exp
9563 is an ERROR_MARK.
9564 * fold-const.c (operand_equal_p): Return immediately if arg1
9565 or arg0 are ERROR_MARKs.
9566 * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
9567 fields of type ERROR_MARK when calculating if the record can
9568 go in a register.
9569
9570 Fri Aug 27 01:03:48 1999 Jim Kingdon <http://developer.redhat.com>
9571 with much help from Jeffrey A Law and Richard Henderson
9572
9573 * i386.md: In the 6 insns which call output_fix_trunc,
9574 earlyclobber operands[0].
9575
9576 Fri Aug 27 01:01:51 1999 Philip Blundell <pb@nexus.co.uk>
9577
9578 * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
9579 creating new registers.
9580
9581 1999-08-26 23:09 -0700 Zack Weinberg <zack@bitmover.com>
9582
9583 * i386.h: Declare ix86_cpu_string, ix86_arch_string,
9584 i386_reg_alloc_order, i386_regparm_string,
9585 i386_align_loops_string, i386_align_jumps_string,
9586 i386_align_funcs_string, i386_preferred_stack_boundary_string,
9587 and i386_branch_cost_string as type "const char *".
9588 * i386.c: Define all above strings as type "const char *".
9589
9590 Thu Aug 26 20:36:30 1999 Jim Wilson <wilson@cygnus.com>
9591
9592 * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
9593 when emitting alignment padding. Emit padding byte of 0 instead of 4.
9594
9595 Thu Aug 26 18:11:20 1999 Mark Mitchell <mark@codesourcery.com>
9596
9597 * tree.c (array_type_nelts): Don't create RTL_EXPRs from
9598 SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
9599
9600 Thu Aug 26 19:33:23 1999 Jim Wilson <wilson@cygnus.com>
9601
9602 * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
9603 (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
9604 (dwarf2out_line, dwarf2out_finish): Likewise.
9605 * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
9606
9607 Thu Aug 26 16:10:56 1999 Gavin Romig-Koch <gavin@cygnus.com>
9608
9609 * tree.c (lang_unsave_expr_now) : Correct return type.
9610 * tree.h (lang_unsave_expr_now) : Same.
9611
9612 Thu Aug 26 13:12:29 1999 Jeffrey A Law (law@cygnus.com)
9613
9614 * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
9615 instead of duplicating code.
9616
9617 Thu Aug 26 18:32:32 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9618
9619 * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
9620
9621 1999-08-26 09:42 -0700 Zack Weinberg <zack@bitmover.com>
9622
9623 * tree.h: fancy_abort always takes three args.
9624 * resource.c: Move include of system.h before toplev.h.
9625
9626 Thu Aug 26 09:46:16 1999 Nick Clifton <nickc@cygnus.com>
9627
9628 * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
9629 as SYMBOL_REFs.
9630
9631 1999-08-25 22:10 -0700 Zack Weinberg <zack@bitmover.com>
9632
9633 * system.h: Don't redefine abort or trim_filename.
9634 * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
9635 or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
9636 whether or not __FUNCTION__ is available.
9637 * tree.h: Duplicate rtl.h's definition of abort, for files
9638 that don't include rtl.h. Delete all code to perform type
9639 checking with a compiler other than GCC.
9640 * varray.h: Delete all code to perform type checking with a
9641 compiler other than GCC. Make VARRAY_CHECK() always evaluate
9642 its arguments exactly once, using a statement expression.
9643 Adjust the VARRAY_<type> accessor macros to match.
9644 * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
9645 (_fatal_insn, _fatal_insn_not_found): New fns, take info on
9646 caller's location. Define fatal_insn and fatal_insn_not_found
9647 as macros that use _fatal_insn and _fatal_insn_not_found.
9648 (fancy_abort, trim_filename): Kill prototypes.
9649
9650 * rtl.c (trim_filename): Move here from toplev.c.
9651 (fancy_abort): New function.
9652 (DIR_SEPARATOR): Provide default definition.
9653 * tree.c (tree_check_failed, tree_class_check_failed): Go
9654 through fancy_abort.
9655 (tree_check, tree_class_check, cst_or_constructor_check,
9656 expr_check): Delete.
9657 * varray.c (varray_check_failed): New function.
9658 * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
9659 _fatal_insn and _fatal_insn_not_found. Go through
9660 fancy_abort.
9661 (trim_filename, fancy_abort): Delete.
9662
9663 * builtins.c (expand_builtin_args_info): Report ICE with abort.
9664 * except.c (start_catch_handler): Report ICE with error/abort
9665 combo.
9666 * final.c (output_operand_lossage): Likewise.
9667 * flow.c (verify_flow_info): Likewise.
9668
9669 * gcc.c: Prototype fatal.
9670 * gengenrtl.c: Undef abort after including rtl.h not system.h.
9671 * genattr.c, genattrtab.c, genemit.c, genextract.c,
9672 genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
9673 Don't define fancy_abort.
9674
9675 Wed Aug 25 17:56:59 1999 Richard Henderson <rth@cygnus.com>
9676
9677 * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
9678 canonization.
9679
9680 Wed Aug 25 15:35:55 1999 Richard Henderson <rth@cygnus.com>
9681
9682 * m88k.h (VERSION_INFO2): Kill.
9683 (VERSION_STRING): Kill.
9684 (TM_RCS_ID): Kill.
9685 (VERSION_INFO1): Tidy.
9686 (TARGET_VERSION): Update.
9687 * m88k/dgux.h (VERSION_INFO2): Kill.
9688 (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
9689 * m88k/luna.h (VERSION_INFO1): Tidy.
9690 * m88k/sysv4.h (VERSION_INFO1): Likewise.
9691 * m88k.c (out_rcs_id, tm_rcs_id): Kill.
9692 (output_file_start): Adjust for death of VERSION_STRING.
9693
9694 1999-08-25 13:51 -0700 Jim Meyering <meyering@ascend.com>
9695
9696 * cpplib.c (detect_if_not_defined): New function.
9697 (do_if): Use it to detect potential once-only headers.
9698
9699 Wed Aug 25 14:00:18 1999 Jason Merrill <jason@yorick.cygnus.com>
9700
9701 * c-common.c (combine_strings): Always set TREE_CONSTANT.
9702
9703 Wed Aug 25 15:27:22 1999 Gavin Romig-Koch <gavin@cygnus.com>
9704
9705 * combine.c (nonzero_bits) : Allow single-ly set registers to be
9706 anywere in the function only if they are pseudos and set before
9707 being used (not live at the start of the function).
9708 (num_sign_bit_copies) : Same.
9709 (get_last_value_validate) : Same.
9710 (get_last_value) : Same.
9711
9712 Wed Aug 25 11:13:29 1999 Richard Henderson <rth@cygnus.com>
9713
9714 * loop.c (express_from): Try harder to unify (* c N) and (* c M)
9715 where N and M are constant and N is an integer multiple of M.
9716
9717 Wed Aug 25 13:55:47 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
9718
9719 * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
9720 (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
9721 sbitmap_union_of_preds): Add prototypes.
9722 * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
9723 the intersection of successors with the new flow graph structures.
9724 (sbitmap_intersection_of_preds): New function to compute the
9725 intersection of predecessors with the new flow graph structures.
9726 (sbitmap_union_of_succs): New function to compute the union of
9727 successors with the new flow graph structures.
9728 (sbitmap_union_of_preds): New function to compute the union of
9729 predecessors with the new flow graph structures.
9730 * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
9731 (expr_reaches_here_p): Use edge and basic_block structures instead
9732 of s_preds and s_succs.
9733 (compute_cprop_avinout): Use new sbitmap routines.
9734 (pre_expr_reaches_here_p): Use edge and basic_block structures instead
9735 of s_preds and s_succs.
9736 * flow.c (compute_flow_dominators): Compute dominators using
9737 edges and basic blocks instead of s_preds and s_succs.
9738
9739 Wed Aug 25 13:41:47 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
9740
9741 * lists.c (unused_insn_list, unused_expr_list): New file for
9742 maintaining various types of lists. New statics for maintaining a
9743 cache of available INSN_LIST and EXPR_LIST nodes.
9744 (free_list): Static function for freeing a list of INSN/EXPR nodes.
9745 (alloc_INSN_LIST): Function to get a free INSN_LIST node.
9746 (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
9747 (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
9748 (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
9749 (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
9750 (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
9751 (free_INSN_LIST_node): Free an individual INSN_LIST node.
9752 * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
9753 (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
9754 (remove_dependence, free_pending_lists): Use new global routines.
9755 (flush_pending_lists, sched_analyze_insn): Use new global routines.
9756 (sched_analyze, compute_block_backward_dependences): Use new routines.
9757 (sched_analyze_1, sched_analyze_2): Use new routines.
9758 (schedule_insns): Use new global routines.
9759 * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
9760 prototypes.
9761 (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
9762 (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
9763 prototypes.
9764 * toplev.c (rest_of_compilation): Initialize node cache.
9765 * Makefile.in (OBJS): Add lists.o to list of object files.
9766 (lists.o): Add dependancies.
9767
9768 Wed Aug 25 17:31:56 1999 Nick Clifton <nickc@cygnus.com>
9769
9770 * config/v850/v850.md: Fix compile time warning messages.
9771 * config/v850/v850.c: Fix compile time warning messages.
9772 * config/v850/v850.h: Fix compile time warning messages.
9773
9774 Wed Aug 25 09:44:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9775
9776 * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
9777 Remove unused prototype for `init_lengths'.
9778
9779 Wed Aug 25 09:32:31 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9780
9781 * calls.c (emit_call_1): Mark parameter `stack_size' with
9782 ATTRIBUTE_UNUSED.
9783 (expand_call): Initialize variable `insn'.
9784 (emit_library_call): Likewise for variable `high_to_save'.
9785 (emit_library_call_value): Likewise.
9786 (store_one_arg): Likewise for variables `lower_bound' and
9787 `upper_bound'.
9788
9789 * combine.c (try_combine): Likewise for variables `i2_code_number'
9790 and `other_code_number'.
9791 (find_split_point): Likewise for variables `pos', `unsignedp' and
9792 `inner'.
9793 (simplify_if_then_else): Likewise for variables `op' and `c1'.
9794 (simplify_and_const_int): Remove unused variable `width'.
9795 (merge_outer_ops): Likewise.
9796
9797 * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
9798 HOST_WIDE_INT' when comparing against one.
9799 (simplify_relational_operation): Likewise.
9800 (cse_insn): Initialize variables `src_eqv_volatile',
9801 `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
9802
9803 * final.c (init_final): Constify parameter `filename'.
9804 (final_start_function): Mark parameter `optimize' with
9805 ATTRIBUTE_UNUSED.
9806 (profile_function): Likewise for parameters `first' and `optimize'.
9807 (output_source_line): Likewise for parameter `file'.
9808
9809 * integrate.c (subst_constants): Cast a value to `size_t' when
9810 comparing against one.
9811 (mark_stores): Initialize variable `mode'. Cast a value to
9812 `size_t' when comparing against one.
9813
9814 * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
9815
9816 * loop.c (move_movables): Initialize variable `first'.
9817 (strength_reduce): Likewise for variable `increment'.
9818 (check_dbra_loop): Likewise for variable `comparison_val'. Cast a
9819 value to `size_t' when comparing against one.
9820 (load_mems): Initialize variable `end_label'.
9821
9822 * output.h (init_final): Constify parameter.
9823
9824 * reload.c (decompose): Initialize variable `base'.
9825
9826 * reload1.c (reload): Likewise for variable `is_scalar'.
9827 (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
9828 (choose_reload_regs): Initialize variable `mode'.
9829 (emit_reload_insns): Likewise for variable `store_insn'.
9830 (reload_cse_noop_set_p): Mark parameter `insn' with
9831 ATTRIBUTE_UNUSED.
9832 (reload_combine): Initialize variable `set'.
9833
9834 * unroll.c (unroll_loop): Likewise for variable `local_label'.
9835 (copy_loop_body): Cast a value to `size_t' when comparing against
9836 one.
9837
9838 * varasm.c (assemble_variable): Initialize variable `size_tree'.
9839 (const_hash): Add an `else abort()' in an if-else-if-else sequence.
9840 (remove_from_pending_weak_list): Mark parameter `name' with
9841 ATTRIBUTE_UNUSED.
9842
9843 Wed Aug 25 11:18:39 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9844
9845 * toplev.c (rest_of_compilation): Use decl_printable_name when opening
9846 gcse dump file.
9847
9848 Wed Aug 25 10:57:12 1999 Nick Clifton <nickc@cygnus.com>
9849
9850 * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
9851 (ASM_DECLARE_FUNCTION_NAME): Define.
9852 (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
9853 ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
9854 ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
9855 not already defined.
9856
9857 Wed Aug 25 01:36:11 1999 John David Anglin <dave@hiauly1.hia.nrc.ca>
9858
9859 * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
9860 of n_popped when call/call_value are not defined.
9861
9862 Wed Aug 25 01:25:14 1999 Jeffrey A Law (law@cygnus.com)
9863
9864 * tm.texi: GNU CC -> GCC conversion.
9865 (CC1_SPEC): Indicate it is used for all language front ends.
9866
9867 Tue Aug 24 23:43:03 1999 Mark Mitchell <mark@codesourcery.com>
9868
9869 * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
9870 NOTE_INSN_EH_REGION_END correctly.
9871
9872 Tue Aug 24 23:26:44 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
9873 Jeff Law <law@cygnus.com>
9874
9875 * loop.c (strength_reduce): Automatically unroll loops if the
9876 unrolled loop size is smaller than the rolled loop size.
9877
9878 * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
9879 and delete comment that code should be rewritten.
9880
9881 Tue Aug 24 22:56:35 1999 Jeffrey A Law (law@cygnus.com)
9882
9883 * haifa-sched.c (find_rgns): Mark a block found during the DFS search
9884 as reachable.
9885
9886 * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
9887
9888 Tue Aug 24 22:41:06 1999 Mumit Khan <khan@xraylith.wisc.edu>
9889
9890 * fixinc/mkfixinc.sh: Don't fix uwin headers.
9891 * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
9892 (LINK_SPEC): Add -u _main when building executables.
9893 (ASM_DECLARE_FUNCTION): Update from Cygwin.
9894 (ASM_FILE_END): Use the default for ix86-pe.
9895 * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
9896
9897 Tue Aug 24 20:49:47 1999 Art Haas <ahaas@neosoft.com>
9898
9899 * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
9900 and ASM_CLOSE_PAREN are empty strings.
9901
9902 Wed Aug 25 12:46:22 1999 Fred Fish <fnf@cygnus.com>
9903 Geoffrey Keating <geoffk@cygnus.com>
9904
9905 * Makefile.in (PREPROCESSOR_DEFINES): New macro.
9906 (protoize.o): Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
9907 (unprotoize.o): Ditto.
9908 (test-protoize-simple): Don't define STD_PROTO_DIR.
9909 * protoize.c: Use PARAMS rather than PROTO. Minor whitespace
9910 changes to make 'test-protoize-simple' pass.
9911 (STD_PROTO_DIR): Remove define.
9912 (STANDARD_EXEC_PREFIX): Supply default define.
9913 (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
9914 (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
9915 (target_version): New variable, init to DEFAULT_TARGET_VERSION.
9916 (GET_ENV_PATH_LIST): New macro.
9917 (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
9918 (do_processing): Initialize default_syscalls_dir using new
9919 macros. Use it to initialize syscalls_absolute_filename.
9920
9921 Tue Aug 24 16:58:15 1999 Richard Henderson <rth@cygnus.com>
9922
9923 * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
9924 B into a register before emit_conditional_move.
9925
9926 Tue Aug 24 15:37:03 1999 Richard Henderson <rth@cygnus.com>
9927
9928 * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
9929 as (+ (+ (* a b) (* d e)) c). Factor a common power-of-two
9930 multiplicand out of (+ (* a b) (* c d)).
9931
9932 Tue Aug 24 11:46:10 1999 Bob Manson <manson@cygnus.com>
9933 Richard Henderson <rth@cygnus.com>
9934
9935 * haifa-sched.c (split_hard_reg_notes): Move to flow.c
9936 (new_insn_dead_notes): Likewise.
9937 (update_n_sets): Likewise.
9938 (update_flow_info): Move to flow.c, renamed to update_life_info;
9939 extend to handle multiple source insns.
9940 * flow.c: Include resource.h
9941 (unlink_insn_chain): New.
9942 (split_hard_reg_notes): New.
9943 (maybe_add_dead_note): New.
9944 (maybe_add_dead_note_use): New.
9945 (find_insn_with_note): New.
9946 (new_insn_dead_notes): New.
9947 (update_n_sets): New.
9948 (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
9949 (maybe_remove_dead_notes): New.
9950 (update_life_info): New.
9951 (prepend_reg_notes): New.
9952 (replace_insns): New.
9953 * output.h (update_life_info): Declare.
9954 * recog.c (split_block_insns): Use update_life_info.
9955 * resource.c (find_free_register): Use reg_alloc_order, don't use
9956 fixed regs, make sure the mode is supported, don't use new regs.
9957 (reg_dead_p): New.
9958 * rtl.h (replace_insns): Declare.
9959
9960 Tue Aug 24 13:48:39 1999 Nathan Sidwell <nathan@acm.org>
9961
9962 * expr.c (expand_expr): Cope with COND_EXPRs with one
9963 non-returning branch.
9964
9965 Mon Aug 23 22:28:16 1999 Mark Mitchell <mark@codesourcery.com>
9966
9967 * expr.c (store_expr): Always pass down the target, even when not
9968 doing CSE.
9969
9970 1999-08-24 Nick Clifton <nickc@cygnus.com>
9971
9972 * configure.in: Define target_cpu_default for v850 targets.
9973 * configure: Regenerate
9974
9975 * config/v850/v850.h (TARGET_CPU_generic): Define.
9976 (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
9977 addresses are 4 byte aligned.
9978
9979 * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
9980 addresses.
9981
9982 Tue Aug 24 09:32:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9983
9984 * genattr.c (function_unit_desc): Constify a char*. Add prototype.
9985 (main): Add prototypes.
9986
9987 * genattrtab.c (substitute_address, write_const_num_delay_slots,
9988 attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
9989 (write_attr_get): Emit prototypes along with function definition.
9990 (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
9991 (write_complex_function): Emit static prototype along with
9992 function definition.
9993
9994 * genemit.c (gen_split): Emit prototypes along with function
9995 definition.
9996
9997 * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
9998 Likewise for predicates and `insn_operand_predicate'.
9999 (process_template): Emit static prototype along with function
10000 definition.
10001
10002 * genrecog.c (make_insn_sequence): Constify a char*. Add
10003 prototypes for get_split_*().
10004 (write_subroutine): Emit prototypes along with function
10005 definition.
10006
10007 Tue Aug 24 12:35:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10008
10009 * gcse.c (find_avail_set): Follow chains of register-register copies.
10010 Use oprs_not_set_p to guarantee that the returned value can be
10011 substituted.
10012 (cprop_insn): Don't verify the return value of find_avail_set with
10013 oprs_not_set_p.
10014
10015 * gcse.c (cprop_jump): New function, broken out of cprop_insn.
10016 (cprop_cc0_jump): New function.
10017 (cprop_insn): Break out new function cprop_jump and use it.
10018 Also use cprop_cc0_jump for machines with CC0.
10019 (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
10020
10021 * tree.h (current_function_calls_setjmp,
10022 current_function_calls_longjmp): Delete declarations.
10023 * dsp16xx.c: Include "function.h".
10024 * elxsi.c: Likewise.
10025 * gmicro.c: Likewise.
10026 * h8300.c: Likewise.
10027 * i370.c: Likewise.
10028 * m32r.c: Likewise.
10029 * mn10200.c: Likewise.
10030 * mn10300.c: Likewise.
10031 * ns32k.c: Likewise.
10032 * spur.c: Likewise.
10033 * v850.c: Likewise.
10034
10035 * rtl.h (rtx_equal_function_value_matters): Declare.
10036 * toplev.c (rtx_equal_function_value_matters): Don't declare.
10037 * cse.c: Likewise.
10038 * function.c: Likewise.
10039 * emit-rtl.c: Likewise.
10040
10041 Tue Aug 24 02:47:44 1999 Jeffrey A Law (law@cygnus.com)
10042
10043 * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
10044 call.
10045
10046 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10047
10048 * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
10049 exactly.
10050
10051 Mon Aug 23 23:35:52 1999 Matthias Klose <doko@cs.tu-berlin.de>
10052
10053 * cpp.texi: Add a node documenting macro varargs (copied
10054 from extend.texi).
10055
10056 1999-08-23 22:23 -0700 Zack Weinberg <zack@bitmover.com>
10057
10058 * cppspec.c: Put a null pointer at the end of the new argv.
10059
10060 Mon Aug 23 21:23:24 1999 Jeffrey A Law (law@cygnus.com)
10061
10062 * configure.in: Remove code to select/de-select the haifa
10063 scheduler. Every scheduled port gets haifa now.
10064 * configure: Rebuilt.
10065 * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
10066 * sched.c Deleted.
10067 * Makefile.in: Corresponding changes.
10068
10069 Mon Aug 23 16:04:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10070
10071 * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
10072 All callers changed.
10073 (prepare_float_lib_cmp): Likewise.
10074 Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
10075 * expr.h (emit_float_lib_cmp): Delete declaration.
10076 * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
10077 * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
10078 * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
10079 specially.
10080 (cmptf): Now conditional on TARGET_HARD_QUAD.
10081
10082 Fri Aug 20 17:52:27 1999 Jim Wilson <wilson@cygnus.com>
10083
10084 * resource.c (mark_target_live_regs): Use
10085 PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
10086
10087 Fri Aug 20 19:07:55 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10088
10089 * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
10090
10091 * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
10092
10093 * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
10094
10095 Fri Aug 20 18:53:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10096
10097 * rtl.h (rtx_format): Constify a char*.
10098
10099 * rtl.c (rtx_format): Likewise.
10100 (copy_rtx, copy_most_rtx, read_rtx): Likewise.
10101 (init_rtl): Use accessor macro, not `rtx_format'.
10102
10103 * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
10104 char*.
10105
10106 * caller-save.c (mark_referenced_regs): Likewise.
10107
10108 * combine.c (subst, make_compound_operation, known_cond,
10109 gen_rtx_combine, update_table_tick, get_last_value_validate,
10110 use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
10111
10112 * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
10113 refers_to_p, canon_reg, fold_rtx, cse_process_notes,
10114 count_reg_usage): Likewise.
10115
10116 * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
10117 Likewise.
10118
10119 * final.c (leaf_renumber_regs_insn): Likewise.
10120
10121 * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
10122 dump_edge_info, count_reg_references): Likewise.
10123
10124 * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
10125 fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
10126 Likewise.
10127
10128 * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
10129 oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
10130 add_label_notes): Likewise.
10131
10132 * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
10133 clear_struct_flag, count_sub_rtxs, count_alternatives,
10134 compares_alternatives_p, contained_in_p, walk_attr_value,
10135 write_expr_attr_cache): Likewise.
10136
10137 * genconfig.c (walk_insn_part): Likewise.
10138
10139 * genemit.c (max_operand_1, gen_exp): Likewise.
10140
10141 * genextract.c (walk_rtx): Likewise.
10142
10143 * genflags.c (num_operands): Likewise.
10144
10145 * genoutput.c (scan_operands): Likewise.
10146
10147 * genpeep.c (match_rtx): Likewise.
10148
10149 * genrecog.c (add_to_sequence): Likewise.
10150
10151 * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
10152 Likewise.
10153
10154 * integrate.c (save_constants, copy_for_inline,
10155 copy_rtx_and_substitute, subst_constants, restore_constants):
10156 Likewise.
10157
10158 * jump.c (mark_jump_label, invert_exp, redirect_exp,
10159 rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
10160
10161 * local-alloc.c (contains_replace_regs, memref_referenced_p):
10162 Likewise.
10163
10164 * loop.c (record_excess_regs, rtx_equal_for_loop_p,
10165 add_label_notes, replace_call_address, count_nonfixed_reads,
10166 invariant_p, find_single_use_in_loop, find_mem_givs,
10167 find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
10168 Likewise.
10169
10170 * print-rtl.c (reg_names, print_rtx): Likewise.
10171
10172 * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
10173
10174 * reg-stack.c (stack_regs_mentioned_p, record_label_references,
10175 record_reg_life_pat, swap_rtx_condition, goto_block_pat,
10176 print_blocks): Likewise.
10177
10178 * regclass.c (fix_register, record_address_regs,
10179 reg_scan_mark_refs): Likewise.
10180
10181 * regmove.c (stable_but_for_p): Likewise.
10182
10183 * reload.c (loc_mentioned_in_p, operands_match_p,
10184 find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
10185 copy_replacements, refers_to_regno_for_reload_p,
10186 refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
10187 reload_when_needed_name, reg_class_names, debug_reload_to_stream):
10188 Likewise.
10189
10190 * reload1.c (eliminate_regs, scan_paradoxical_subregs,
10191 delete_address_reloads_1, count_occurrences,
10192 reload_cse_mem_conflict_p, reload_combine_note_use,
10193 add_auto_inc_notes): Likewise.
10194
10195 * resource.c (mark_referenced_resources, mark_set_resources):
10196 Likewise.
10197
10198 * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
10199 reg_mentioned_p, regs_set_between_p, modified_between_p,
10200 modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
10201 rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
10202 may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
10203 jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
10204
10205 * sched.c (sched_analyze_2, attach_deaths): Likewise.
10206
10207 * stupid.c (stupid_mark_refs): Likewise.
10208
10209 * unroll.c (remap_split_bivs): Likewise.
10210
10211 * varasm.c (mark_constants): Likewise.
10212
10213 * a29k/a29k.c (uses_local_reg_p): Likewise.
10214
10215 * alpha/alpha.c (summarize_insn): Likewise.
10216
10217 * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
10218 eliminate_lr2ip): Likewise.
10219
10220 * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
10221
10222 * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
10223 reg_mentioned_in_mem): Likewise.
10224
10225 * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
10226 symbolic_reference_mentioned_p): Likewise.
10227
10228 * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
10229
10230 * sh/sh.c (regs_used, mark_use): Likewise.
10231
10232 * vax/vax.c (vax_rtx_cost): Likewise.
10233
10234 Fri Aug 20 18:38:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10235
10236 * machmode.h (mode_name): Constify a char*.
10237
10238 * rtl.c (mode_name): Likewise.
10239
10240 * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
10241
10242 * optabs.c (init_libfuncs): Constify a char*.
10243
10244 * print-tree.c (mode_name): Remove redundant declaration.
10245 (print_node): Use accessor macro, not `mode_name'.
10246
10247 * reload1.c (dump_needs): Constify a char*. Use accessor macro,
10248 not `mode_name'.
10249 (new_spill_reg): Constify a char*.
10250
10251 * tree.c (mode_name): Remove redundant declaration.
10252
10253 Fri Aug 20 18:31:26 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10254
10255 * rtl.c (rtx_name): Constify a char*.
10256
10257 * rtl.h (rtx_name, fix_sched_param): Likewise.
10258
10259 * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
10260 (mypr): Use accessor macro, not `rtx_name'.
10261
10262 * genemit.c (print_code): Constify a char*.
10263
10264 * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
10265
10266 * genpeep.c (print_code): Constify a char*.
10267
10268 * genrecog.c (print_code): Likewise.
10269
10270 * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
10271 end_bb): Add static prototype.
10272 (draw_edge): Constify a char*.
10273 (end_bb): Remove unused parameter.
10274
10275 * haifa-sched.c (fix_sched_param, safe_concat, print_exp
10276 print_block_visualization): Constify a char*.
10277
10278 Fri Aug 20 15:02:10 1999 Mark Mitchell <mark@codesourcery.com>
10279
10280 * c-common.c (c_get_alias_set): Update comment.
10281
10282 1999-08-20 Andreas Jaeger <aj@arthur.rhein-neckar.de>
10283
10284 * linux.h (LIB_SPEC): Added.
10285
10286 Fri Aug 20 22:32:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10287
10288 * config/c4x/c4x.h (STARTFILE_SPEC): Don't define.
10289
10290 1999-08-19 18:43 -0700 Zack Weinberg <zack@bitmover.com>
10291
10292 * tree.c (expr_check): Fix typo in last change.
10293
10294 1999-08-19 14:44 -0700 Zack Weinberg <zack@bitmover.com>
10295
10296 * rtl.def (NOTE): Change format to "iuu0n".
10297 (ADDR_DIFF_VEC): Change format to "eEee0".
10298 (ADDRESSOF): Change format to "eit".
10299
10300 * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
10301 (RTVEC_ELT): Change to match.
10302 (XVECEXP): Use XVEC and RTVEC_ELT.
10303 (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
10304 ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
10305 (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
10306 CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
10307 TRAP_CONDITION, TRAP_CODE): Use XEXP.
10308 (INTVAL): Use XWINT.
10309 (ADDRESSOF_DECL): Use XTREE.
10310 (SET_ADDRESSOF_DECL): Delete.
10311 (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
10312 NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill. These have been
10313 ifdefed out since 2.6 at least.
10314 (gen_rtvec_vv): Delete prototype.
10315
10316 * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
10317 not rtunion.
10318 (copy_most_rtx): Handle 't' format letter.
10319 * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
10320 (gen_rtvec_vv): Delete function. All callers changed to use
10321 gen_rtvec_v instead.
10322 * print-rtl.c (print_rtx): Move special casing of NOTEs to
10323 the '0' format letter.
10324
10325 * function.c (gen_mem_addressof): Don't use
10326 SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
10327 instead.
10328 * integrate.c (copy_rtx_and_substitute): Likewise.
10329 Copy 't' slots with XTREE.
10330 (subst_constants): Treat 't' slots like '[swi]' slots.
10331 * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
10332 * jump.c (rtx_equal_for_thread_p): Likewise.
10333 * rtlanal.c (rtx_equal_p): Likewise.
10334 * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
10335 only four arguments.
10336 * gengenrtl.c (type_from_format): Provide correct types for
10337 'b' and 't' slots.
10338
10339
10340 * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
10341 If a recent gcc is in use (always in stage2 and beyond), use
10342 statement expressions, so we don't make a function call unless
10343 the check fails. Evaluate arguments exactly once.
10344 (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
10345 TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
10346 Delete.
10347 (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
10348 they evaluate their arguments exactly once, irrespective of
10349 the compiler in use.
10350
10351 * tree.c [ENABLE_CHECKING]: Define whichever set of functions
10352 is used by the currently-enabled check macros. This is:
10353 (tree_check_failed, tree_class_check_failed): For gcc.
10354 (tree_check, tree_class_check, cst_or_constructor_check,
10355 expr_check): For other compilers.
10356
10357 * gencheck.c: Do not define any *_CHECK1 macros.
10358
10359 Thu Aug 19 14:42:38 1999 Mike Stump <mrs@wrs.com>
10360 Mark Mitchell <mark@codesourcery.com>
10361
10362 * c-common.c (c_get_alias_set): Fix support for poitners and
10363 references.
10364
10365 Thu Aug 19 11:51:22 EDT 1999 John Wehle (john@feith.com)
10366
10367 * alias.c: Include tree.h.
10368 (nonlocal_reference_p, mark_constant_function): New functions.
10369 * flow.c (life_analysis): Call mark_constant_function.
10370 * rtl.h (mark_constant_function): Declare it.
10371
10372 Thu Aug 19 15:02:01 1999 Nick Clifton <nickc@cygnus.com>
10373
10374 * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
10375 unrecognisable switches.
10376
10377 Wed Aug 18 23:31:57 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
10378
10379 * loop.c (recombine_givs): Set ix field after sorting.
10380 (recombine_givs): Remove bogus index / giv lockstep looping.
10381
10382 Wed Aug 18 18:20:40 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10383
10384 * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
10385 on CODE.
10386 (emit_store_flag_force): Use do_compare_rtx_and_jump.
10387 (do_cmp_and_jump): Formatting fixes.
10388 * expr.c (do_compare_and_jump): Renamed from compare; changed to call
10389 do_compare_rtx_and_jump instead of compare_from_rtx.
10390 (do_compare_rtx_and_jump): New function; mostly copied from
10391 compare_from_rtx.
10392 (do_jump_for_compare): Delete.
10393 (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
10394 MIN_EXPR.
10395 (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
10396 of compare/do_jump_for_compare pairs.
10397 (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
10398 (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
10399 compare_from_rtx/do_jump_for_compare pairs.
10400 (do_jump_by_parts_equality): Likewise.
10401 (do_jump_by_parts_equality_rtx): Likewise.
10402 * expr.h (do_compare_rtx_and_jump): Declare.
10403 * optabs.c (prepare_cmp_insn): New function, contains most of the code
10404 that used to be in emit_cmp_insn.
10405 (cmp_available_p): New function.
10406 (prepare_operand): New function.
10407 (emit_cmp_and_jump_insn_1): New function, contains some code that used
10408 to be in emit_cmp_insn.
10409 (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
10410 parameters to be pointers; don't emit final compare but modify some of
10411 the values pointed to by the args so the caller can perform the
10412 correct comparison.
10413 (expand_binop): Call emit_store_flag_force with signed forms of
10414 comparison code.
10415 (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
10416 emit_jump_insn pair.
10417 (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
10418 emit_cmp_and_jump_insn_1. Call emit_queue.
10419 (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
10420 arg.
10421 * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
10422 jump sets cc0 before deleting it.
10423 * integrate.c (expand_inline_function): Likewise.
10424 * unroll.c (unroll_loop): Similar changes in several places.
10425 (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
10426 before deleting it.
10427
10428 Wed Aug 18 06:37:44 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10429
10430 * Makefile.in (insn-recog.o): Update dependencies.
10431 * genrecog.c (main): Make generated file include "function.h".
10432
10433 Sat Aug 14 00:54:57 1999 Geoffrey Keating <geoffk@cygnus.com>
10434
10435 * cse.c (cse_insn): Call never_reached_warning when a jump is
10436 changed to be unconditional.
10437 * flags.h: Declare warn_notreached.
10438 * flow.c (delete_block): Call never_reached_warning when
10439 a block is deleted.
10440 * jump.c (delete_barrier_successors): Call never_reached_warning
10441 when we delete everything after a BARRIER.
10442 (never_reached_warning): New function.
10443 * rtl.h: Declare never_reached_warning.
10444 * toplev.c (warn_notreached): New variable.
10445 (lang_independent_options): Set warn_notreached
10446 when -Wunreachable-code.
10447 (compile_file): We need line numbers for -Wunreachable-code.
10448
10449 Tue Aug 17 22:06:11 1999 Jan Hubicka <hubicka@freesoft.cz>
10450
10451 * haifa-sched.c (insn_unit): Fix typo on out of range test.
10452 * sched.c (insn_unit): Likewise.
10453
10454 Tue Aug 17 21:57:23 1999 Andreas Schwab <schwab@suse.de>
10455
10456 * combine.c (distribute_notes): Handle REG_EH_RETHROW.
10457
10458 Tue Aug 17 17:39:43 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
10459
10460 * flow.c (create_edge_list): Use xmalloc, not malloc.
10461
10462 Tue Aug 17 01:40:54 1999 Loren Rittle <ljrittle@acm.org>
10463
10464 * fixinc/inclhack.def (no_double_slash): Do not trash single-line
10465 C-style comments. Do not lose the character before double slash.
10466
10467 Mon Aug 16 18:08:22 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
10468
10469 * basic-block.h (struct edge_list): Stucture to maintain a vector
10470 of edges.
10471 (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
10472 INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
10473 (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
10474 New function prototypes.
10475 * flow.c (create_edge_list): Function to create an edge list.
10476 (free_edge_list): Discards memory used by an edge list.
10477 (print_edge_list): Debug output showing an edge list.
10478 (verify_edge_list): Internal consistency check for an edge list.
10479 (find_edge_index): Function to find an edge index for a pred and succ.
10480
10481 Mon Aug 16 11:56:36 1999 Mark Mitchell <mark@codesourcery.com>
10482
10483 * tree.c (type_hash_add): Use permalloc to allocate nodes in the
10484 hashtable.
10485
10486 Mon Aug 16 17:04:15 1999 Jorn Rennecke <amylaar@cygnus.co.uk>
10487
10488 * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
10489
10490 Fri Aug 13 15:20:43 1999 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
10491
10492 * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
10493
10494 Fri Aug 13 10:21:28 1999 Nick Clifton <nickc@cygnus.com>
10495
10496 * toplev.c (rest_of_compilation): Allow machine dependent
10497 reorganisation pass to place information into the RTL dump
10498 file if it so wishes.
10499
10500 Sun Aug 15 12:41:21 1999 Jim Wilson <wilson@cygnus.com>
10501
10502 * explow.c (hard_function_value): Use VOIDmode instead of
10503 MAX_MACHINE_MODE.
10504 * stmt.c (expand_return): Likewise.
10505 * stor-layout.c (get_best_mode): Likewise.
10506
10507 * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
10508 emit call instead of emit_insn call.
10509
10510 Sat Aug 14 15:04:06 1999 Mumit Khan <khan@xraylith.wisc.edu>
10511
10512 * configure.in: Handle --disable/enable-win32-registry.
10513 * install.texi: Document --disable/enable-win32-registry.
10514 * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
10515 (WIN32_REGISTRY_KEY): New macro.
10516 * prefix.c: Use to enable/disable win32-specific code.
10517 (lookup_key): Use versioned key.
10518 * configure: Regenerate.
10519 * config.in: Likewise.
10520
10521 Fri Aug 13 17:41:55 1999 Jason Merrill <jason@yorick.cygnus.com>
10522
10523 * cpplib.c (read_line_number): New fn, split out of...
10524 (do_line): Here.
10525
10526 Fri Aug 13 14:18:27 1999 Gavin Romig-Koch <gavin@cygnus.com>
10527
10528 tree.c (lang_unsave_expr_now) : New.
10529 (unsave_expr_now): Call lang_unsave_expr_now.
10530 tree.h (lang_unsave_expr_now) : New.
10531
10532 Fri Aug 13 00:49:46 1999 Jason Merrill <jason@yorick.cygnus.com>
10533
10534 * toplev.c (flag_new_exceptions): On by default.
10535
10536 1999-08-13 Michael Meissner <meissner@cygnus.com>
10537
10538 * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
10539
10540 Fri Aug 13 01:29:57 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
10541
10542 * dwarfout.c (fundamental_type_code): Return FT_boolean for
10543 INTEGER_TYPE with precision==1, it's __java_boolean.
10544
10545 Thu Aug 12 23:51:04 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
10546
10547 * global.c (prune_preferences): Move some invariants out of the
10548 inner loop.
10549
10550 Thu Aug 12 15:30:29 1999 Jesse Perry (jap@unx.dec.com)
10551
10552 * configure.in (alpha*-dec-osf*): Add osf5.
10553
10554 Sun Aug 1 22:24:03 1999 Philip Blundell <philb@gnu.org>
10555
10556 * configure.in: Rework handling of ARM GNU/Linux slightly.
10557 (arm*-*-linux-gnuoldld): New target.
10558 * configure: Regenerate.
10559 * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
10560 arm-*-elf. Mention that arm-*-linux-gnuaout is obsolete.
10561 * config/arm/linux-oldld.h: New file.
10562 * config/arm/linux-elf26.h: Don't include linux-elf.h.
10563 (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
10564 Don't define.
10565 * config/arm/linux-elf.h (ASM_SPEC): Define.
10566 (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
10567 SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
10568 for 26-bit APCS and old linker.
10569 (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
10570 `arm_elf'.
10571 (FP_DEFAULT): Define to FP_SOFT3 for all machines.
10572 * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
10573 don't define `arm' or `arm_elf'.
10574 * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
10575 MULTILIB_DIRNAMES): Define. Fix typo in comment.
10576
10577 Thu Aug 12 10:14:47 1999 Andreas Schwab <schwab@suse.de>
10578
10579 * rtl.texi: Fix typo.
10580
10581 Wed Aug 11 23:50:57 1999 Jason Merrill <jason@yorick.cygnus.com>
10582
10583 * invoke.texi (C++ Dialect Options): Add -fms-extensions.
10584
10585 Wed Aug 11 12:59:37 1999 Mark Mitchell <mark@codesourcery.com>
10586
10587 * extend.texi (C++ Signatures): Remove node.
10588 * invoke.texi: Remove discussion of -fhandle-signatures,
10589 signature, sigof, __signature__, and __sigof__.
10590
10591 Wed Aug 11 03:38:25 1999 Jeffrey A Law (law@cygnus.com)
10592
10593 * Makefile.in (JAVAGC): Removed.
10594
10595 Wed Aug 11 02:13:26 1999 Mumit Khan <khan@xraylith.wisc.edu>
10596
10597 * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
10598
10599 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
10600
10601 * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
10602
10603 1999-08-11 Richard Earnshaw (rearnsha@arm.com)
10604
10605 * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
10606 a register that is already known to be a pointer.
10607
10608 1999-08-11 Bruce Korb <ddsinc09@ix.netcom.com>
10609
10610 * fixinc/inclhack.tpl: Only install assert.h conditionally.
10611 * fixinc/inclhack.sh: Regenerated.
10612 * fixinc/fixincl.sh: Regenerated.
10613
10614 Wed Aug 11 00:34:22 1999 Joe Buck <jbuck@synopsys.com>
10615
10616 * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
10617 Fix documentation of -ansi flag to describe its C++ behavior.
10618 Remove bogus reference to GCC 2.9.
10619
10620 Tue Aug 10 17:19:02 1999 Jim Wilson <wilson@cygnus.com>
10621
10622 * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
10623 note if it is non-NULL.
10624
10625 Tue Aug 10 10:47:42 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
10626
10627 * except.h (eh_nesting_info): Add new structure defintion.
10628 (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
10629 (reachable_handlers, update_rethrow_references): Add function
10630 prototypes.
10631 * rtl.h (struct rtvec_def): Update comments. REG_EH_RETHROW takes
10632 a rethrow symbol instead of an integer exception region number.
10633 * flow.c (Make_edges): Use new exception nesting routines to determine
10634 which handlers are reachable from a CALL or asynchronous insn.
10635 Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
10636 goto receivers.
10637 (delete_eh_regions): Update rethrow labels, and don't delete
10638 regions which are the target of a rethrow.
10639 * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
10640 avoid overloading the SYMBOL_REF_USED flag.
10641 (rethrow_symbol_map): Use new rethrow_ref field.
10642 (rethrow_used): Use new rethrow_ref field.
10643 (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
10644 of an integer. Fix formatting.
10645 (output_exception_table_entry): Use new rethrow_ref field.
10646 (can_throw): Check for EH_REGION_NOTE before deciding
10647 whether a CALL can throw or not.
10648 (scan_region): Call rethrow_used() instead of accessing data structure.
10649 (update_rethrow_references): New function to make sure only regions
10650 which are still targets of a rethrow are flagged as such.
10651 (process_nestinfo): New static function to initialize a handler
10652 list for a specific region.
10653 (init_eh_nesting_info): New function to allocate and initialize
10654 the list of all EH handlers reachable from all regions.
10655 (reachable_handlers): New function to retrieve the list of handlers
10656 reachable from a specific region and insn.
10657 (free_eh_nesting_info): New function to dispose of a list of
10658 reachable handlers.
10659
10660 Tue Aug 10 10:39:31 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
10661
10662 * flow.c (split_edge): Set JUMP_LABEL field.
10663 (commit_one_edge_insertion): Set head correctly for insert_before.
10664 When inserting insns, update insn block numbers if allocated.
10665
10666 Tue Aug 10 09:26:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10667
10668 * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
10669 retry_incomplete_types): Add static prototype.
10670 (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
10671 dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
10672 dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
10673 dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
10674 dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
10675 Constify a char*.
10676
10677 * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
10678 dwarf2out_start_source_file, dwarf2out_line): Likewise.
10679
10680 Tue Aug 10 09:21:46 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10681
10682 * output.h (assemble_name): Constify a char*.
10683
10684 * varasm.c (UNIQUE_SECTION, assemble_start_function,
10685 assemble_variable, assemble_name): Likewise.
10686
10687 * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
10688
10689 * arm/pe.c (arm_pe_unique_section): Likewise.
10690
10691 * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
10692
10693 * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
10694
10695 * i386/interix.c (i386_pe_unique_section): Likewise.
10696
10697 * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
10698
10699 * i386/winnt.c (i386_pe_unique_section): Likewise.
10700
10701 * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
10702
10703 * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
10704
10705 * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
10706
10707 * pa/pa.c (output_call): Likewise.
10708
10709 * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
10710
10711 * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
10712
10713 * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
10714 Likewise.
10715
10716 * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
10717 Likewise.
10718
10719 * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
10720
10721 * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
10722 STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
10723
10724 * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
10725
10726 Mon Aug 9 19:54:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10727
10728 * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
10729
10730 Mon Aug 9 19:36:00 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10731
10732 * tree.h (lang_identify): Constify a char*.
10733 (print_error_function): Add extern prototype. Constify a char*.
10734
10735 * c-lang.c (lang_identify): Constify a char*.
10736
10737 * objc/objc-act.c (lang_identify): Constify a char*.
10738
10739 Mon Aug 9 16:21:53 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10740
10741 * genpeep.c (main): Make generated file include "function.h".
10742 * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
10743
10744 Mon Aug 9 10:08:50 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10745
10746 * Makefile.in: Update dependencies.
10747 * alias.c: Include "function.h"
10748 * c-decl.c: Likewise.
10749 * caller-save.c: Likewise.
10750 * calls.c: Likewise.
10751 * combine.c: Likewise.
10752 * cse.c: Likewise.
10753 * explow.c: Likewise.
10754 * final.c: Likewise.
10755 * global.c: Likewise.
10756 * graph.c: Likewise.
10757 * local-alloc.c: Likewise.
10758 * loop.c: Likewise.
10759 * optabs.c: Likewise.
10760 * profile.c: Likewise.
10761 * recog.c: Likewise.
10762 * regclass.c: Likewise.
10763 * regmove.c: Likewise.
10764 * reload.c: Likewise.
10765 * reorg.c: Likewise.
10766 * resource.c: Likewise.
10767 * sched.c: Likewise.
10768 * stupid.c: Likewise.
10769 * config/1750a/1750a.c: Likewise.
10770 * config/a29k/a29k.c: Likewise.
10771 * config/arc/arc.c: Likewise.
10772 * config/arm/arm.c: Likewise.
10773 * config/arm/thumb.c: Likewise.
10774 * config/c4x/c4x.c: Likewise.
10775 * config/clipper/clipper.c: Likewise.
10776 * config/convex/convex.c: Likewise.
10777 * config/fx80/fx80.c: Likewise.
10778 * config/i860/i860.c: Likewise.
10779 * config/m68k/m68k.c: Likewise.
10780 * config/m88k/m88k.c: Likewise.
10781 * config/mips/mips.c: Likewise.
10782 * config/pdp11/pdp11.c: Likewise.
10783 * config/pyr/pyr.c: Likewise.
10784 * config/romp/romp.c: Likewise.
10785 * config/sh/sh.c: Likewise.
10786 * config/tahoe/tahoe.c: Likewise.
10787 * config/vax/vax.c: Likewise.
10788 * config/we32k/we32k.c: Likewise.
10789 * config/sparc/sparc.c: Include "function.h".
10790 (mem_min_alignment): Test current_function rather than
10791 regno_pointer_align.
10792 * config/pa/pa.c: Likewise.
10793 (compute_frame_size): Delete declaration of
10794 current_function_outgoing_args_size.
10795 * config/arc/arc.h (current_function_varargs): Delete declaration.
10796 * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
10797 declaration.
10798 * config/i370/i370.h (current_function_outgoing_args_size): Delete
10799 declaration.
10800 * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
10801 current_function_uses_pic_offset_table.
10802 * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
10803 of current_function_returns_pointer.
10804 * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
10805 * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
10806 * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
10807 * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
10808 * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
10809 * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
10810 * config/m88k/m88k.c: Include "function.h"
10811 (call_used_regs, current_function_pretend_args_size,
10812 current_function_outgoing_args_size, frame_pointer_needed): Delete
10813 declarations.
10814 * config/m88k/m88k.h (current_function_pretend_args_size): Delete
10815 declaration.
10816 * config/mips/mips.h (current_function_calls_alloca): Delete
10817 declaration.
10818 * config/mn10200/mn10200.h (current_function_needs_context,
10819 rtx_equal_function_value_matters): Delete declarations.
10820 * config/ns32k/ns32k (current_function_uses_pic_offset_table,
10821 flag_pic): Delete declarations.
10822 * config/pa/pa.h (current_function_pretend_args_size,
10823 current_function_decl): Delete declarations.
10824 * config/pa/som.h (current_function_varargs): Delete declaration.
10825 * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
10826 declaration.
10827 * config/pyr/pyr.h (current_function_pretend_args_size,
10828 current_function_args_size, current_function_calls_alloca): Delete
10829 declarations.
10830 * config/sh/sh.h (current_function_varargs): Delete declaration.
10831 * config/sparc/sparc.h (current_function_outgoing_args_size,
10832 current_function_calls_alloca, current_function_decl): Delete
10833 declarations.
10834 * config/spur/spur.h (current_function_pretend_args_size,
10835 current_function_calls_alloca): Delete declarations.
10836 * config/v850/v850.c (current_function_outgoing_args_size): Delete
10837 declaration.
10838 * config/vax/vms.h (current_function_name): Delete declaration.
10839 * gcse.c: Include "function.h".
10840 (current_function_name, current_function_calls_setjmp): Delete
10841 declarations.
10842 * haifa-sched.c: Include "function.h".
10843 (forced_labels): Delete declaration.
10844 * jump.c: Likewise.
10845 * reg-stack.c: Likewise.
10846 * reload1.c: Likewise.
10847 * genemit.c (main): Make generated file include function.h.
10848 * genoutput.c (output_prologue): Likewise.
10849
10850 * builtins.c (saveregs_value, apply_args_value): Delete variables.
10851 * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
10852 sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
10853 regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
10854 regno_reg_rtx, sequence_stack): Delete variables. Add accessor
10855 macros for some of them.
10856 (emit_filename, emit_lineno): Delete declarations.
10857 (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy. Access
10858 regno_pointer_* variables through current_function.
10859 (gen_inline_header_rtx): Delete function.
10860 (save_emit_status): Delete function.
10861 (set_new_last_label_num): New function.
10862 (clear_emit_caches): New function.
10863 (restore_emit_status): Just clear last_labelnum and call
10864 clear_emit_caches.
10865 (get_last_insn_anywhere): Variable sequence_stack is now accessed
10866 through macro seq_stack.
10867 (add_insn_after): Likewise.
10868 (add_insn_before): Likewise.
10869 (remove_insn): Likewise.
10870 (pop_topmost_sequence): Likewise.
10871 (in_sequence_p): Likewise.
10872 (start_sequence_for_rtl_expr): Likewise.
10873 (start_sequence): Likewise, and likewise for
10874 sequence_rtl_expr/seq_rtl_expr.
10875 (push_topmost_sequence): Likewise.
10876 (end_sequence): Likewise.
10877 (init_virtual_regs): Now takes a "struct emit_status *" argument.
10878 All callers changed. Store into that pointer instead of globals.
10879 (init_emit): Allocate emit elt of current_function.
10880 Changes for sequence_rtl_expr/sequence_stack renaming.
10881 Call clear_emit_caches instead of doing it in-line.
10882 Access regno_pointer_* variables through current_function.
10883 (init_emit_once) Don't clear sequence_stack.
10884
10885 * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
10886 Delete variables.
10887 (arg_pointer_save_area): Delete declaration.
10888 (finish_expr_for_function): Renamed from init_queue; no longer static.
10889 (init_expr): Don't call init_queue.
10890 (save_expr_status, restore_expr_status): Delete functions.
10891 (expand_expr): Changes to reflect new layout of struct function.
10892 Don't access current_function_check_memory_usage when current_function
10893 is 0.
10894 * expr.h (forced_labels, save_expr_regs, saveregs_value,
10895 apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
10896 current_function_outgoing_args_size, current_function_arg_offset_rtx,
10897 current_function_uses_const_pool, function_call_count,
10898 current_function_uses_pic_offset_table, nonlocal_labels,
10899 current_function_internal_arg_pointer, nonlocal_goto_stack_level,
10900 current_function_check_memory_usage, nonlocal_goto_handler_slots,
10901 pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
10902 declarations.
10903 (finish_expr_for_function): Declare.
10904 * flags.h (current_function_has_nonlocal_label,
10905 current_function_has_nonlocal_goto, current_function_is_thunk,
10906 current_function_has_computed_jump): Delete declarations.
10907 * flow.c (forced_labels): Delete declaration.
10908 * function.c (current_function_pops_args,
10909 current_function_returns_struct, current_function_returns_pcc_struct,
10910 current_function_needs_context, current_function_calls_setjmp,
10911 current_function_calls_longjmp, current_function_has_nonlocal_label,
10912 current_function_has_nonlocal_goto, current_function_is_thunk,
10913 current_function_has_computed_jump, current_function_calls_alloca,
10914 current_function_contains_functions, current_function_returns_pointer,
10915 current_function_epilogue_delay_list, current_function_args_size,
10916 current_function_pretend_args_size, current_function_arg_offset_rtx,
10917 current_function_outgoing_args_size, current_function_varargs,
10918 current_function_stdarg, current_function_args_info, cleanup_label,
10919 current_function_name, current_function_uses_const_pool,
10920 current_function_instrument_entry_exit, current_function_return_rtx,
10921 current_function_uses_pic_offset_table, nonlocal_labels,
10922 current_function_internal_arg_pointer, current_function_cannot_inline,
10923 current_function_check_memory_usage, function_call_count,
10924 nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
10925 nonlocal_goto_stack_level, return_label, save_expr_regs,
10926 stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
10927 tail_recursion_reentry, arg_pointer_save_area, frame_offset,
10928 context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
10929 last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
10930 temp_slot_level, var_temp_slot_level, target_temp_slot_level):
10931 Delete variables.
10932 (push_function_context_to): Don't save them. Don't call
10933 save_storage_status, save_emit_status or save_expr_status.
10934 (pop_function_context_from): Don't restore them. Don't call
10935 restore_storage_status or restore_expr_status.
10936 (get_func_frame_size): New function.
10937 (get_frame_size): Use it.
10938 (assign_outer_stack_local): Reflect some member name changes in struct
10939 function.
10940 (put_reg_into_stack): Likewise.
10941 (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
10942 seq_rtl_expr.
10943 (fixup_var_refs): Likewise.
10944 (fix_lexical_addr): Likewise.
10945 (trampoline_address): Likewise.
10946 (prepare_function_start): Clear field inlinable of current_function.
10947 (init_function_for_compilation): New function.
10948 (expand_dummy_function_end): New function.
10949 (expand_function_end): Call finish_expr_for_function.
10950 * function.h (struct emit_status): New; fields moved here from struct
10951 function and from global variables. Add accessor macros for some of
10952 the fields.
10953 (struct expr_status): Likewise.
10954 (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
10955 (struct function): Add fields expr and emit, inlinable, inl_emit,
10956 original_arg_vector, original_decl_initial, inl_last_parm_insn,
10957 inl_max_label_num. Add many comments.
10958 Add accessor macros for all elts of struct function that no longer
10959 have a global variable.
10960 (cleanup_label, return_label, frame_offset, tail_recursion_label,
10961 tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
10962 stack_slot_list): Delete declarations.
10963 (get_func_frame_size): Declare.
10964 (save_expr_status, restore_expr_status, save_emit_status,
10965 save_storage_status, restore_storage_status): Delete declarations.
10966 (init_virtual_regs): Declare.
10967 * output.h (current_function_pops_args,
10968 current_function_returns_struct, current_function_returns_pcc_struct,
10969 current_function_needs_context, current_function_calls_setjmp,
10970 current_function_calls_longjmp, current_function_calls_alloca,
10971 current_function_has_nonlocal_label, current_function_varargs,
10972 current_function_has_computed_jump, current_function_returns_pointer,
10973 current_function_contains_functions, current_function_args_size,
10974 current_function_pretend_args_size, current_function_stdarg,
10975 current_function_outgoing_args_size, current_function_args_info,
10976 current_function_name, current_function_return_rtx,
10977 current_function_epilogue_delay_list,
10978 current_function_uses_const_pool, current_function_cannot_inline):
10979 Delete declarations.
10980 * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
10981 regno_reg_rtx): Delete declaration.
10982 (REGNO_POINTER_FLAG): Delete macro.
10983 * stmt.c (expand_goto): Changes to reflect that some fields in struct
10984 function were renamed.
10985 * stor-layout.c (save_storage_status, restore_storage_status): Delete
10986 functions.
10987 * toplev.c: Include "function.h".
10988 (current_function_decl): Delete declaration.
10989 (compile_file): Call init_dummy_function_start and
10990 expand_dummy_function_end around some initializations that need to
10991 emit rtl.
10992 (rest_of_compilation): Use DECL_SAVED_INSNS properly.
10993 Call init_function_for_compilation.
10994 * unroll.c: Include "function.h"
10995 (unroll_loop): Access regno_pointer_* variables through
10996 current_function.
10997
10998 * tree.h (struct tree_decl): Add elt f to saved_insns member.
10999 (DECL_SAVED_INSNS): use it.
11000 (expand_dummy_function_end): Declare.
11001 (init_function_for_compilation): Declare.
11002 * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
11003 that it's no longer an INLINE_HEADER.
11004 (expand_call): Likewise.
11005 * integrate.c (finish_inline): Delete function.
11006 (max_parm_reg, parm_reg_stack_loc): Delete declarations.
11007 (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
11008 args. Don't generate an INLINE_HEADER rtx, just return the arg
11009 vector. All callers changed.
11010 (save_for_inline_copying): Create a duplicate struct emit_status to
11011 hold the emit state for compiling the current function. Use this and
11012 the other new fields in struct function that are for integration
11013 instead of an INLINE_HEADER.
11014 Use memcpy instead of bcopy.
11015 Store the current struct function in DECL_SAVED_INSNS of fndecl.
11016 (save_for_inline_nocopy): Similar changes, except no new emit_status
11017 is needed here.
11018 (expand_inline_function): Get information from function structure,
11019 not from an inline header rtx.
11020 (output_inline_function): Lose code to extract the necessary
11021 information from an inline header; simply put back the function
11022 structure into current_function. Clear its inlinable elt.
11023 * rtl.def (INLINE_HEADER): Delete.
11024 * rtl.h: Delete all accessors for an INLINE_HEADER.
11025 (gen_inline_header_rtx): Delete declaration.
11026 (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
11027 Delete declarations.
11028 (REGNO_POINTER_ALIGN): Delete.
11029 (clear_emit_caches): Declare.
11030 (set_new_last_label_num): Declare.
11031
11032 Mon Aug 9 01:52:24 1999 Jason Merrill <jason@yorick.cygnus.com>
11033
11034 * print-tree.c (print_node): Print base for OFFSET_TYPEs.
11035
11036 * except.c (expand_eh_region_start_for_decl): Always start a new block.
11037 * stmt.c (is_eh_region): Make sure current_function is present, too.
11038
11039 Mon Aug 9 01:15:24 1999 Jeffrey A Law (law@cygnus.com)
11040
11041 * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
11042 for 64bit PA targets.
11043
11044 * pa.h (SELECT_SECTION): Define.
11045 * som.h (SELECT_SECTION): Delete.
11046
11047 Sun Aug 8 15:13:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11048
11049 * alias.c (init_alias_analysis): Wrap call to
11050 `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
11051
11052 1999-08-07 Bruce Korb <autogen@linuxbox.com>
11053
11054 * fixinc/inclhack.def(irix_asm_apostrophe): IRIX 5.2's
11055 <sys/asm.h> contains an asm comment with an apostrophe
11056 * fixinc/inclhack.sh: regen
11057 * fixinc/fixincl.x: regen
11058
11059 Sat Aug 7 19:37:07 1999 Richard Henderson <rth@cygnus.com>
11060
11061 * function.c (init_function_start): Clear prologue & epilogue.
11062 (prologue_epilogue_contains): New function.
11063 * alias.c (init_alias_analysis): Use it.
11064 * rtl.h (prologue_epilogue_contains): Declare it.
11065
11066 Sat Aug 7 19:32:16 1999 Richard Henderson <rth@cygnus.com>
11067
11068 * jump.c (onlyjump_p): New function.
11069 * rtl.h: Declare it.
11070 * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
11071 of condjump_p in calling tidy_fallthru_edge and merge_blocks.
11072
11073 Sat Aug 7 17:09:36 1999 Richard Henderson <rth@cygnus.com>
11074
11075 * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
11076 to invert loops. Simplify block scanning.
11077
11078 Sat Aug 7 02:11:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11079
11080 * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
11081 (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
11082
11083 1999-08-07 Jonathan Larmour <jlarmour@cygnus.co.uk>
11084
11085 * config/sparc/liteelf.h: New file to support sparclite-elf target
11086 * config/sparc/t-sp86x: New file to support sparc86x targets
11087 * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
11088 * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
11089 * configure.in: Support above target triplets
11090 * configure: Regenerated
11091
11092 Sat Aug 7 01:39:27 1999 Philippe De Muyter <phdm@macqel.be>
11093
11094 * fixinc/server.c (server_setup): Do not prefix function used as
11095 parameter with `&'.
11096
11097 Sat Aug 7 00:21:20 1999 Richard Henderson <rth@cygnus.com>
11098
11099 * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
11100 Remove fp reg alternatives.
11101
11102 Sat Aug 7 00:06:54 1999 Jeffrey A Law (law@cygnus.com)
11103
11104 * Makefile.in (TAROUTOPTS): Kill.
11105 (install-headers-tar): Use "xpf" for tar headerfile extraction
11106 * i370/x-oe (TAROUTOPTS): Delete.
11107 * m68k/x-apollo68 (TAROUTOPTS): Delete.
11108 * m68k/x-hp320 (TAROUTOPTS): Delete.
11109 * m68k/x-hp320g (TAROUTOPTS): Delete.
11110 * gcc.texi: Update bug reporting text.
11111
11112 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11113
11114 * reg-stack.c (change_stack) Fixed problem with negative array index.
11115
11116 Fri Aug 6 23:08:44 1999 Jeffrey A Law (law@cygnus.com)
11117
11118 * extend.texi, install.texi: Fix spelling mistakes.
11119
11120 * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
11121 (s-attrtab); No longer try to use pre-made insn-attrtab file.
11122 * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
11123 PREMADE_ATTRTAB_MD.
11124 * mips/t-ecoff: Likewise.
11125 * mips/t-elf: Likewise.
11126 * mips/t-mips: Likewise.
11127 * mips/t-osfrose: Likewise.
11128 * mips/t-r3900: Likewise.
11129 * mips/t-svr3: Likewise.
11130 * mips/t-svr4: Likewise.
11131 * mips/t-ultrix: Likewise.
11132
11133 * gcc.texi: Document recommend means to provide software floating
11134 point libraries in libgcc.a
11135
11136 1999-08-06 Jason Merrill <jason@yorick.cygnus.com>
11137
11138 * c-lex.c (yylex): We can have a number with no digits.
11139
11140 Fri Aug 6 16:53:55 EDT 1999 John Wehle (john@feith.com)
11141
11142 * jump.c (delete_prior_computation): New function, broken
11143 out of delete_computation. Check for side effects with
11144 side_effects_p instead of FIND_REG_INC_NOTE. Handle
11145 multi-word hard registers.
11146 (delete_computation): Use it. Check for side effects with
11147 side_effects_p instead of FIND_REG_INC_NOTE. Synthesize a
11148 missing REG_DEAD note for a register which is both set and
11149 used by an insn.
11150
11151 Fri Aug 6 11:05:29 1999 Jeffrey A Law (law@cygnus.com)
11152
11153 * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
11154 (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
11155 (ASM_FILE_START): Import _mcount with the right type.
11156 (ASM_DECLARE_FUNCTION_NAME): Define.
11157 (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
11158 * pa.c (output_function_prologue): Always emit the function's label
11159 here.
11160 * pa.h (TEXT_SPACE_P): Define.
11161 (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
11162 (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
11163 * som.h (TEXT_SPACE_P): Delete.
11164 (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
11165 (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
11166
11167 Thu Aug 5 19:29:39 1999 Jim Wilson <wilson@cygnus.com>
11168
11169 * expr.c (emit_group_load): Allow src to be a CONCAT.
11170
11171 Thu Aug 5 22:27:15 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
11172
11173 * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
11174 (___mulsi3): Use '!' comment character.
11175
11176 Thu Aug 5 13:34:14 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11177
11178 * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
11179
11180 Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com)
11181
11182 * gcc.c: Update URLs and mail addresses.
11183 * gcc.texi: Likewise.
11184
11185 Thu Aug 5 01:14:13 1999 Daniel Jacobowitz <drow@false.org>
11186
11187 * rs6000.c (current_file_function_operand): Return zero for
11188 weak functions.
11189 (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
11190 weak symbols.
11191 * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
11192 for weak symbols.
11193
11194 Thu Aug 5 00:56:30 1999 Geoffrey Keating <geoffk@cygnus.com>
11195
11196 * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
11197 allocate space in the stack frame for the PIC register.
11198
11199 Thu Aug 5 00:20:47 1999 Jeffrey A Law (law@cygnus.com)
11200
11201 * m68k.md (xordi3, anddi3): These patterns are not available on
11202 the coldfire.
11203
11204 Wed Aug 4 23:39:20 1999 Mark Mitchell <mark@codesourcery.com>
11205
11206 * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
11207 (PUT_REAL): Likewise.
11208
11209 Wed Aug 4 20:45:04 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
11210
11211 * final.c (shorten_branches): Don't add an alignment for loops
11212 that have no label inside.
11213
11214 Wed Aug 4 16:39:24 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11215
11216 * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
11217 prototypes in macro HAVE_cmpstrsi.
11218
11219 * cpplib.c (cpp_get_token): Remove unused label `op3'.
11220
11221 * emit-rtl.c (operand_subword): Remove unused variable
11222 `bits_per_word'.
11223
11224 * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
11225
11226 * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
11227
11228 Wed Aug 4 13:29:23 1999 Zack Weinberg <zack@bitmover.com>
11229
11230 * cpphash.c (macroexpand): Delete leading whitespace when arg
11231 is concatenated before.
11232 (unsafe_chars): Correct test for whether + and - can extend a
11233 token.
11234
11235 * cppinit.c (cpp_start_read): Do dependencies for
11236 -include/-imacros files also.
11237
11238 * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
11239 tokenizing non-directive lines.
11240 (cpp_expand_to_buffer): Temporarily disable no-output mode.
11241 * cppmain.c: In no-output mode, just call cpp_scan_buffer for
11242 the input file.
11243
11244 Wed Aug 4 12:53:44 1999 Jason Merrill <jason@yorick.cygnus.com>
11245
11246 * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
11247
11248 * c-lex.c: Sync with C++ frontend.
11249 (linemode): New variable.
11250 (parse_float): imag, conversion_errno, and type are output only.
11251 (yylex): Adjust. Move initial '.' case into main switch.
11252 Use linemode.
11253 (handle_generic_pragma): Just deal with tokens.
11254 (readescape): Use ISXDIGIT and ISGRAPH.
11255 * c-parse.in: Add END_OF_LINE token.
11256
11257 * c-lex.c (lang_init): Generalize.
11258 (nextchar): Remove. Replace uses with UNGETC.
11259 (skip_white_space): Handle linemode here. Optimize for cpplib.
11260 (skip_white_space_on_line): Remove.
11261 (extend_token_buffer_to): New fn.
11262 (extend_token_buffer): Use it.
11263 (read_line_number, check_newline): Just deal with tokens.
11264 (token_getch, token_put_back): New fns.
11265 (yylex): Use them. More cpplib optimizations. Simplify.
11266
11267 Wed Aug 4 12:53:44 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
11268 Jason Merrill <jason@yorick.cygnus.com>
11269
11270 * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
11271 (consume_string): Make this smart about USE_CPPLIB.
11272 (check_newline): Rewrite to be intelligent about USE_CPPLIB.
11273 (yylex): Rewrite to be intelligent about USE_CPPLIB.
11274 Also, clean up cases where we redundantly set token_buffer[0].
11275 (read_line_number): New fn.
11276 (ignore_escape_flag): New variable.
11277
11278 Wed Aug 4 13:12:17 1999 Jeffrey A Law (law@cygnus.com)
11279
11280 * a29k/t-a29kbare: Fix some comments.
11281 (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
11282 (FPBIT, DPBIT): Define.
11283 * a29k/t-vx29k: Likewise.
11284 * arc/t-arc: Likewise.
11285 * arm/t-arm-elf: Likewise.
11286 * arm/t-bare: Likewise.
11287 * arm/t-pe: Likewise.
11288 * arm/t-pe-thumb: Likewise.
11289 * arm/t-semi: Likewise.
11290 * arm/t-thumb: Likewise.
11291 * arm/t-thumb-elf: Likewise.
11292 * arm/t-thumb-linux: Likewise.
11293 * h8300/t-h8300: Likewise.
11294 * i960/t-i960: Likewise.
11295 * i960/t-vxworks960: Likewise.
11296 * m32r/t-m32r: Likewise.
11297 * mips/t-ecoff: Likewise.
11298 * mips/t-elf: Likewise.
11299 * mips/t-r3900: Likewise.
11300 * pa/t-pro: Likewise.
11301 * rs6000/t-aix43: Likewise.
11302 * rs6000/t-beos: Likewise.
11303 * rs6000/t-newas: Likewise.
11304 * rs6000/t-ppccomm: Likewise.
11305 * rs6000/t-rs6000: Likewise.
11306 * rs6000/t-winnt: Likewise.
11307 * rs6000/t-xnewas: Likewise.
11308 * rs6000/t-xrs6000: Likewise.
11309 * sh/t-sh: Likewise.
11310 * sparc/t-elf: Likewise.
11311 * sparc/t-sparcbare: Likewise.
11312 * sparc/t-sparclite: Likewise.
11313 * sparc/t-splet: Likewise.
11314 * v850/t-v850: Likewise.
11315 * mn10200/t-mn10200: Fix comments.
11316 * mn10300/t-mn10300: Likewise.
11317
11318 * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
11319 dummy operand. Allocate a new pseudo for the dummy operand.
11320 (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
11321
11322 * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
11323
11324 Wed Aug 4 11:53:55 1999 Tom Tromey <tromey@cygnus.com>
11325
11326 * configure: Rebuilt.
11327 * configure.in: Removed --enable-java-gc option and JAVAGC subst.
11328
11329 Wed Aug 4 09:06:14 1999 Richard Earnshaw (rearnsha@arm.com)
11330
11331 * recog.c (preproces_constraints): Zero recog_op_alt before
11332 processing the constraints.
11333
11334 * arm.c (typedef minipool_node): Renamed from pool_node.
11335 (minipool_vector, minipool_size, minipool_vector_label): Similarly.
11336 (add_minipool_constant): New function.
11337 (dump_minipool): New function.
11338 (find_barrier): Remove special case for getting the insn size of
11339 an insn that references the constant pool.
11340 (minipool_fixup): New structure.
11341 (push_minipool_barrier): New function.
11342 (push_minipool_fix): New function.
11343 (note_invalid_constants): New function.
11344 (add_pool_constant, dump_table, fixit, broken_move): Delete.
11345 (arm_reorg): Rewrite code to fix up the constant pool into a
11346 series of mini-pools embedded in the insn stream.
11347 (arm_output_epilogue): New function, made mainly from the body
11348 of output_func_epilogue.
11349 (output_func_epilogue): Move insn generation part of epilogue code
11350 to arm_output_epilogue.
11351 * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
11352 * arm.md (pool_range): New attribute.
11353 (zero_extendqidi2): Add attribute pool_range.
11354 (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
11355 extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
11356 pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
11357 movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
11358 movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
11359 (epilogue): New expand.
11360 (epilogue_insn): New insn. Call arm_output_epilogue.
11361
11362 * arm.c (arm_poke_function_name): Undo change of July 17. Tidy up.
11363 * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
11364
11365 Mon Aug 2 19:18:44 1999 Jason Merrill <jason@yorick.cygnus.com>
11366
11367 * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
11368
11369 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
11370
11371 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Define.
11372
11373 Wed Aug 4 02:15:32 1999 Richard Henderson <rth@cygnus.com>
11374
11375 * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
11376
11377 Wed Aug 4 01:48:08 1999 Jim Kingdon <http://developer.redhat.com>
11378
11379 * global.c: Fix comment.
11380
11381 Wed Aug 4 01:43:01 1999 Ian Lance Taylor <ian@zembu.com>
11382
11383 * gcc.c (access_check): New static function.
11384 (find_a_file): Use it when searching a directory list.
11385 * collect2.c (find_a_file): Don't accept directories found when
11386 searching a directory list.
11387
11388 Wed Aug 4 01:40:43 1999 Philippe De Muyter <phdm@macqel.be>
11389
11390 * tlink.c (symbol_hash_lookup): Do not prefix functions used as
11391 function parameters with `&'.
11392 (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
11393
11394 Wed Aug 4 01:08:44 1999 Jeffrey A Law (law@cygnus.com)
11395
11396 * flow.c (delete_unreachable_blocks): Do not call merge_blocks
11397 or tidy_fallthru_edge if the last insn in the block is not
11398 an unconditional jump or a simple conditional jump.
11399
11400 Tue Aug 3 20:21:20 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
11401
11402 * Makefile.in (c-decl.o): Depends on defaults.h.
11403
11404 Tue Aug 3 14:14:52 1999 Jeffrey A Law (law@cygnus.com)
11405
11406 * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
11407 PA1.1 and above.
11408 (CLASS_MAX_NREGS): Likewise.
11409
11410 Tue Aug 3 03:51:20 1999 Jeffrey A Law (law@cygnus.com)
11411
11412 * cse.c (cse_insn): Fix dumb thinko in last change.
11413
11414 Tue Aug 3 10:36:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11415
11416 * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
11417 "const char *".
11418
11419 Mon Aug 2 23:45:45 1999 Hans-Peter Nilsson <hp@bitrange.com>
11420
11421 * dwarf2out.c (add_location_or_const_value_attribute): Correct
11422 test for sizes of passed and declared parameter types.
11423
11424 Tue Aug 3 00:03:41 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11425
11426 * fixincludes: Fix the return type of bsearch, char* -> void*.
11427
11428 * fixinc/inclhack.def: Likewise.
11429
11430 Mon Aug 2 18:29:32 1999 Mark Mitchell <mark@codesourcery.com>
11431
11432 * invoke.texi (-fdump-translation-unit): New option.
11433
11434 Mon Aug 2 17:54:19 1999 Richard Henderson <rth@cygnus.com>
11435
11436 * expr.h (PROMOTE_PROTOTYPES): Move ...
11437 * defaults.h: ... to here.
11438 * c-decl.c: Include defaults.h instead of expr.h.
11439 * c-typeck.c: Include defaults.h.
11440
11441 Mon Aug 2 17:10:24 1999 Mark Mitchell <mark@codesourcery.com>
11442
11443 * toplev.h (errorcount): Declare.
11444 (warningcount): Likewise.
11445 (sorrycount): Likewise.
11446 * c-lex.c (errorcount): Don't declare.
11447 * dwarf2out.c (errorcount): Don't declare.
11448
11449 Mon Aug 2 17:02:08 1999 Jason Merrill <jason@yorick.cygnus.com>
11450
11451 * config/libgloss.h: Add a note discouraging use with ELF.
11452 * configure.in: Don't use libgloss.h for ELF targets.
11453 Always use_collect2 on a.out targets.
11454
11455 Mon Aug 2 16:27:42 1999 Jim Wilson <wilson@cygnus.com>
11456
11457 * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
11458 (force_to_mode, case ASHIFTRT): Add shiftrt label.
11459
11460 Tue Aug 3 00:45:02 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
11461
11462 * loop.c (strength_reduce): When doing biv->giv conversion, update
11463 reg note of NEXT->insn.
11464
11465 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
11466
11467 * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
11468
11469 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
11470
11471 * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
11472 PROMOTE_PROTOTYPES, so that it tests it as a C expression.
11473 Ensure expr.h is included.
11474 * c-typecheck.c (convert_arguments): Ditto.
11475
11476 * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
11477
11478 * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
11479 * config/convex/convex.h: Ditto.
11480 * config/dsp16xx/dsp16xx.h: Ditto.
11481 * config/fx80/fx80.h: Ditto.
11482 * config/gmicro/gmicro.h: Ditto.
11483 * config/i370/i370.h: Ditto.
11484 * config/i386/i386.h: Ditto.
11485 * config/m32r/m32r.h: Ditto.
11486 * config/m68k/m68k.h: Ditto.
11487 * config/m88k/m88k.h: Ditto.
11488 * config/mips/mips.h: Ditto.
11489 * config/pa/pa.h: Ditto.
11490 * config/pyr/pyr.h: Ditto.
11491 * config/tahoe/tahoe.h: Ditto.
11492 * config/we32k/we32k.h: Ditto.
11493
11494 * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
11495 based on arch size.
11496
11497 * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
11498
11499 * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
11500 from comment.
11501
11502 * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
11503
11504 1999-08-02 Richard Henderson <rth@cygnus.com>
11505
11506 * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
11507 for the register spill block.
11508 (m32r_va_arg): New.
11509 * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
11510 (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
11511
11512 * m32r.h (INT8_P): Don't short-cut test with (unsigned).
11513 (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
11514 (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
11515
11516 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
11517
11518 * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
11519 MAX_WCHAR_TYPE defined in sparc.h.
11520 * config/sparc/linuxaout.h: Likewise.
11521 * config/sparc/linux64.h: Likewise.
11522 Also default to -mvis if CPU is UltraSPARC.
11523
11524 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
11525
11526 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
11527 (RTX_OK_FOR_OLO10): Likewise.
11528 (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
11529 %lo(), allow it in addresses...
11530 (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
11531 * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
11532 does not make sense.
11533 * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
11534 (sparc_output_scratch_registers): New function.
11535 (output_function_prologue, sparc_flat_output_function_prologue): Use
11536 it.
11537 * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
11538 defined.
11539 * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
11540 * configure.in: Add check for .register pseudo-op support in as and
11541 check for offsetable %lo().
11542 * acconfig.h: Add templates for the above checks.
11543 * configure: Regenerate.
11544
11545 1999-08-02 Richard Henderson <rth@cygnus.com>
11546
11547 * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
11548 * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
11549 * sparc/sol2.h (TARGET_DEFAULT): Likewise.
11550
11551 Mon Aug 2 23:46:45 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
11552
11553 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
11554 reg_biv_class.
11555
11556 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
11557
11558 * config/float-sparc.h: New file.
11559 * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
11560 sparc-*-linux-gnu and sparc64-*-linux*.
11561
11562 1999-08-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11563
11564 * rs6000.c (rs6000_va_list): Type is an array.
11565 (rs6000_va_start): Don't doubly adjust for varargs.
11566 (rs6000_va_arg): Evaluate long long GPR adjustment.
11567
11568 Mon Aug 2 16:15:57 1999 David Edelsohn <edelsohn@gnu.org>
11569
11570 * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
11571 -maix64 and -maix32.
11572 (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
11573 LINK_SPEC): Change appropriately.
11574 * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
11575 (u_short_cint_operand): Likewise.
11576 * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
11577 for 64-bit hosts.
11578 * rs6000/t-aix43 (MULTILIB): Change to -m64.
11579
11580 * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
11581
11582 Mon Aug 2 16:15:57 1999 Geoff Keating <geoffk@cygnus.com>
11583
11584 * rs6000/rs6000.c (num_insns_constant_wide): Correct
11585 for type promotion.
11586 (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
11587 (non_add_cint_operand): Likewise.
11588 (logical_operand): Likewise.
11589 (non_logical_cint_operand): Likewise.
11590 (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
11591 (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
11592 (rs6000_select_rtx_section): Suppress warning.
11593 (small_data_operand): Suppress warning.
11594 (rs6000_got_register): Suppress warning.
11595 * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
11596 type, so `J' is generally the wrong constraint for a SImode value;
11597 use `L' instead.
11598 (andsi3_internal2): Likewise.
11599 (andsi3_internal3): Likewise.
11600 (iorsi3_internal1): Likewise.
11601 (xorsi3_internal1): Likewise.
11602 (movsi): Likewise.
11603 (movsf_softfloat): Likewise.
11604 (scc insns): Likewise.
11605 (movsi+2): Preserve sign bits of SImode constant.
11606 (floatsidf2_internal+1): Sign-extend SImode constant correctly.
11607 (movdf+1): Sign-extend properly.
11608 (movdi_32+1): Sign-extend properly.
11609 (scc insns): Sign-extend properly.
11610
11611 * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
11612 K, L, and T.
11613
11614 1999-08-02 Richard Henderson <rth@cygnus.com>
11615
11616 * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
11617 -mcpu parsing code.
11618 (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
11619 * alpha.md (all fp insns): Likewise.
11620
11621 1999-08-02 Nick Clifton <nickc@cygnus.com>
11622
11623 * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
11624 already defined.
11625
11626 Mon Aug 2 03:38:33 1999 Jeffrey A Law (law@cygnus.com)
11627
11628 * pa.c (legitimize_pic_address): Clarify comments. Do not call the
11629 pic_load_label generator directly.
11630 * pa.md (pic_load_label): Clarify comments. Remove modes on operands.
11631 No longer a named pattern.
11632
11633 Mon Aug 2 09:38:10 1999 Nick Clifton <nickc@cygnus.com>
11634
11635 * explow.c (force_reg): Call force_operand if X does not
11636 satisfy general_operand.
11637
11638 Mon Aug 2 01:34:22 1999 Jeffrey A Law (law@cygnus.com)
11639
11640 * fix-header.c (main): When testing for CONTINUED, use string
11641 equality, not pointer equality.
11642
11643 Mon Aug 2 01:27:24 1999 Dan Nicolaescu <dann@ics.uci.edu>
11644
11645 * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
11646
11647 Sun Aug 1 22:46:42 1999 Jeffrey A Law (law@cygnus.com)
11648
11649 * cse.c (cse_insn): Fix loop which deletes insns after a jump
11650 that has become an unconditional jump.
11651
11652 * m68k.c (output_function_prologue): Fix typo in CPU32 case.
11653 (output_function_epilogue): Similarly.
11654
11655 Sun Aug 1 20:14:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11656
11657 * tree.h (init_dummy_function_start): Declare.
11658
11659 Sun Aug 1 12:55:31 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11660
11661 * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
11662 last_expr_type, last_expr_value, block_start_count, block_stack,
11663 stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
11664 nesting_depth, goto_fixup_chain): Delete global vars; now allocated
11665 dynamically in stmt elt of struct function for each function.
11666 (struct nesting): Rename function_call_count elt to n_function_calls,
11667 target_temp_slot_level to block_target_temp_slot_level. All users
11668 changed.
11669 (struct stmt_status): New structure definition.
11670 Add many accessor macros for stmt_status elements which previously
11671 were global variables.
11672 (init_stmt_for_function): Allocate stmt elt for current_function.
11673 Reflect that block_start_count was renamed to
11674 current_block_start_count.
11675 (save_stmt_status, restore_stmt_status): Delete functions.
11676 (preserve_subexpressions_p): Don't access loop_stack when outside
11677 a function.
11678 (expand_start_bindings): Reflect that block_start_count was renamed to
11679 current_block_start_count.
11680 (expand_fixup): Likewise.
11681 (expand_decl): Don't access block_stack when outside a function.
11682 (expand_decl_cleanup): Likewise.
11683 (expand_dcc_cleanup): Likewise.
11684 (expand_dhc_cleanup): Likewise.
11685 (expand_anon_union_decl): Likewise.
11686 (set_file_and_line_for_stmt): New function.
11687 (in_control_zone_p): New function.
11688
11689 * function.h (struct function): Add new elt stmt.
11690 Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
11691 case_stack, nesting_stack, nesting_depth, block_start_count,
11692 last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
11693 emit_lineno, goto_fixup_chain.
11694 (save_eh_status, restore_eh_status, save_stmt_status,
11695 restore_stmt_status): Delete declarations.
11696 * function.c (push_function_context_to): Don't call save_stmt_status.
11697 (pop_function_context_to): Don't call restore_stmt_status.
11698 * tree.h (in_control_zone_p): Declare.
11699 * rtl.h (set_file_and_line_for_stmt): Declare.
11700
11701 * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
11702 call set_file_and_line_for_stmt.
11703
11704 Thu Jul 31 12:34:45 1999 Joe Buck <jbuck@synopsys.com>
11705
11706 * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
11707 Also update copyright.
11708
11709 Sat Jul 31 11:10:07 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11710
11711 * c-pragma.c: Don't include "except.h".
11712 * emit-rtl.c: Likewise.
11713 * stor-layout.c: Likewise.
11714 * tree.c: Likewise.
11715 * varasm.c: Likewise.
11716
11717 * flow.c: Include "function.h".
11718 * tree.h (init_dummy_function_start): Declare new function.
11719
11720 * except.h (struct eh_status): New structure.
11721 (struct label_node, struct eh_entry): Declare even if tree.h hasn't
11722 been included.
11723 (eh_return_stub_label, ehstack, catchstack, ehqueue,
11724 catch_clauses, false_label_stack, caught_return_label_stack,
11725 protect_list, current_function_ehc): Add accessor macros for the
11726 corresponding fields in current_function->eh; delete declarations
11727 for all items that used to be declared here.
11728 * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
11729 catch_clauses, false_label_stack, caught_return_label_stack,
11730 protect_list, current_function_ehc): Delete variables.
11731 (init_eh_for_function): Allocate current_function->eh.
11732 (save_eh_status, restore_eh_status): Delete functions.
11733
11734 * function.h (struct function): Add fields next_global and eh.
11735 Delete all exception handling related fields.
11736 * function.c (current_function): New variable.
11737 (all_functions): New variable.
11738 (push_function_context_to): Don't allocate a struct function,
11739 use current_function instead. Call init_dummy_function_start when
11740 outside a function. Clear current_function before returning.
11741 (pop_function_context_from): Restore current_function.
11742 Don't free the restored struct function.
11743 (prepare_function_start): New function.
11744 (init_dummy_function_start): New function.
11745 (init_function_start): Break out some code into prepare_function_start
11746 and call it here.
11747
11748 * stmt.c (save_stmt_status): Don't call save_eh_status.
11749 (restore_stmt_status): Don't call restore_eh_status.
11750
11751 * Makefile.in: Update dependencies.
11752
11753 Sat Jul 31 04:10:01 1999 Jeffrey A Law (law@cygnus.com)
11754
11755 * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
11756 of depending on a magic constant value. Update comments.
11757 (hppa_expand_prologue): Similarly.
11758
11759 * pa.md (reload_indi, reload_outdi): Allow any register for the
11760 original reload register.
11761
11762 Fri Jul 30 19:41:35 1999 Jim Wilson <wilson@cygnus.com>
11763
11764 * cccp.c (print_help): Change marcos to macros.
11765
11766 1999-07-30 Richard Henderson <rth@cygnus.com>
11767
11768 * c-typeck.c (initializer_constant_valid_p): Move ...
11769 * c-common.c (initializer_constant_valid_p): ... here. Use
11770 FOO_TYPE_P instead of tests against TREE_CODE. Allow subtraction
11771 of label addresses.
11772 * c-common.h (initializer_constant_valid_p): Declare.
11773 * c-tree.h (initializer_constant_valid_p): Remove.
11774
11775 Fri Jul 30 16:33:42 1999 Mathias Froehlich <frohlich@na.uni-tuebingen.de>
11776
11777 * config/i386/sol2-c1.asm: Align the stack.
11778 * config/i386/sol2-gc1.asm: Likewise.
11779
11780 1999-07-30 Vladimir Makarov <vmakarov@loony.cygnus.com>
11781
11782 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
11783 -Asparclite for sparc86x.
11784 (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
11785 sparc86x.
11786 (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
11787
11788 Fri Jul 30 14:53:56 1999 Jakub Jelinek <jj@ultra.linux.cz>
11789
11790 * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
11791 the user if using the non-default arch size in BI_ARCH configuration.
11792 * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
11793
11794 * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
11795 Fix patterns so that they actually match.
11796 (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
11797 (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
11798 (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
11799 TARGET_HARD_MUL32.
11800 (mulsidi3): Reflect this in the expand.
11801 (smulsi3_highpart): Only on TARGET_ARCH32.
11802 (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
11803 (const_umulsidi3_sp32): Renamed from const_umulsidi3.
11804 (umulsidi3): Reflect this in the expand.
11805 (umulsi3_highpart): Only on TARGET_ARCH32.
11806 (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
11807 don't require g0 to be zero.
11808 (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
11809 ({,u}divsi3): New expands.
11810 ({,u}divsi3_sp64): New patterns.
11811 (after lshrdi3_v8plus): Four new patterns to help combiner
11812 optimizing nested mixed mode shifts.
11813
11814 * config/sparc/sparc.c (sparc_override_options): Use deprecated
11815 v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
11816 speed things up. Don't use them by default on plain v9 in 64bit
11817 mode, according to what SPAMv9 sais.
11818
11819 * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
11820 top 32 bits of %[og][0-7] in signal handlers.
11821 Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
11822
11823 Fri Jul 30 03:00:41 1999 Jeffrey A Law (law@cygnus.com)
11824
11825 * pa.md (zvdep_imm32): Renamed from zvdep_imm.
11826 (ashlsi3): Corresponding changes.
11827
11828 * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
11829
11830 Thu Jul 29 18:37:13 1999 Jeffrey A Law (law@cygnus.com)
11831
11832 * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
11833
11834 Thu Jul 29 19:01:58 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11835
11836 * arm.h (Hint): Delete macro.
11837 Substitute HOST_WIDE_INT for Hint in some prototypes.
11838 * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
11839
11840 Thu Jul 29 09:21:42 1999 Nick Clifton <nickc@cygnus.com>
11841
11842 * builtins.c (expand_builtin_setjmp): Use force_operand to
11843 make sure that the buffer address is in a suitable form to be
11844 passed to force_reg.
11845
11846 Wed Jul 28 12:50:48 1999 Geoff Keating <geoffk@cygnus.com>
11847
11848 * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
11849 them here.
11850
11851 Wed Jul 28 13:18:35 1999 Jeffrey A Law (law@cygnus.com)
11852
11853 * pa.md (indirect_jump): Remove mode from match_operand. Verify
11854 proper mode in the condition string.
11855 (icacheflush, dcacheflush): Remove modes from match_operands.
11856
11857 * pa.c (emit_move_sequence): Always convert scratch_reg to the
11858 proper mode before using it.
11859
11860 * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
11861 pair.
11862
11863 * pa.c (store_reg): Do not call add_high_const generator directly.
11864 (load_reg, set_reg_plus_d): Likewise.
11865 * pa.md (add_high_const): No longer a named pattern.
11866
11867 * pa.c (legitimize_address): Consistently use Pmode rather than
11868 SImode. Do not call gen_pic2_highpart directly anymore.
11869 * pa.md (pic2_highpart): No longer a named pattern.
11870 (pic2_lo_sum): Similarly. Reformat to make more readable.
11871
11872 * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
11873 needed.
11874
11875 * README: Update.
11876
11877 Wed Jul 28 11:28:04 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11878
11879 * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
11880
11881 Wed Jul 28 11:23:48 1999 Richard Henderson <rth@cygnus.com>
11882
11883 * pa.c (hppa_builtin_saveregs): Use get_varargs_alias_set
11884 and tag the spill mems.
11885 (hppa_va_start): New.
11886 (hppa_va_arg): New.
11887 * pa.h (EXPAND_BUILTIN_VA_START): New.
11888 (EXPAND_BUILTIN_VA_ARG): New.
11889
11890 Wed Jul 28 11:22:21 1999 Richard Henderson <rth@cygnus.com>
11891
11892 * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
11893 and tag the spill mems.
11894 (mn10300_va_start): New.
11895 (mn10300_va_arg): New.
11896 * mn10300.h (EXPAND_BUILTIN_VA_START): New.
11897 (EXPAND_BUILTIN_VA_ARG): New.
11898
11899 Wed Jul 28 11:20:19 1999 Richard Henderson <rth@cygnus.com>
11900
11901 * mn10200.c (mn10200_va_arg): New.
11902 * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
11903
11904 Wed Jul 28 11:19:06 1999 Richard Henderson <rth@cygnus.com>
11905
11906 * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
11907 rather than play with TREE_INT_CST_LOW.
11908
11909 1999-07-27 Philip Blundell <pb@nexus.co.uk>
11910
11911 * config/arm/telf.h: Include dbxelf.h.
11912 (CPP_PREDEFINES): Only define if not already defined.
11913 (ASM_IDENTIFY_GCC): Likewise.
11914 (SUBTARGET_EXTRA_SECTIONS): Likewise.
11915 (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
11916 * config/arm/thumb.h (LINK_SPEC): Only define if not already
11917 defined.
11918 (DBX_DEBUGGING_INFO): Don't define.
11919 * config/arm/linux-telf.h: New file.
11920 * config/arm/linux-tgas.h: New file.
11921 * config/arm/t-thumb-linux: New file.
11922 * config/arm/uclinux-elf.h: New file.
11923 * config/arm/uclinux-telf.h: New file.
11924 * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
11925 thumb-*-uclinux): New targets.
11926 * configure: Regenerate.
11927
11928 Tue Jul 27 23:20:21 1999 Jeffrey A Law (law@cygnus.com)
11929
11930 * pa.md (post_store, pre_load): New expanders.
11931 (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
11932 (post_ldwm, pre_stwm): Make these unnamed patterns since we never
11933 need to directly generate RTL for them.
11934 * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
11935 changes.
11936
11937 Tue Jul 27 16:05:52 1999 David Edelsohn <edelsohn@gnu.org>
11938
11939 * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
11940 * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
11941 (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
11942 (secndary_reload_class): Make TARGET_ELF conditional compile.
11943 (print_operand_address): Similar.
11944 (output_toc): Print all values as hex.
11945 (get_issue_rate): Rearrange and add RS64A and PPC630.
11946 * rs6000.h (processor_type): Add RS64A and PPC630.
11947 (PROCESSOR_POWERPC64): New.
11948 (PROMOTE_MODE): Use word_mode.
11949 (RTX_COSTS): Add RS64A and PPC630.
11950 * rs6000.md (scheduling information): Add lmul and ldiv
11951 representing 64-bit integer multiply and divide. Add rs64a and
11952 PPC630 information.
11953 (ashldi3): Add support for "rldic" instruction.
11954 * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
11955
11956 Tue Jul 27 15:31:53 1999 Vladimir Makarov <vmakarov@toad.to.cygnus.com>
11957
11958 * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
11959 instead of V8 for sparclite86x in cpu_table.
11960
11961 Tue Jul 27 17:49:42 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11962
11963 * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
11964 output_file_directive.
11965
11966 Tue Jul 27 03:15:33 1999 Jason Merrill <jason@yorick.cygnus.com>
11967
11968 * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
11969 tree for op1, not the rtl.
11970
11971 Tue Jul 27 00:18:34 1999 Richard Henderson <rth@cygnus.com>
11972
11973 * m88k.c (m88k_builtin_saveregs): Break out the constructor code
11974 to m88k_va_start, leaving only the register spill.
11975 (m88k_build_va_list): New.
11976 (m88k_va_start): New.
11977 (m88k_va_arg): New.
11978 * m88k.h (BUILD_VA_LIST_TYPE): New.
11979 (EXPAND_BUILTIN_VA_START): New.
11980 (EXPAND_BUILTIN_VA_ARG): New.
11981
11982 Mon Jul 26 19:07:11 1999 Geoff Keating <geoffk@cygnus.com>
11983
11984 * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
11985 Rename from expand_builtin_saveregs.
11986 * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
11987
11988 Mon Jul 26 22:52:47 1999 Richard Henderson <rth@cygnus.com>
11989
11990 * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
11991 for the register spill block.
11992 (i960_build_va_list): New.
11993 (i960_va_start): New.
11994 (i960_va_arg): New.
11995 * i960.h (BUILD_VA_LIST_TYPE): New.
11996 (EXPAND_BUILTIN_VA_START): New.
11997 (EXPAND_BUILTIN_VA_ARG): New.
11998 * i960.md (store_multiple): Use change_address on individul mems.
11999
12000 Mon Jul 26 22:43:12 1999 Richard Henderson <rth@cygnus.com>
12001
12002 * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
12003 an ARRAY_TYPE.
12004 (std_expand_builtin_va_start): Back out one word if !stdarg_p.
12005 (expand_builtin_va_end): Evaluate arg for side effects.
12006 * c-common.c (c_common_nodes_and_builtins): Construct a
12007 va_list_arg_type_node to handle array decomposition to pointer.
12008
12009 Mon Jul 26 18:51:34 1999 Richard Henderson <rth@cygnus.com>
12010
12011 * except.c (start_dynamic_cleanup): Use force_operand on the
12012 buffer's address.
12013
12014 Mon Jul 26 16:43:26 1999 Richard Henderson <rth@cygnus.com>
12015
12016 * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
12017 * c4x.c (c4x_va_arg): New.
12018
12019 Mon Jul 26 12:30:09 1999 Jason Merrill <jason@yorick.cygnus.com>
12020
12021 * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
12022 has manual_pop set.
12023
12024 1999-07-26 Nathan Sidwell <nathan@acm.org>
12025
12026 * eh-common.h (__eh_matcher): Prototype correctly.
12027
12028 Mon Jul 26 17:24:51 1999 Philip Blundell <pb@nexus.co.uk>
12029
12030 * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
12031 (TARGET_SINGLE_PIC_BASE): Likewise.
12032 (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
12033 definitions.
12034 (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
12035 (TARGET_SWITCHES): Add -m{no-}single-pic-base.
12036 (TARGET_OPTIONS): Add -mpic-register=N.
12037 (OUTPUT_INT_ADDR_CONST): New macro.
12038 (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
12039 LEGITIMATE_PIC_OPERAND_P): Likewise.
12040 (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
12041 (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
12042 output_addr_const directly.
12043 (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
12044 ARM port.
12045 (thumb_pic_register, thumb_pic_register_string): Declare.
12046
12047 * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
12048 from arm.c.
12049 (label_mentioned_p): New function: Imported from arm.c.
12050 (legitimize_pic_address): New function: Imported from arm.c.
12051 (is_pic):New function: Imported from arm.c.
12052 (thumb_finalize_pic):New function: Imported from arm.c.
12053 (add_constant): Cope with PIC constants.
12054 (fixit): Cope with PIC constants.
12055 (output_return): Do not treat the PIC register as live if
12056 TARGET_SINGLE_PIC_BASE is true.
12057 (thumb_function_prologue): Do not treat the PIC register as live if
12058 TARGET_SINGLE_PIC_BASE is true.
12059 (thumb_expand_prologue): Do not treat the PIC register as live if
12060 TARGET_SINGLE_PIC_BASE is true.
12061 (thumb_unexpand_epilogue): Do not treat the PIC register as live if
12062 TARGET_SINGLE_PIC_BASE is true.
12063 (thumb_print_operand): Accept '|'.
12064 (thumb_override_options): Process PIC options.
12065
12066 * config/arm/thumb.md (movsi): Support PIC.
12067 (call_insn): Change "i" constraint to "X".
12068 (call_value_insn): Likewise.
12069 (consttable_4, consttable_8, consttable_end): Set and clear
12070 "making_const_table" as appropriate.
12071 (pic_load_addr, pic_add_dot_plus_four): New insns.
12072
12073 * invoke.texi (Thumb Options): Fix spelling. Document new
12074 options -msingle-pic-base and -mpic-register=.
12075
12076 1999-07-26 Andrew Haley <aph@cygnus.com>
12077
12078 * config/m32r/initfini.c (__init): Use a full word immediate for
12079 __fini: this allows it to be placed in any memory region.
12080
12081 * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
12082 -mmodel=medium. This is OK for all memory models.
12083
12084 Mon Jul 26 11:58:46 1999 Nick Clifton <nickc@cygnus.com>
12085
12086 * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
12087 * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
12088
12089 Mon Jul 26 10:23:36 1999 Nick Clifton <nickc@cygnus.com>
12090
12091 * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
12092 defined.
12093
12094 * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
12095
12096 Sun Jul 25 23:51:59 1999 Richard Henderson <rth@cygnus.com>
12097
12098 * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
12099 (BUILD_VA_LIST_TYPE): New.
12100 (EXPAND_BUILTIN_VA_START): New.
12101 (EXPAND_BUILTIN_VA_ARG): New.
12102 * i860.c (output_delayed_branch): Disable.
12103 (output_delay_insn): Likewise.
12104 (i860_saveregs): New.
12105 (i860_build_va_list): New.
12106 (i860_va_start): New.
12107 (i860_va_arg): New.
12108 * i860.md: Disable all peepholes using output_delayed_branch.
12109 * i860/sysv4.h (I860_SVR4_VA_LIST): New.
12110
12111 Sun Jul 25 23:44:13 1999 Richard Henderson <rth@cygnus.com>
12112
12113 * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
12114 (BUILD_VA_LIST_TYPE): New.
12115 (EXPAND_BUILTIN_VA_START): New.
12116 (EXPAND_BUILTIN_VA_ARG): New.
12117 * clipper.c (clipper_builtin_saveregs): Only dump registers.
12118 Return the address of the save area.
12119 (clipper_build_va_list): New.
12120 (clipper_va_start): New.
12121 (clipper_va_arg): New.
12122
12123 Sun Jul 25 22:56:47 1999 Richard Henderson <rth@cygnus.com>
12124
12125 * arc.h (EXPAND_BUILTIN_VA_START): New.
12126 (EXPAND_BUILTIN_VA_ARG): New.
12127 * arc.c (arc_setup_incoming_varargs): Set alias set of
12128 varargs save area.
12129 (arc_va_start): New.
12130 (arc_va_arg): New.
12131
12132 Sun Jul 25 22:45:55 1999 Richard Henderson <rth@cygnus.com>
12133
12134 * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
12135 (BUILD_VA_LIST_TYPE): New.
12136 (EXPAND_BUILTIN_VA_START): New.
12137 (EXPAND_BUILTIN_VA_ARG): New.
12138 * alpha.c (alpha_builtin_saveregs): Delete.
12139 (alpha_build_va_list): New.
12140 (alpha_va_start): New.
12141 (alpha_va_arg): New.
12142
12143 Sun Jul 25 21:40:33 1999 Jeffrey A Law (law@cygnus.com)
12144
12145 * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
12146 column zero.
12147 (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
12148 (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
12149
12150 * gcc.texi: More changes related to list conversion.
12151 * invoke.texi: Likewise.
12152
12153 Sun Jul 25 18:15:39 1999 Richard Henderson <rth@cygnus.com>
12154
12155 * builtins.c (expand_builtin_saveregs): Remove static, remove exp
12156 and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
12157 (expand_builtin_next_arg): Accept ARGLIST not EXP.
12158 (stabilize_va_list): New function.
12159 (std_expand_builtin_va_start): New function.
12160 (expand_builtin_va_start): New function.
12161 (get_varargs_alias_set): New function.
12162 (std_expand_builtin_va_arg): New function.
12163 (expand_builtin_va_arg): New function.
12164 (expand_builtin_va_end): New function.
12165 (expand_builtin_va_copy): New function.
12166 (expand_builtin): Call them.
12167 * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
12168 __builtin_{varargs_start,stdarg_start,end,copy}.
12169 (build_va_arg): New function.
12170 * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
12171 (build_va_arg): Declare.
12172 * c-decl.c (ptr_type_node, va_list_type_node): New.
12173 * c-parse.gperf (__builtin_va_arg): New.
12174 * c-parse.in (VA_ARG): New token.
12175 (unary_expr): Recognize it.
12176 * expr.c (expand_expr): Expand VA_ARG_EXPR.
12177 * expr.h (std_expand_builtin_va_start): Declare.
12178 (std_expand_builtin_va_arg): Declare.
12179 (expand_builtin_va_arg): Declare.
12180 (get_varargs_alias_set): Declare.
12181 * tree.def (VA_ARG_EXPR): New.
12182 * tree.h (BUILT_IN_VARARGS_START): New.
12183 (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
12184 (ptr_type_node, va_list_type_node): Declare.
12185 * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
12186 * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
12187 * m88k.h, m88k.c: Likewise.
12188 * mn10300.h, mn10300.c: Likewise.
12189 * pa.h, pa.c: Likewise.
12190 * rs6000.h, rs6000.c: Likewise.
12191 * sh.h, sh.c: Likewise.
12192 * sparc.h, sparc.c: Likewise.
12193
12194 * emit-rtl.c (operand_subword): Copy alias set.
12195 (change_address): Likewise.
12196
12197 Sun Jul 25 15:04:37 1999 Jeffrey A Law (law@cygnus.com)
12198
12199 * pa.c (compute_frame_size): Scan all the used callee saved registers,
12200 not just the first one.
12201
12202 Fri Jul 23 14:09:58 1999 Philip Blundell <pb@nexus.co.uk>
12203
12204 * config/arm/arm.h (TARGET_SWITCHES): Add
12205 -m{no-}single-pic-base. Correct help string for -mshort-load-words.
12206 (TARGET_OPTIONS): Add -mpic-register=.
12207 (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
12208 (arm_pic_register_string): Declare.
12209 (NEED_PLT_GOT): Delete, replace with ...
12210 (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. New macros.
12211 (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
12212 (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
12213 * config/arm/arm.c (arm_override_options): Add new option
12214 -mpic-register=N.
12215 (arm_pic_register_string): New variable.
12216 (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
12217 (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
12218 register as never live. Use NEED_PLT_RELOC not NEED_PLT_GOT.
12219 (output_return_instruction): Likewise.
12220 * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
12221 (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. Define to flag_pic.
12222 * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
12223
12224 * invoke.texi (ARM Options): Fix spelling. Remove duplicate
12225 mention of -msched-prolog. Document new options -msingle-pic-base
12226 and -mpic-register=.
12227
12228 Thu Jul 22 18:23:56 1999 Richard Henderson <rth@cygnus.com>
12229
12230 * haifa-sched.c (reemit_notes): Tidy.
12231 * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
12232 haifa's routine.
12233
12234 Thu Jul 22 18:21:04 1999 Richard Henderson <rth@cygnus.com>
12235
12236 * explow.c (trunc_int_for_mode): New function.
12237 (plus_constant_wide): Use it.
12238 * combine.c (simplify_and_const_int): Likewise.
12239 (merge_outer_ops): Likewise.
12240 (simplify_shift_const): Likewise.
12241 * cse.c (simplify_unary_operation): Likewise.
12242 (simplify_binary_operation): Likewise.
12243 * emit-rtl.c (operand_subword): Likewise.
12244 * rtl.h: Declare it.
12245
12246 Thu Jul 22 14:34:59 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12247
12248 * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
12249 (use NUM_REGS instead of NUM_INTS).
12250
12251 Thu Jul 22 11:25:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12252
12253 * builtins.c: New file.
12254 * expr.c (saveregs_value, apply_args_value): Delete definition,
12255 moved into builtins.c.
12256 (string_constant): No longer static.
12257 (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
12258 apply_args_size, apply_result_size, result_vector,
12259 expand_builtin_apply_args, expand_builtin_apply,
12260 expand_builtin_return): Delete functions, moved into builtins.c.
12261 (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
12262 * expr.h (saveregs_value, apply_args_value): Declare variables.
12263 (expand_builtin, string_constant): Declare functions.
12264 * Makefile.in: Update to build builtin.o.
12265
12266 Wed Jul 21 00:46:58 1999 Mark P. Mitchell <mark@codesourcery.com>
12267
12268 * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
12269 * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
12270 * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
12271 start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
12272 false.
12273 * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
12274 Define to zero.
12275
12276 1999-07-21 Michael Meissner <meissner@cygnus.com>
12277
12278 * print-rtl.c (print_rtx): Print the names of the virtual
12279 registers.
12280
12281 Wed Jul 21 16:00:32 1999 Nick Clifton <nickc@cygnus.com>
12282
12283 * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
12284 introduced in previous delta.
12285
12286 Wed Jul 21 14:30:51 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12287
12288 * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
12289 to avoid name clash.
12290
12291 Wed Jul 21 08:39:22 1999 Gavin Romig-Koch <gavin@cygnus.com>
12292
12293 * c-lex.c (yylex) : Correct the test for overflow when lexing
12294 integer literals.
12295
12296 Tue Jul 20 18:02:42 1999 Richard Henderson <rth@cygnus.com>
12297
12298 * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
12299 (adjust_priority): Always call ADJUST_PRIORITY.
12300 (schedule_insn): Only put insns into the ready at cost 0.
12301 (schedule_block): Remove redundant initial sort. Give clock_var
12302 and can_issue_more to MD_SCHED_REORDER. Requeue if hazard cost
12303 is not 0.
12304 * tm.texi (MD_SCHED_REORDER): Update docs.
12305
12306 * sparc.h (MD_SCHED_REORDER): Update. Set CAN_ISSUE_MORE.
12307 * sparc.c (ultra_reorder_called_this_block): Delete.
12308 (ultrasparc_sched_init): Don't set it.
12309 (ultrasparc_sched_reorder): Don't check it.
12310
12311 Tue Jul 20 17:07:54 1999 Richard Henderson <rth@cygnus.com>
12312
12313 * rs6000.h (struct rs6000_args): Add sysv_gregno.
12314 * rs6000.c (init_cumulative_args): Init sysv_gregno.
12315 (function_arg_boundary): Align DFmode.
12316 (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
12317 to get fp reg and stack overflow correct.
12318 (function_arg): Likewise.
12319 (function_arg_pass_by_reference): True for TFmode for ABI_V4.
12320 (setup_incoming_varargs): Restructure for ABI_V4; use
12321 function_arg_advance to skip final named argument.
12322 (expand_builtin_saveregs): Properly unskip the last integer arg
12323 when doing varargs. Adjust overflow location calculation.
12324
12325 * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
12326 explicitly unsigned.
12327 (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
12328 (__VA_GP_REGSAVE): Similarly.
12329 (__va_longlong_p): Delete.
12330 (__va_arg_type_violation): New declaration.
12331 (va_arg): Restructure. Flag promotion errors. Align double.
12332 TFmode passed by reference.
12333
12334 * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
12335 in the HOST_BITS_PER_WIDE_INT > 32 case.
12336
12337 Tue Jul 20 12:37:30 1999 Hans-Peter Nilsson <hp@bitrange.com>
12338
12339 * dwarf2out.c (output_abbrev_section): Terminate with a zero.
12340
12341 Tue Jul 20 12:12:27 1999 Jason Merrill <jason@yorick.cygnus.com>
12342
12343 * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
12344 * toplev.c (documented_lang_options): Add -fpreprocessed.
12345 * cpplib.h (struct cpp_buffer): Add preprocessed.
12346 * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
12347 (cpp_start_read): Don't expand macros or emit an initial #line
12348 directive if -fpreprocessed.
12349
12350 Tue Jul 20 12:12:09 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
12351
12352 * cpplib.h (struct cpp_buffer): Added manual_pop for
12353 better C++ tokenization.
12354 * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
12355 Also, support C++ tokenization for ->*, .*, <?, and >? operators.
12356 * c-common.c (cpp_token): Make non-static.
12357
12358 Tue Jul 20 11:24:19 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12359
12360 * c-common.h: New file.
12361 * c-common.c (permanent_obstack): Delete unused declaration.
12362 (c_global_trees): New array.
12363 (c_common_nodes_and_builtins): New function; split off common code
12364 from init_decl_processing in both c-decl.c and cp/decl.c.
12365 * c-tree.h: Delete lots of declarations of tree nodes; replaced by
12366 c_global_trees and accessor macros defined in c-common.h.
12367 Include c-common.h.
12368 * c-decl.c: Delete definitions for tree nodes that were replaced by
12369 c_global_trees.
12370 (init_decl_processing): Build void_list_node.
12371 Call c_common_nodes_and_builtins; delete code to generate the common
12372 builtins here.
12373 * objc/objc-act.c (build_module_descriptor): Rename variable
12374 void_list_node to avoid clash with c-common.h.
12375
12376 * Makefile.in: Update dependencies.
12377 * objc/Make-lang.in: Likewise.
12378
12379 Mon Jul 19 14:22:18 1999 Mark P. Mitchell <mark@codesourcery.com>
12380
12381 * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
12382 (UNIQUE_SECTION_P): Likewise.
12383 (UNIQUE_SECTION): Likewise.
12384
12385 1999-07-19 Linas Vepstas <linas@linas.org>
12386
12387 * config/i370/README: New file.
12388 * config/i370/linux.h: New file.
12389 * config/i370/mvs.h: New file.
12390 * config/i370/oe.h: New file.
12391 * config/i370/t-linux: New file.
12392 * config/i370/t-mvs: New file.
12393 * config/i370/t-oe: New file.
12394 * config/i370/x-oe: New file.
12395 * config/i370/xm-linux.h: New file.
12396 * config/i370/xm-mvs.h: New file.
12397 * config/i370/xm-oe.h: New file.
12398
12399 * i370.c (label_node_t): Add first_ref_page, label_addr,
12400 label_first_ref, label_last_ref members.
12401 (mvs_need_base_reload): Renamed from mvs_label_emitted.
12402 (MAX_MVS_LABEL_SIZE): Define.
12403 (MAX_LONG_LABEL_SIZE): Define.
12404 (alias_node_t, alias_anchor, alias_number): New.
12405 (mvs_function_table): Reorder for EBCDIC.
12406 (ascebc, ebcasc): Unconditionally define.
12407 (i370_branch_dest, i370_branch_length): New functions.
12408 (i370_short_branch, i370_label_scan): New functions.
12409 (mvs_get_label): Renamed from mvs_add_label. Search for
12410 an existing label before creating a new one.
12411 (mvs_add_label): New function.
12412 (mvs_get_label_page): New function.
12413 (mvs_free_label_list): Renamed from mvs_free_label. Iterate
12414 over the entire list.
12415 (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
12416 (mvs_check_page) [TARGET_ELF_ABI]: New function.
12417 (mvs_add_alias, mvs_need_alias): New functions.
12418 (mvs_get_alias, mvs_check_alias): New functions.
12419 (handle_pragma): New function.
12420 (mvs_function_check): New function.
12421 (unsigned_jump_follows_p): Search harder.
12422 (i370_function_prolog) [TARGET_HLASM]: Handle LE370. Scan labels.
12423 (i370_function_prolog) [TARGET_ELF_ABI]: New function.
12424 * i370.h (TARGET_VERSION): Delete.
12425 (CPP_SPEC, CPP_PREDEFINES): Delete.
12426 (mvs_label_emitted): Delete.
12427 (TARGET_EBCDIC): Delete.
12428 (MAP_CHARACTER): Define only if TARGET_EBCDIC.
12429 (HANDLE_PRAGMA): Define.
12430 (HARD_REGNO_NREGS): Handle complex modes.
12431 (HARD_REGNO_MODE_OK): Likewise.
12432 (CLASS_MAX_NREGS): Likewise.
12433 (RET_REG): Likewise.
12434 (EXTRA_CONSTRAINT): Define.
12435 (RETURN_IN_MEMORY): True for DImode.
12436 (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
12437 (FUNCTION_PROFILER): Delete.
12438 (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
12439 (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
12440 (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
12441 (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
12442 (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
12443 (ASM_FILE_START): Add "RMODE ANY".
12444 (ASM_OUTPUT_EXTERNAL): Check for aliases.
12445 (ASM_GLOBALIZE_LABEL): Likewise.
12446 (ASM_OUTPUT_LABELREF): Likewise.
12447 (ASM_OUTPUT_COMMON): Likewise.
12448 (PRINT_OPERAND): Handle 'K', 'W', default.
12449 (PRINT_OPERAND_ADDRESS): New.
12450 (Lots of defines): Add support for TARGET_ELF_ABI.
12451 * i370.md (attr length): New. Define for all patterns.
12452 (*): Lots of tweeks to assembly output and constraints.
12453
12454 Mon Jul 19 15:09:29 1999 David Edelsohn <edelsohn@gnu.org>
12455
12456 * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
12457 Disable patterns performing SImode comparisons with SImode values
12458 if TARGET_POWERPC64 and instruction does not sign-extend or does
12459 not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
12460 differ for signed quantities.
12461 (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
12462 (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
12463 (decrement_and_branch_on_count): Add 64-bit variant.
12464
12465 Mon Jul 19 09:36:27 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12466
12467 * final.c (output_asm_insn): When searching for the matching string
12468 for a given dialect, don't run past the end of the list of
12469 alternatives if there are fewer alternatives in the template than
12470 dialects.
12471
12472 1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br>
12473
12474 * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
12475 Removed paragraph about compression of files and size limitation,
12476 duplicated in the FAQ. Use gcc-patches for posting patches.
12477 * gcc.c (main): Updated URL with bug reporting instructions to
12478 gcc.gnu.org. Removed e-mail address.
12479 * system.h (abort): Likewise.
12480
12481 1999-07-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12482
12483 * Makefile.in (stmp-multilib-sub): Make the files extracted
12484 from $(LIBGCC1) writable.
12485
12486 Sat Jul 17 14:25:46 1999 Nick Clifton <nickc@cygnus.com>
12487
12488 * config/arm/aout.h: Reformat for improved readability.
12489
12490 * config/arm/arm.h: Reformat for improved readability.
12491 Replace uses of fprintf with asm_fprintf where appropriate.
12492 (ARM_DECLARE_FUNCTION_NAME): New macro: Perform any generic ARM
12493 function declaration assembler actions.
12494 (NUM_INTS): New macro: Convert from bytes to words.
12495 (NUM_REGS): New macro: Compute number of registers required to
12496 hold a quanitity of tyep MODE.
12497 (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
12498 types.
12499 (NUM_ARG_REGS): New macro: The number of argument registers
12500 available.
12501 (ARG_REGISTER): New macro: Compute the register number of the Nth
12502 argument register.
12503 (LAST_ARG_REGNUM): New macro: The number of the last argument
12504 register.
12505 (SP_REGNUM): New macro: Register number of the stack pointer.
12506 (FP_REGNUM): New macro: Register number of the frame pointer.
12507 (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
12508 FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
12509 CUMULATIVE_ARGS so that it counts registers not bytes.
12510
12511 * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
12512 TARGET_INTERWORK.
12513 Replace uses of fprintf with asm_fprintf where appropriate.
12514 (output_ascii_pseudo_op): Replace with version from thumb.c
12515
12516 * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
12517
12518 * config/arm/elf.h (CPP_PREDEFINES): Replace with
12519 SUBTARGET_CPP_SPEC.
12520 (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
12521 (ASM_FILE_START): Emit ASM_APP_OFF.
12522
12523 Fri Jul 16 13:48:09 1999 Jeffrey A Law (law@cygnus.com)
12524
12525 * pa.c (compute_frame_size): Round frame according to
12526 STACK_BOUNDARY rather than a hardwired value.
12527
12528 * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
12529
12530 * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
12531 of "1".
12532 * configure: Rebuilt.
12533
12534 * configure.in (hppa*-*-linux*): New configuration.
12535 * configure: Rebuilt.
12536 * pa.h (MAX_OFILE_ALIGNMENT): Delete.
12537 * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
12538 * pa/pa-linux.h: New file.
12539 * pa/t-linux: New file.
12540 * pa/xm-linux.h: New file.
12541
12542 * pa.c (hppa_legitimize_address): Change references from SImode to
12543 either Pmode or word_mode as appropriate.
12544 (emit_move_sequence, store_reg, load_reg): Likewise.
12545 (set_reg_plus_d, hppa_expand_prologue): Likewise.
12546 (output_mul_insn): Likewise.
12547 * pa.h (PROMOTE_MODE): Likewise.
12548 (INITIALZE_TRAMPOLINE): Likewise.
12549 (Pmode): Define to word_mode.
12550
12551 * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
12552 value of 4. Allocate 8 bytes for each FP register save.
12553 (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
12554 value of 4.
12555 (hppa_expand_prologue): Likewise.
12556 * pa.h (PROMOTE_MODE): Likewise.
12557 (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
12558 (FUNCTION_ARG_BOUNDARY): Likewise.
12559
12560 * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
12561
12562 * pa.c (out_of_line_prologue_epilogue): Delete.
12563 (override_options): Remove -mspace related code.
12564 (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
12565 (compute_frame_size): Only allocate space for register that
12566 actually need to be saved.
12567 * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
12568 (TARGET_SWITCHES): Remove -mspace, -mno-space
12569 * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
12570 * pa/t-pro (LIB2FUNCS_EXTRA): Likewise. Remove -mspace multilib.
12571 * pa/ee.asm, pa/ee_fp.asm: Delete.
12572
12573 * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
12574
12575 * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
12576 directive in column zero.
12577
12578 Fri Jul 16 01:39:57 1999 Jeffrey A Law (law@cygnus.com)
12579
12580 * m68k.c (output_function_prologue): Fix computation of save mask
12581 when generating PIC code.
12582
12583 Thu Jul 15 15:40:09 1999 Jim Wilson <wilson@cygnus.com>
12584
12585 * tree.c (build_type_attribute_variant): Move current_obstack restore
12586 after build_qualified_type call.
12587
12588 1999-07-15 Mark Mitchell <mark@codesourcery.com>
12589
12590 * configure.in: Use t-iris6, even with GNU LD.
12591 * config/mips/iris6gld.h: Fix typo in linker spec.
12592 * config/mips/t-iris6gld: Remove.
12593
12594 Thu Jul 15 15:15:43 1999 David Edelsohn <edelsohn@gnu.org>
12595
12596 * rs6000.md (insv, extzv): Remove SImode dependence in named
12597 patterns. Explicitly generate DImode RTL if PowerPC64 and
12598 operand is DImode.
12599 (insvdi): Reverse start and size in instruction template.
12600
12601 1999-07-12 Joseph S. Myers <jsm28@cam.ac.uk>
12602
12603 * invoke.texi: Typo fixes.
12604
12605 Wed Jul 14 23:28:06 1999 Jeffrey A Law (law@cygnus.com)
12606
12607 * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
12608 handle at this time instead of silently generating incorrect code.
12609 (gen_imagpart): Likewise.
12610
12611 * reload.c (find_reloads): Emit a USE for a pseudo register without
12612 a hard register if we could not create an optional reload for the
12613 pseudo.
12614
12615 Wed Jul 14 23:45:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
12616
12617 * c-typeck.c (output_init_element, process_init_element):
12618 When advancing constructor_unfilled_fields for a RECORD_TYPE,
12619 check for nameless bit fields.
12620
12621 Wed Jul 14 01:57:39 1999 Richard Henderson <rth@cygnus.com>
12622
12623 * regclass.c (scan_one_insn): Notice subregs that change the
12624 size of their operand.
12625 (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
12626
12627 Wed Jul 14 01:41:42 1999 Jeffrey A Law (law@cygnus.com)
12628
12629 * configure.in (alpha*-*-*): Include alpha/t-ieee.
12630 * configure: Rebuilt.
12631 * alpha/t-ieee: New file.
12632
12633 Tue Jul 13 10:45:58 1999 Jeffrey A Law (law@cygnus.com)
12634
12635 * rs6000.c (find_addr_reg): Do not select r0 as an address
12636 register.
12637
12638 Tue Jul 13 00:46:18 1999 Philippe De Muyter <phdm@macqel.be>
12639
12640 * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
12641
12642 Mon Jul 12 14:29:15 1999 Jeffrey A Law (law@cygnus.com)
12643
12644 * rs6000.md (movsf): Do not force easy FP constants into memory.
12645
12646 * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
12647 immed_double_const to ensure they are properly truncated then
12648 sign extended.
12649
12650 Mon Jul 12 10:40:01 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
12651
12652 * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
12653 always unless NO_DEBUG is used. Compile this code
12654 unconditionally.
12655 (replace_symbols_in_block): Compile it unconditionally.
12656
12657 Sun Jul 11 12:32:32 1999 Jeffrey A Law (law@cygnus.com)
12658
12659 * configure.in (i?86-*-elf*): New target.
12660 * configure: Rebuilt.
12661 * i386/i386elf.h, i386/t-i386elf: New files.
12662
12663 Fri Jul 9 22:39:44 1999 Jason Merrill <jason@yorick.cygnus.com>
12664
12665 * toplev.c (main): Don't complain about saying -gdwarf.
12666 (rest_of_compilation): Remove redundant code.
12667
12668 Fri Jul 9 19:08:55 1999 Jim Wilson <wilson@cygnus.com>
12669
12670 * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
12671
12672 Fri Jul 9 18:54:18 1999 Felix Lee <flee@cygnus.com>
12673
12674 * config/i960/i960.c (ret_label): Change asm label from "LR:" to
12675 "Li960R:", to avoid name clash.
12676
12677 Fri Jul 9 10:48:28 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12678
12679 * loop.c (check_dbra_loop): When reversing a loop, delete all
12680 REG_EQUAL notes referencing the reversed biv except those which are
12681 for a giv based on it.
12682
12683 Fri Jul 9 03:51:52 1999 Jeffrey A Law (law@cygnus.com)
12684
12685 * version.c: Drop "gcc-" prefix from version #.
12686
12687 Thu Jul 8 18:06:30 1999 Jason Merrill <jason@yorick.cygnus.com>
12688
12689 * dwarf2out.c (dwarf2out_line): Emit a line number comment after
12690 the label if we're being verbose.
12691
12692 Thu Jul 8 14:18:46 1999 Richard Henderson <rth@cygnus.com>
12693
12694 * m68k.c (output_function_prologue): Add pic register to mask
12695 if live and flag_pic.
12696 (output_function_epilogue): Likewise.
12697
12698 Thu Jul 8 12:55:12 1999 Jeffrey A Law (law@cygnus.com)
12699
12700 * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
12701 directives in column zero.
12702
12703 * pa/elf.h (ASM_FILE_START): Define.
12704 * pa/som.h (ASM_FILE_START): Include .level directives.
12705 * pa/hpux10.h (ASM_FILE_START): Delete.
12706 * pa/hpux11.h (ASM_FILE_START): Delete.
12707
12708 * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
12709
12710 Thu Jul 8 18:03:19 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
12711
12712 * reload1.c (choose_reload_regs): Never call remove_adress_replacements
12713 when reload_out equals reload_in.
12714
12715 Thu Jul 8 16:50:14 1999 Nick Clifton <nickc@cygnus.com>
12716
12717 * invoke.texi (Spec Files): New node: Describe the contents of
12718 spec files.
12719
12720 Thu Jul 8 10:28:25 1999 Craig Burley <craig@jcb-sc.com>
12721
12722 * invoke.texi (DEC Alpha Options): Put @end table at
12723 beginning of line, to avoid confusing texi2html.
12724
12725 Thu Jul 8 09:22:06 1999 Nick Clifton <nickc@cygnus.com>
12726
12727 * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
12728 introduced in previous delta.
12729
12730 Wed Jul 7 02:00:04 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
12731
12732 * reload1.c (gen_reload): When synthesizing a 3 operand add
12733 sequence, improve test for when to reload OP1 into the reload
12734 register instead of OP0.
12735
12736 Wed Jul 7 01:38:03 1999 Jim Wilson <wilson@cygnus.com>
12737
12738 * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
12739
12740 1999-07-07 Manfred Hollstein <mhollstein@cygnus.com>
12741
12742 * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
12743 string literal.
12744
12745 Wed Jul 7 01:16:43 1999 Richard Henderson <rth@cygnus.com>
12746
12747 * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
12748 (va_dcl): Use __builtin_va_alist_t.
12749
12750 Wed Jul 7 01:14:42 1999 Jason Merrill <jason@yorick.cygnus.com>
12751
12752 * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
12753 on the permanent_obstack.
12754 * dwarfout.c (output_type): Likewise.
12755
12756 Tue Jul 6 15:25:32 1999 Gavin Romig-Koch <gavin@cygnus.com>
12757
12758 * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
12759 Merged from c-typeck.c and cp/typeck.c.
12760 * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
12761 Merged into c-common.
12762
12763 Tue Jul 6 13:06:01 1999 Dave Brolley <brolley@cygnus.com>
12764
12765 * c-lex.c (errorcount): Declare it.
12766 (finish_parse): Update errorcount when using CPPLIB.
12767
12768 1999-07-06 Bruce Korb <ddsinc09@ix.netcom.com>
12769
12770 * fixinc/inclhack.def(end_else_label): Double the backslash so
12771 sed gets a chance to see it.
12772 * fixinc/inclhack.sh: regen
12773 * fixinc/fixincl.x: regen
12774
12775 Fri Jul 2 18:49:51 1999 Nick Clifton <nickc@cygnus.com>
12776
12777 Add framework to support armv5 architecture when it becomes
12778 available:
12779
12780 * config/arm/arm.c (FL_ARCH5): New processor capability flag.
12781 (arm_arch5): New variable.
12782 (all_architectures): Add armv5 line.
12783 * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
12784 -march=armv5 is specified on the command line.
12785 (arm_arch5): Export this variable.
12786 * invoke.texi: Document new string accepted by -march= switch for
12787 ARM ports.
12788
12789 * config/arm/arm.h: Replace use of constant 12 as a register
12790 number with IP_REGNUM. Similarly 14 and LR_REGNUM.
12791 * config/arm/arm.c: Replace use of constant 12 as a register
12792 number with IP_REGNUM. Similarly 14 and LR_REGNUM.
12793
12794 * config/arm/elf.h: Tidy up.
12795 * config/arm/coff.h: Tidy up.
12796
12797 Thu Jul 1 19:08:13 1999 Mark P. Mitchell <mark@codesourcery.com>
12798
12799 * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
12800 * gcc/config/mips/t-iris6gld: New file.
12801 * gcc/config/mips/iris6gld.h: Likewise.
12802
12803 Fri Jul 2 13:23:39 1999 Gavin Romig-Koch <gavin@cygnus.com>
12804
12805 * c-decl.c (widest_integer_literal_type_node,
12806 widest_unsigned_literal_type) : New.
12807 (init_decl_processing): Handle/use the two new types.
12808 * c-common.c (type_for_size,type_for_mode) : Same.
12809 * c-lex.c (yylex) : Same.
12810 * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
12811 Same.
12812 * c-tree.h (widest_integer_literal_type_node,
12813 widest_unsigned_literal_type) : New.
12814
12815 Fri Jul 2 03:05:44 1999 Jeffrey A Law (law@cygnus.com)
12816
12817 * dwarfout.c (field_byte_offset): Correctly compute the object's
12818 byte offset for the first bit of a field which crosses an alignment
12819 boundary on a !BYTES_BIG_ENDIAN target.
12820
12821 Fri Jul 2 01:36:36 1999 Robert Lipe <robertlipe@usa.net>
12822
12823 * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
12824 ntohs.
12825
12826 Fri Jul 2 00:46:47 1999 Richard Henderson <rth@cygnus.com>
12827 Jeff Law <law@cygnus.com>
12828
12829 * ginclude/varargs.h (va_dcl): Use word_mode for type of
12830 __builtin_va_list.
12831
12832 * except.c: Include intl.h.
12833 (expand_eh_return): Set current_function_cannot_inline.
12834 (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
12835 * function.h (struct function): Add eh_return_stub_label.
12836 * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
12837 * Makefile.in (except.o): Depend on intl.h.
12838
12839 Fri Jul 2 00:04:23 1999 David Edelsohn <edelsohn@gnu.org>
12840
12841 * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
12842 same as offsettable in cases 1 and 2.
12843
12844 Thu Jul 1 20:54:10 1999 Richard Henderson <rth@cygnus.com>
12845
12846 * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
12847 (extlh, extwh): Likewise.
12848
12849 Thu Jul 1 11:05:25 1999 Gavin Romig-Koch <gavin@cygnus.com>
12850
12851 * c-lex.c (yylex): Improve 'integer constant out of range' messages.
12852
12853 Wed Jun 30 16:51:41 1999 Nick Clifton <nickc@cygnus.com>
12854
12855 * configure.in: Add arm-pe and thumb-pe targets.
12856 * configure: Regenerate.
12857
12858 * thumb.c (arm_naked_function_p): New function: Determines if
12859 a function is naked (has no gcc generated prologue/epilogue).
12860 (is_called_in_ARM_mode): Return true if the func has the
12861 interfacearm attribute.
12862 (output_return): Do not generate a return for naked functions.
12863 (thumb_function_prologue): Do not generate a prologue for
12864 naked functions.
12865 (thumb_expand_prologue): Do not generate a prologue for naked
12866 functions.
12867 (thumb_expand_epilogue): Do not generate an epilogue for naked
12868 functions.
12869 (arm_valid_machine_decl_attribute): New function, copied from
12870 arm.c: Permit naked and interfacearm attributes.
12871
12872 * config/arm/pe.c: New file: Support code for arm-pe target.
12873 * config/arm/pe.h: New file: Header file for arm-pe target.
12874 * config/arm/tpe.h: New file: Header file for thumb-pe target.
12875 * config/arm/t-thumb-pe: New file: Makefile fragment for
12876 thumb-pe target.
12877
12878 1999-07-01 Mark Kettenis <kettenis@gnu.org>
12879
12880 * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
12881 -fPIC or -fpic is specified.
12882
12883 Wed Jun 30 03:31:54 1999 Jeffrey A Law (law@cygnus.com)
12884
12885 * expr.c (emit_block_move): Use copy_to_mode_reg for
12886 !TARGET_MEM_FUNCTIONS case too.
12887
12888 * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
12889 appropriate.
12890 * configure: Rebuilt.
12891 (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
12892 * pa.h: Include dbxelf.h. Delete various dbx/stabs related
12893 definitions made redundant by dbxelf.h inclusion. Delete
12894 lots of definitions related to assembly output that are
12895 specific to the SOM object format.
12896 * pa.c (output_function_prologue): Do not emit the function's
12897 name for OBJ_ELF.
12898 * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
12899 * pa-pro.h: Deleted.
12900 * som.h: New file with SOM specific definitions.
12901 * elf.h: New file with ELF specific definitions.
12902
12903 * elfos.h (const_section): Output a tab before assembler directives.
12904 (ctors_section, dtors_section): Likewise.
12905 (ASM_OUTPUT_SECTION_NAME): Likewise.
12906
12907 * pa/pa1.h: Delete unused file.
12908
12909 Tue Jun 29 01:37:53 1999 Jeffrey A Law (law@cygnus.com)
12910
12911 * configure.in (hppa*-hp-hpux11*): New configuration.
12912 * configure: Rebuilt.
12913 * pa/pa-hpux11.h: New file.
12914 * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
12915 command line.
12916
12917 * mips.md (leasi, leadi): New patterns.
12918
12919 * expr.c (emit_block_move): Properly handle case where one of the
12920 block move arguments has a queued increment or decrement.
12921 (clear_storage): Similarly. Fix formatting goof.
12922
12923 1999-06-28 "David O'Brien" <obrien@NUXI.com>
12924
12925 * fixinc/inclhack.def(stdio_va_list): This patch Removes a
12926 semicolon from the BSD VA_LIST replacement expression.
12927
12928 * fixinc/inclhack.sh: regen
12929 * fixinc/fixincl.x: regen
12930
12931 * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
12932 now use the fixincl program.
12933
12934 Mon Jun 28 05:28:12 1999 Jeffrey A Law (law@cygnus.com)
12935
12936 * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
12937 case. Also make the PIC register call_used.
12938
12939 * m68k.h (FINALIZE_PIC): Delete.
12940 * m68k.c (finalize_pic): Delete.
12941
12942 Mon Jun 28 05:16:35 1999 Richard Henderson <rth@cygnus.com>
12943
12944 * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
12945 to memory.
12946
12947 Mon Jun 28 04:07:27 1999 David Edelsohn <edelsohn@gnu.org>
12948
12949 * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
12950
12951 Sun Jun 27 02:39:08 1999 Richard Henderson <rth@cygnus.com>
12952
12953 * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
12954
12955 Sat Jun 26 17:18:18 1999 David Edelsohn <edelsohn@gnu.org>
12956
12957 * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
12958
12959 Fri Jun 25 11:33:24 1999 Richard Henderson <rth@cygnus.com>
12960
12961 * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
12962
12963 Fri Jun 25 13:41:25 1999 David Edelsohn <edelsohn@gnu.org>
12964
12965 * rs6000.c (output_toc): Always use hex values for floating-point
12966 constants. Store single-precision values in upper-half of TOC
12967 entry in 64-bit mode.
12968 * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
12969 to final constraints.
12970 (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
12971 (fctiwz): Improve accuracy of RTL for pattern.
12972
12973 Fri Jun 25 11:26:38 1999 Gavin Romig-Koch <gavin@cygnus.com>
12974
12975 * expr.c (expand_expr): Allow RTL_EXPR's through the
12976 MAX_INTEGER_COMPUTATION_MODE checks.
12977
12978 Fri Jun 25 06:06:37 1999 Richard Henderson <rth@cygnus.com>
12979
12980 * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
12981 such that MASK_SUPPORT_ARCH is not negative.
12982
12983 Fri Jun 25 05:35:44 1999 Jeffrey A Law (law@cygnus.com)
12984
12985 * loop.c (verify_dominator): Properly handle ADDR_VEC and
12986 ADDR_DIFF_VEC insns that appear inside loops.
12987
12988 Thu Jun 24 22:54:05 1999 David Edelsohn <edelsohn@gnu.org>
12989 Jeff Law <law@cygnus.com>
12990
12991 * rs6000.md (movdf_hardfloat32): Revert previous patch.
12992 Handle LO_SUM the same as offsettable in cases 1 and 2.
12993 * rs6000.c (find_addr_reg): Revert previous patch.
12994
12995 Thu Jun 24 22:43:12 1999 Philippe De Muyter <phdm@macqel.be>
12996
12997 * system.h (strstr): New external function declaration.
12998 * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
12999 * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
13000 * config.in, configure: Rebuilt.
13001
13002 1999-06-24 Tom Tromey <tromey@cygnus.com>
13003
13004 * gcc.c (main): Read user-specified specs files after computing
13005 additional startfile_prefixes.
13006
13007 Thu Jun 24 15:00:47 1999 Mark Mitchell <mark@codesourcery.com>
13008
13009 Revert these two patches:
13010
13011 Thu Jun 17 21:34:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13012 * loop.c (strength_reduce): When doing biv->giv conversion, update
13013 reg note of NEXT->insn.
13014
13015 Thu Jun 17 17:22:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13016 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
13017 reg_biv_class.
13018 (recombine_givs): Set ix field after sorting.
13019
13020 Wed Jun 23 21:26:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13021
13022 * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
13023 for the parts of an UNSPEC / UNSPEC_VOLATILE.
13024
13025 1999-06-23 Bruce Korb <ddsinc09@ix.netcom.com>
13026
13027 *fixinc/inclhack.def: Add fix development commentary
13028 (read_ret_type): reactivate and add selection clause
13029 (zzz_*): tweak output file name to match what is used in hackshell.tpl
13030 *fixinc/{fixincl.x|inclhack.sh}: regen
13031
13032 Wed Jun 23 00:48:21 1999 Jason Merrill <jason@yorick.cygnus.com>
13033
13034 * expr.c (expand_expr): STRIP_NOPS before checking against
13035 MAX_INTEGER_COMPUTATION_MODE
13036 (check_max_integer_computation_mode): Likewise.
13037
13038 Tue Jun 22 20:23:43 1999 Jim Wilson <wilson@cygnus.com>
13039
13040 * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
13041
13042 1999-06-22 Jim Wilson <wilson@cygnus.com>
13043
13044 * expr.c (store_expr): When target is a promoted subreg, return a
13045 promoted subreg as a result.
13046
13047 Tue Jun 22 17:14:58 1999 Michael Meissner <meissner@cygnus.com>
13048
13049 * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
13050 coding standards.
13051 (dwarf2out_define): Mark unused parameters appropriately.
13052 (gen_unspecified_parameters_die): Ditto.
13053 (gen_subprogram_die): Fix signed/unsigned warnings.
13054 (gen_variable_die): Ditto.
13055
13056 1999-06-22 Bruce Korb <ddsinc09@ix.netcom.com>
13057
13058 * fixinc/inclhack.def(end_else_label): combined else_label
13059 and endif_label and fixed the sed expression.
13060 *fixinc/{fixincl.x|inclhack.sh}: regen
13061
13062 Tue Jun 22 01:58:18 1999 Jeffrey A Law (law@cygnus.com)
13063
13064 * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
13065 'x' when handling non-offsettable addresses
13066
13067 Tue Jun 22 00:20:05 1999 Richard Earnshaw (rearnsha@arm.com)
13068
13069 * final.c (shorten_branches): Don't try to split an insn that has
13070 been deleted.
13071
13072 Mon Jun 21 12:47:39 1999 Mark Mitchell <mark@codesourcery.com>
13073
13074 * config/mips/mips.c (symbolic_expression_p): New function.
13075 (mips_select_rtx_section): Put symbolic expressions in the
13076 data section, not the read-only data section.
13077
13078 Mon Jun 21 22:13:06 1999 Jeffrey A Law (law@cygnus.com)
13079
13080 * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
13081
13082 Mon Jun 21 20:10:42 1999 Richard Henderson <rth@cygnus.com>
13083
13084 * collect2.c (main): Log frame table count.
13085 (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
13086 (scan_prog_file) [COFF]: Handle frame tables.
13087
13088 * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
13089 (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
13090 * alpha/elf.h: Undef them again.
13091 * alpha/vms.h: Remove their definitions.
13092
13093 Tue Jun 22 03:17:53 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13094
13095 * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
13096 remove the clobber of r0 and change the REG_UNUSED note to
13097 REG_INC.
13098
13099 1999-06-21 Jakub Jelinek <jj@ultra.linux.cz>
13100
13101 * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
13102 * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
13103 fits in HOST_WIDE_INT and one uses union to access a long constant
13104 as double.
13105
13106 Mon Jun 21 17:18:25 1999 Richard Henderson <rth@cygnus.com>
13107
13108 * sparc.c (sparc_override_options): Don't allow profiling for
13109 code models other than medlow.
13110 (sparc_function_profiler): New function from old FUNCTION_PROFILER
13111 macro. Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
13112 (sparc_function_block_profiler): Likewise. Use user_label_prefix.
13113 (sparc_block_profiler): Likewise.
13114 (sparc_function_block_profiler_exit): Likewise.
13115 * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
13116 (FUNCTION_BLOCK_PROFILER): Likewise.
13117 (BLOCK_PROFILER): Likewise.
13118 (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
13119 (MCOUNT_FUNCTION): New.
13120 * sparc/pbd.h (FUNCTION_PROFILER): Delete.
13121 (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
13122 * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
13123 (MCOUNT_FUNCTION): New.
13124 * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
13125 (BLOCK_PROFILER): Delete.
13126 (MCOUNT_FUNCTION): New.
13127
13128 Mon Jun 21 14:11:29 1999 David Edelsohn <edelsohn@gnu.org>
13129
13130 * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
13131
13132 Mon Jun 21 12:27:17 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
13133
13134 * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13135 Add the macros.
13136
13137 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13138 Ditto.
13139
13140 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13141 Ditto.
13142
13143 * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13144 Ditto.
13145
13146 Mon Jun 21 14:58:42 1999 Nick Clifton <nickc@cygnus.com>
13147
13148 * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
13149 types.
13150
13151 Mon Jun 21 06:22:21 1999 Mark Elbrecht <snowball3@bigfoot.com>
13152
13153 * i386/djgpp.h (LIB_SPEC): New.
13154 (STARTFILE_SPEC): New.
13155
13156 * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
13157
13158 Mon Jun 21 06:19:33 1999 Philippe De Muyter <phdm@macqel.be>
13159
13160 * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
13161 compiler flags.
13162
13163 * system.h (WSTOPSIG): New macro.
13164
13165 Mon Jun 21 05:33:15 1999 Mumit Khan <khan@xraylith.wisc.edu>
13166
13167 * c-pragma.c (push_alignment): Don't ignore alignments greater than
13168 4 bytes.
13169 (insert_pack_attributes): Take into account member natural
13170 alignment.
13171
13172 * i386/winnt.c (exports_head): New static variable.
13173 (i386_pe_record_exported_symbol): New function.
13174 (i386_pe_asm_file_end): Use.
13175 * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
13176 symbols to be emitted at end of assembly.
13177 (ASM_DECLARE_OBJECT_NAME): Likewise.
13178 (ASM_DECLARE_FUNCTION_NAME): Likewise.
13179
13180 * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
13181 -iwithprefix.
13182
13183 Mon Jun 21 04:44:31 1999 Jeffrey A Law (law@cygnus.com)
13184
13185 * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
13186 in last change.
13187
13188 Sun Jun 20 17:27:20 1999 Richard Henderson <rth@cygnus.com>
13189
13190 * haifa-sched.c (sched_analyze_1): Use free_list instead of
13191 zapping reg_last_uses directly.
13192 (sched_analyze_2, sched_analyze_insn): Likewise.
13193 (sched_analyze): Likewise. Don't clear reg_last_uses on calls.
13194
13195 Sun Jun 20 16:57:29 1999 David Edelsohn <edelsohn@gnu.org>
13196
13197 * rs6000.md (movdf_hardfloat32): Use worst case insn length
13198 attributes for cases 1 and 2.
13199
13200 Sat Jun 19 22:52:55 1999 Richard Henderson <rth@cygnus.com>
13201
13202 * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
13203 instead of set.
13204
13205 Sat Jun 19 05:40:07 1999 Philip Blundell <pb@nexus.co.uk>
13206
13207 * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
13208
13209 Sat Jun 19 05:25:05 1999 Richard Earnshaw (rearnsha@arm.com)
13210
13211 * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
13212 PIC_OFFSET_TABLE_REGNUM for general alloaction.
13213 (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
13214 must be stacked if it is used for PIC accesses.
13215 * arm.c (use_return_insn): Handle PIC register specially.
13216 (output_return_instruction): Likewise.
13217 (output_func_{prologue,epilogue}): Likewise.
13218 (output_expand_prologue): Likewise.
13219
13220 * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
13221 (*strsi_predec): Renamed from *strqi_predec.
13222 (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
13223 (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
13224
13225 * arm.c (arm_override_options): Remove warning about PIC code
13226 not being supported.
13227
13228 Fri Jun 18 23:47:06 1999 David Edelsohn <edelsohn@gnu.org>
13229
13230 * rs6000.c (find_addr_reg): New function.
13231 * rs6000.h (find_addr_reg): Declare.
13232 (offsettable_addr_operand): Delete.
13233 * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
13234 from and stores to GPRs.
13235
13236 Fri Jun 18 15:44:18 1999 Richard Henderson <rth@cygnus.com>
13237
13238 * alpha.c (alpha_expand_block_move): Use get_insns rather than
13239 gen_sequence as argument to emit_no_conflict_block.
13240
13241 Fri Jun 18 07:02 1999 Bruce Korb <ddsinc09@ix.netcom.com>
13242
13243 * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
13244 * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
13245 *fixinc/fixincl.x: regen
13246 *fixinc/inclhack.sh: regen
13247
13248 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay <dlindsay@cygnus.com>
13249
13250 * added support for -mpcrel (PC relative addressing for m68k)
13251 based on code done by Michael Tiemann <tiemann@axon.cygnus.com>.
13252 * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
13253 * m68k.c (print_operand_address): Handle 32-bit PIC case.
13254 (comments for general_src_operand): Add some explanation
13255 about EXTRA_CONSTRAINTS.
13256 (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
13257 * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
13258 (LEGITIMATE_PIC_OPERAND_P): Fix typo.
13259 (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
13260 * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
13261 (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
13262 (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
13263 if not already set.
13264 (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
13265 * m68k.h (TARGET_PCREL): New target flag.
13266 (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
13267 (OVERRIDE_OPTIONS): Add checks for -mpcrel.
13268 (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
13269 contains a SYMBOL_REF. Relax this constraint during reload, since
13270 we want to use the predicates, not reload's built-in concept of a
13271 valid memory address, to control what insns need reloading.
13272 (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
13273 operands (essentially 'g', 'm', and 's' under normal circumstances).
13274 * m68k.c (print_operand): Cause printing of pc-relative addresses
13275 to include pc register.
13276 (print_operand_address): Ditto.
13277 (general_src_operand): Accept operands that are not only
13278 general_operands, but are also valid when used as a pc-relative
13279 source.
13280 (nonimmediate_src_operand): Similar, for nonimmediate_operands.
13281 (memory_src_operand): Similar, for memory_operands.
13282 (pcrel_address): New predicate to accept the special case of a
13283 pc-relative address.
13284 * m68k.md (many patterns): Rewrite common SImode, HImode, and
13285 QImode insns to accept *_src_operand instead of *_operand where
13286 pc-relative operands can fit. For example, a pc-relative operand
13287 can be used as a memory source operand for addsi3, but not as a
13288 memory destination.
13289 * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
13290
13291 Fri Jun 18 09:11:07 1999 Nick Clifton <nickc@cygnus.com>
13292
13293 * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
13294 .thumb_set pseudo op to mark aliases of thumb functions.
13295
13296 Wed Jun 16 18:19:13 1999 Nick Clifton <nickc@cygnus.com>
13297
13298 * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
13299 preference to ASM_OUTPUT_DEF, if it is defined.
13300
13301 * tm.texi: Document new, optional target macro
13302 ASM_OUTPUT_DEF_FROM_DECLS.
13303
13304 Thu Jun 17 15:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
13305
13306 * fixincludes: ISCNTL patch
13307 * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
13308 (dgux_int_varargs): new for DG/UX
13309 * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
13310
13311 Thu Jun 17 21:34:24 1999 Jeff Law <law@cygnus.com>
13312
13313 * invoke.texi (ia32 options): Fix typo.
13314
13315 Thu Jun 17 21:34:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13316
13317 * loop.c (strength_reduce): When doing biv->giv conversion, update
13318 reg note of NEXT->insn.
13319
13320 Thu Jun 17 14:25:08 1999 Jeffrey A Law (law@cygnus.com)
13321
13322 * loop.c (move_movables): Note issues with replacing REGs with
13323 SUBREGs.
13324 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
13325
13326 Thu Jun 17 13:28:30 1999 David O'Brien <obrien@FreeBSD.org>
13327
13328 * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
13329
13330 * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
13331 the reference to `mcount' was not correct for the ELF on FreeBSD.
13332
13333 Thu Jun 17 17:22:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13334
13335 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
13336 reg_biv_class.
13337
13338 (recombine_givs): Set ix field after sorting.
13339
13340 Thu Jun 17 02:54:30 1999 Jeffrey A Law (law@cygnus.com)
13341
13342 * emit-rtl.c (operand_subword): Tighten checks for when it is safe
13343 to safe to extract a subword out of a REG.
13344
13345 Thu Jun 17 01:45:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13346
13347 * sh.md (mulsi3): Don't add a no-op move at the end.
13348
13349 Wed Jun 16 20:29:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13350
13351 * cse.c (cse_insn): Don't put hard register source into tables for
13352 the last insn of a libcall.
13353
13354 Wed Jun 16 19:44:33 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13355
13356 * loop.c (strength_reduce): Insert sets of derived givs at every
13357 biv increment, even if it's the only one.
13358
13359 Wed Jun 16 10:33:02 1999 Jason Merrill <jason@yorick.cygnus.com>
13360
13361 * dwarfout.c (add_incomplete_type): New fn.
13362 (output_type): Call it.
13363 (retry_incomplete_types): New fn.
13364 (dwarfout_finish): Call it.
13365
13366 From Eric Raskin <ehr@listworks.com>:
13367 (output_type): Output types for bases.
13368
13369 Tue Jun 15 12:51:23 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
13370
13371 * mips.c (mips_output_conditional_branch): Add `break'
13372 between `default' label and `close braces'.
13373
13374 Tue Jun 15 01:55:20 1999 David O'Brien <obrien@FreeBSD.org>
13375
13376 * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
13377 specifications and make it realistic.
13378 (LIB_SPEC): Likewise.
13379
13380 Mon Jun 14 15:38:43 1999 Jim Wilson <wilson@cygnus.com>
13381
13382 * config/mips/mips.c (mips_secondary_reload_class): Check for
13383 (PLUS (SP) (REG)) and return appropriate register class.
13384 * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
13385 Handle (PLUS (SP) (REG)).
13386 (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
13387 (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
13388 of emit_insn for tablejump.
13389
13390 Mon Jun 14 17:26:40 1999 David Edelsohn <edelsohn@gnu.org>
13391
13392 * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
13393 asm_fprintf format string by itself.
13394 (output_function_profiler): Likewise.
13395
13396 Mon Jun 14 12:57:38 1999 David Mosberger <davidm@hpl.hp.com>
13397
13398 * combine.c (simplify_logical, case AND): Only call
13399 simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
13400 or the constant is positive.
13401
13402 Mon Jun 14 11:43:41 1999 Nick Clifton <nickc@cygnus.com>
13403
13404 * configure.in: Fix typo in rs6000-ibm-aix4 case.
13405 * configure: Regenerate.
13406
13407 Mon Jun 14 03:55:40 1999 Jeffrey A Law (law@cygnus.com)
13408
13409 * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
13410 require a sub-version #.
13411 * configure: Rebuilt.
13412
13413 1999-06-14 Robert Lipe (robertlipe@usa.net)
13414
13415 * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
13416
13417 Mon Jun 14 10:30:52 BST 1999 Nathan Sidwell <nathan@acm.org>
13418
13419 * c-typeck.c (process_init_element): Detect excess elements in
13420 char array initializer.
13421
13422 1999-06-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
13423
13424 * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
13425
13426 Sat Jun 12 22:29:48 EDT 1999 Jerry Quinn <jquinn@nortelnetworks.com>
13427
13428 * invoke.texi (Option Summary): Add -fpermissive flag.
13429
13430 Sat Jun 12 03:40:42 1999 Jeffrey A Law (law@cygnus.com)
13431
13432 * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
13433 that require PIC code sequences.
13434
13435 Wed Jun 9 16:29:01 1999 Nick Clifton <nickc@cygnus.com>
13436
13437 * configure.in: Add new target: thumb-elf.
13438 * configure: Regenerate.
13439 * config/arm/t-thumb-elf: New file: Makefile fragment for
13440 thumb-elf build.
13441 * config/arm/telf.h: New file: Header file for thumb-elf
13442 build.
13443
13444 Fri Jun 11 03:17:51 1999 Jeffrey A Law (law@cygnus.com)
13445
13446 * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
13447 * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
13448 initializers is some circumstances.
13449
13450 * fixinc/inclhack.def (endif_label): Add additional selector for
13451 more bogus stuff after #endif statements.
13452 * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
13453
13454 Thu Jun 10 20:44:36 1999 Mumit Khan <khan@xraylith.wisc.edu>
13455
13456 * i386/cygwin.h (SET_ASM_OP): Define.
13457
13458 Thu Jun 10 20:37:57 1999 Mumit Khan <khan@xraylith.wisc.edu>
13459
13460 * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
13461
13462 Thu Jun 10 19:23:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13463
13464 * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
13465 latter.
13466
13467 * sh.md (ic_invalidate_line_i): Remove second alternative.
13468
13469 Thu Jun 10 06:55 1999 Bruce Korb <ddsinc09@ix.netcom.com>
13470
13471 *fixinc/inclhack.def(sun_auth_proto): We do not know how to
13472 test for the presence of valid prototypes. Delete bypass expr.
13473 (ioctl_fix_ctrl): Correct the selection expression.
13474 (no_double_slash): Correct quoting rules
13475 *fixinc/fixincl.x: regen
13476 *fixinc/inclhack.sh: regen
13477
13478 Thu Jun 10 15:08:15 1999 Nick Clifton <nickc@cygnus.com>
13479
13480 * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
13481
13482 Wed Jun 9 15:57:57 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
13483
13484 * rs6000.md (movsi_got_internal_mem): Delete.
13485 * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
13486 (GOT_TOC_REGNUM): Delete.
13487 (PIC_OFFSET_TABLE_REGNUM): Define.
13488 (FINALIZE_PIC): Disable.
13489 * rs6000.c (rs6000_got_register): New code for fixed pic register.
13490 (rs6000_replace_regno): Delete.
13491 (rs6000_finalize_pic): Likewise.
13492 (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
13493
13494 Wed Jun 9 19:44:26 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13495
13496 * loop.c (loop_insn_first_p): Don't compare LUIDs when P
13497 is a note; use <= for the compare; advance P while it is
13498 a NOTE.
13499
13500 Wed Jun 9 13:12:24 1999 Jeffrey A Law (law@cygnus.com)
13501
13502 * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
13503 * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
13504
13505 * varasm.c (remove_from_pending_weak_list): Verify t->name
13506 is non-NULL before passing it to strcmp.
13507
13508 Wed Jun 9 06:50 1999 Bruce Korb <ddsinc09@ix.netcom.com>
13509
13510 *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
13511 the typed arguments are not part of a comment
13512 (ioctl_fix_ctrl): Added a purpose comment
13513 *fixinc/fixincl.x: regenerate
13514 *fixinc/inclhack.sh: regenerate
13515
13516 Wed Jun 9 22:57:02 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13517
13518 * invoke.texi: Add C4x invocation docs.
13519
13520 Wed Jun 9 22:34:38 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13521
13522 * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
13523 Define new macros.
13524 * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
13525 TARGET_EXPOSE_LDP.
13526 (c4x_legitimize_reload_address): New function.
13527 * config/c4x/c4x.md: Update docs.
13528
13529 Wed Jun 9 04:14:48 1999 Jeffrey A Law (law@cygnus.com)
13530
13531 * fixincludes: Avoid removing '.'.
13532 * fixinc/fixinc.svr4: Likewise.
13533 * fixinc/fixinc.winnt: Likewise.
13534 * fixinc/inclhack.tpl: Likewise.
13535 * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
13536
13537 1999-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13538
13539 * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
13540 pattern.
13541 * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
13542
13543 Wed Jun 9 03:10:34 1999 Mumit Khan <khan@xraylith.wisc.edu>
13544
13545 * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
13546 correctly.
13547
13548 Tue Jun 8 13:06:15 1999 Jim Wilson <wilson@cygnus.com>
13549
13550 * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
13551 * configure: Regenerate.
13552
13553 Tue Jun 8 05:47:48 1999 Richard Earnshaw (rearnsha@arm.com)
13554
13555 * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
13556 values.
13557
13558 Mon Jun 7 22:30:37 1999 Jeffrey A Law (law@cygnus.com)
13559
13560 * fixinc/inclhack.def (avoid_bool): Also catch
13561 "typedef [unsigned] int bool".
13562 * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
13563
13564 * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
13565 * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
13566 * configure: Rebuilt.
13567
13568 Mon Jun 7 22:05:03 1999 Mark Kettenis <kettenis@gnu.org>
13569
13570 * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
13571 such that we can override its definitions if necessary.
13572 (CPP_SPEC): New define. Support processor specific predefines via
13573 %(cpp_cpu).
13574 (CC1_SPEC): New define. Support processor specific compiler
13575 options via %(cc1_cpu).
13576 (STARTFILE_SPEC): New define. Use crt0.o instead of crt1.o for
13577 -static.
13578
13579 1999-06-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13580
13581 * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
13582 between sed's -e flag, and the open-quote following it.
13583 * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
13584
13585 Mon Jun 7 20:34:20 1999 Robert Lipe <robertlipe@usa.net>
13586 Jeffrey A Law (law@cygnus.com)
13587
13588 * varasm.c (assemble_start_function): Remove the function
13589 from the pending weak decls list when we define a function.
13590 (assemble_variable): Similarly for variables.
13591 (weak_finish): Ignore items on the list with a NULL name.
13592 (remove_from_ending_weak_list); New function to "remove" an item
13593 from the pending weak declarations list.
13594
13595 Mon Jun 7 19:27:07 1999 Jerry Quinn <jquinn@nortelnetworks.com>
13596
13597 * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
13598
13599 Mon Jun 7 14:07:39 1999 Dave Brolley <brolley@cygnus.com>
13600
13601 * c-lex.c (GETC): Redefine to call getch.
13602 (UNGETC): Redefine to call put_back.
13603 (putback_buffer): New structure type.
13604 (putback): New static structure.
13605 (getch): New function.
13606 (put_back): New function.
13607 (yylex): Replace unused bytes from bad multibyte character.
13608
13609 Mon Jun 7 13:33:39 1999 Dave Brolley <brolley@cygnus.com>
13610
13611 * cpplib.c (do_define): Cast `alloca' return value.
13612 (do_include, do_undef, do_pragma): Likewise.
13613 * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
13614 values.
13615 * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
13616 * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
13617
13618 Sun Jun 6 11:58:34 1999 Jakub Jelinek <jj@ultra.linux.cz>
13619
13620 * sparc.md (abstf2): This should be an expand.
13621 (split after abstf2_notv9): Fix mode.
13622 (abstf2_hq_v9): New pattern.
13623 (abstf2_v9): Only use when no hard quad.
13624 (absdf2_v9): Fix if target is not the same as source.
13625 (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
13626 Add correct output constraints.
13627
13628 Sat Jun 5 17:04:16 1999 Craig Burley <craig@jcb-sc.com>
13629
13630 From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
13631 * invoke.texi: Clarify text vis-a-vis Intel CPUs.
13632
13633 Sat Jun 5 12:11:24 1999 Mark Mitchell <mark@codesourcery.com>
13634
13635 * mips.h (mips_output_conditional_branch): New function.
13636 (mips_adjust_insn_length): Likewise.
13637 (ASSEMBLER_SCRATCH_REGNUM): New macro.
13638 (ADJUST_INSN_LENGTH): Likewise.
13639 * mips.c (print_operand): Add `F' and `W' for floating-point
13640 comparison opcodes.
13641 (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
13642 are now in bytes.
13643 (mips_adjust_insn_length): New function.
13644 (mips_output_conditional_branch): New function.
13645 * mips.md (length): Adjust attribute definition to handle
13646 conditional branches. Change lengths to bytes, rather than
13647 instructions throughout. Remove length attribute from
13648 instructions whose length is four bytes, and rely on the default
13649 instead.
13650 (dslot): Fix typo in comment.
13651 Reword conditional branch patterns to use
13652 mips_output_conditional_branch.
13653
13654 Fri Jun 4 13:30:27 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13655
13656 * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
13657 (LIB_SPEC): Likewise.
13658 Link with -lprof1_r for -g/-pg.
13659
13660 1999-06-04 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
13661
13662 * loop.c (check_dbra_loop): Fix change of Jan 19.
13663
13664 Fri Jun 4 00:12:40 1999 Marc Espie <espie@cvs.openbsd.org>
13665
13666 * freebsd-elf.h (SWITCH_TAKES_ARG): Redefine, not define.
13667 (STARTFILE_SPEC): Define, override the svr4.h version.
13668 (ENDFILE_SPEC): Likewise.
13669
13670 Thu Jun 3 23:58:55 1999 Jeffrey A Law (law@cygnus.com)
13671
13672 * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
13673 * fixinc/fixincl.x: Regenerated.
13674 * fixinc/inclhack.sh: Regenerated.
13675
13676 Fri Jun 4 05:42:23 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13677
13678 * sh.c (barrier_align): Don't return early for normal branch/barrier
13679 when optimizing for SH2.
13680
13681 Thu Jun 3 22:27:50 1999 Robert Lipe <robertlipe@usa.net>
13682
13683 * i386/udk.h (LINK_SPEC): Correct linker search path for
13684 system libraries.
13685
13686 Fri Jun 4 03:20:40 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13687
13688 * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
13689 (braf_label_ref_operand): Delete.
13690 * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
13691 * sh.md (casesi_jump_2): Operand1 is now the inside of a
13692 label_ref, and has no predicate.
13693 The patten has a predicate to guard against invalid substitutions.
13694 (dummy_jump): Delete.
13695 (casesi): Update use of casesi_jump_2.
13696
13697 Thu Jun 3 07:48 1999 Bruce Korb <ddsinc09@ix.netcom.com>
13698
13699 *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
13700 *fixinc/fixincl.x: regenerate
13701 *fixinc/inclhack.sh: regenerate
13702
13703 Thu Jun 3 02:15:07 1999 Jason Merrill <jason@yorick.cygnus.com>
13704
13705 * dwarf2out.c (add_incomplete_type): New fn.
13706 (gen_struct_or_union_type_die): Call it.
13707 (retry_incomplete_types): New fn.
13708 (dwarf2out_finish): Call it.
13709
13710 Thu Jun 3 01:19:03 1999 Jeffrey A Law (law@cygnus.com)
13711
13712 * gcse.c (insert_insn_end_bb): Correct placement of insns when the
13713 current block starts with a CODE_LABEL and ends with a CALL and
13714 we can not find all the argument setup instructions for the CALL.
13715
13716 Wed Jun 2 15:44:15 1999 Mark Mitchell <mark@codesourcery.com>
13717
13718 Revert this change:
13719 * fold-const.c (fold): STRIP_NOPS when deciding whether or not
13720 something is a candidate for optimize_bit_field_compare.
13721
13722 Wed Jun 2 21:53:05 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13723
13724 * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
13725
13726 Wed Jun 2 12:25:55 1999 Richard Henderson <rth@cygnus.com>
13727
13728 * alpha.c (override_options): Thinko in last patch.
13729
13730 * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
13731 (LIB_SPEC): Recognize -pthread.
13732
13733 Wed Jun 2 08:42:55 1999 Nick Clifton <nickc@cygnus.com>
13734
13735 * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
13736 definition in config/arm/coff.h
13737 * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
13738
13739 Wed Jun 2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
13740
13741 * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
13742 fixes that need "file=xxx\n" prepended before invocation
13743 (start_fixer - new): starting the fixer process is complex enough
13744 to warrent its own routine. It prepends the "file=xxx\n" stuff.
13745 (process): uses the new routine; omit usage of putenv()
13746 * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
13747 * fixinc/fixincl.x: regenerate
13748
13749 Wed Jun 2 02:29:07 1999 Jeffrey A Law (law@cygnus.com)
13750
13751 * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
13752 and version #s (1.1 -> 2.96) as needed.
13753 * README.g77: Kill way out of date file in the toplevel directory.
13754
13755 Wed Jun 2 00:52:34 1999 David O'Brien <obrien@FreeBSD.org>
13756
13757 * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
13758 i386/freebsd-elf.h no longer requires it. Instead include svr4.h.
13759 * configure: Rebuilt.
13760 * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
13761 (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
13762 (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
13763 (SWITCH_TAKES_ARG): Likewise.
13764 * i386/freebsd.h: Remove FREEBSD_NATIVE support.
13765 * config/t-freebsd: Moved from config/i386/ so it can used for all
13766 FreeBSD targets.
13767
13768 Mon May 31 02:22:55 1999 Philippe De Muyter <phdm@macqel.be>
13769
13770 * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
13771
13772 Wed Jun 2 00:08:34 1999 Robert Lipe <robertlipe@usa.net>
13773
13774 * configure.in (i[34567]86-*-udk*): Install headers with cpio.
13775 * configure: Rebuilt.
13776
13777 Tue Jun 1 19:06:22 1999 David Edelsohn <edelsohn@gnu.org>
13778
13779 * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
13780 * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
13781 * rs6000/rs6000.c (rs6000_file_start): Use putc.
13782 (rs6000_output_load_toc_table): Same.
13783 (output_prolog, output_mi_thunk): Same.
13784 * rs6000/rs6000.h (SELECT_SECTION): Formatting.
13785 (ASM_GLOBALIZE_LABEL): Use putc.
13786
13787 Mon May 31 15:23:23 1999 Richard Henderson <rth@cygnus.com>
13788
13789 * alpha.md (reload_*_help): New patterns and splitters.
13790 (reload_*): Use them.
13791 (mov[qh]i): Likewise.
13792
13793 Mon May 31 11:48:07 1999 Mark Mitchell <mark@codesourcery.com>
13794
13795 * cccp.c (handle_directive): Handle backslash-newlines in quoted
13796 strings correctly.
13797
13798 Mon May 31 09:36:11 1999 Cort Dougan <cort@cs.nmt.edu>
13799
13800 * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
13801
13802 Mon May 31 11:40:20 EDT 1999 John Wehle (john@feith.com)
13803
13804 * flow.c (mark_regs_live_at_end, insn_dead_p,
13805 mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
13806 and HARD_FRAME_POINTER_REGNUM special treatment if reload
13807 hasn't run or the frame pointer is needed.
13808 * haifa-sched.c (attach_deaths): Likewise.
13809 * sched.c (attach_deaths): Likewise.
13810
13811 Mon May 31 00:46:17 1999 Jeffrey A Law (law@cygnus.com)
13812
13813 * jump.c (jump_optimize_1): Only set CAN_REACH_END if
13814 calculate_can_reach_end returns nonzero.
13815
13816 * configure.in (native gas tests): Search for an assembler in the
13817 same manner that the installed compiler will.
13818 * configure: Rebuilt.
13819 * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
13820
13821 * alias.c (find_base_term): Improve handling of addresses
13822 constructed from binary operations.
13823
13824 Sun May 30 14:29:17 1999 Eric Raskin (ehr@listworks.com)
13825
13826 * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
13827
13828 Sun May 30 14:19:13 1999 Jeffrey A Law (law@cygnus.com)
13829
13830 * function.h (cleanup_label, frame_offset): Declare.
13831 (tail_recursion_label, tail_recursion_reentry): Likewise.
13832 (arg_pointer_save_area, rtl_expr_chain): Likewise.
13833 * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
13834 (tail_recursion_label, tail_recursion_reentry): Likewise.
13835 (arg_pointer_save_area, rtl_expr_chain): Likewise.
13836
13837 Sat May 29 19:08:10 1999 Philip Blundell <philb@gnu.org>
13838
13839 * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
13840 defined.
13841 * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
13842 (MAX_OFILE_ALIGNMENT): Define.
13843
13844 Fri May 28 21:40 1999 Robert Lipe <robertlipe@usa.net>
13845
13846 * fixincl.c: Replace local include scheme with #includes of
13847 gansidecl.h and system.h.
13848 * procopen.c: Likewise.
13849 * server.c: Likewise.
13850
13851 Fri May 28 03:47:03 1999 Eric Raskin (ehr@listworks.com)
13852
13853 * i386/t-dgux (EXTRA_PARTS): Add crti.o
13854 (crti.o): Add build rule and dependencies.
13855 * fixinc/fixinc.dgux: Use modified _int_varargs.h
13856
13857 Fri May 28 03:41:02 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
13858
13859 * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
13860 (LIB_LINUX_SPEC): Likewise.
13861 (LIB_LINUX_SPEC): Add support for -pthread
13862 (CPP_OS_LINUX_SPEC): Likewise.
13863 (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
13864 specified.
13865
13866 Thu May 27 13:04:52 1999 H.J. Lu (hjl@gnu.org)
13867
13868 * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
13869 conditional move.
13870 (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
13871 (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
13872 for IEEE math and CC_FCOMI.
13873 (put_jump_code): No IEEE if CC_FCOMI is set.
13874
13875 1999-05-27 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
13876
13877 * fold-const.c (fold_truthop): Make the field reference unsigned
13878 when converting a single bit compare.
13879
13880 Thu May 27 02:40:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13881
13882 * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
13883
13884 Thu May 27 02:09:27 1999 Jeffrey A Law (law@cygnus.com)
13885
13886 * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
13887 * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
13888 version did.
13889
13890 * reload.c (push_reload): Do not call remove_address_replacements
13891 when presented with identical optional reloads.
13892
13893 Wed May 26 14:18:05 1999 Richard Henderson <rth@cygnus.com>
13894
13895 * alpha.h (MASK_FIX, TARGET_FIX): New.
13896 (MASK_*): Reorganize constants.
13897 (CPP_AM_FIX_SPEC): New.
13898 (TARGET_SWITCHES): Add FIX.
13899 (EXTRA_SPECS): Likewise.
13900 (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
13901 (SECONDARY_MEMORY_NEEDED): Likewise.
13902 (REGISTER_MOVE_COST): Likewise.
13903 * alpha.c (override_options): Add FIX support. Always use
13904 ALPHA_TP_PROG for ev6.
13905 * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
13906 * alpha/elf.h (ASM_FILE_START): Look at FIX too.
13907 * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
13908
13909 Wed May 26 09:53:05 1999 Mark Mitchell <mark@codesourcery.com>
13910
13911 * fold-const.c (fold): STRIP_NOPS when deciding whether or not
13912 something is a candidate for optimize_bit_field_compare.
13913
13914 Wed May 26 09:40:02 1999 Mark Mitchell <mark@codesourcery.com>
13915
13916 * gcc.texi (Passes): Document branch-shortening.
13917 * invoke.texi (Debugging Options): Document the fact that `-dp'
13918 outputs length information for instructions.
13919
13920 Wed May 26 08:49:31 1999 Nick Clifton <nickc@cygnus.com>
13921
13922 * flow.c: Revert previous delta.
13923
13924 Wed May 26 06:05:10 1999 Nick Clifton <nickc@cygnus.com>
13925
13926 * flow.c (insn_dead_p): Check against frame_pointer_rtx not
13927 FRAME_POINTER_REGNUM.
13928 (mark_set_1): Ditto.
13929 (mark_used_regs): Ditto.
13930
13931 Wed May 26 02:19:31 1999 Philip Blundell <pb@nexus.co.uk>
13932
13933 * arm.h (NEED_PLT_GOT): Fix mistake in last change.
13934 (GOT_PCREL): New macro. Define to 1 if not already defined.
13935 * arm/elf.h (GOT_PCREL): Define to 0.
13936 * arm.c (arm_finalize_pic): Take into account the setting of
13937 GOT_PCREL.
13938
13939 Tue May 25 14:06:06 1999 Jeffrey A Law (law@cygnus.com)
13940
13941 * output.h (STRIP_NAME_ENCODING): Provide default definition.
13942 * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
13943
13944 * flow.c (mark_set_1): Do not record BLKmode stores as dead
13945 store elimination candidates.
13946
13947 Tue May 25 08:55:57 1999 Gavin Romig-Koch <gavin@cygnus.com>
13948
13949 * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
13950 TARGET_GAS.
13951
13952 Mon May 24 20:30:08 1999 Jim Wilson <wilson@cygnus.com>
13953
13954 * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
13955 Add use of x-aix41-gld.
13956
13957 Mon May 24 16:44:09 1999 Jakub Jelinek <jj@ultra.linux.cz>
13958
13959 * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
13960 (ASM_OUTPUT_DESTRUCTOR): Define.
13961
13962 Mon May 24 14:35:24 1999 Jeffrey A Law (law@cygnus.com)
13963
13964 * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
13965 last CODE_LABEL in a loop if we have previously passed a jump
13966 to the top of the loop.
13967
13968 Mon May 24 07:56:29 1999 Nick Clifton <nickc@cygnus.com>
13969
13970 * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
13971 applying Philip's patch.
13972
13973 Mon May 24 01:02:12 1999 Mark Mitchell <mark@codesourcery.com>
13974
13975 * stmt.c (expand_end_bindings): Ignore any elements of VARS that
13976 are not VAR_DECLs.
13977
13978 Sun May 23 20:31:16 1999 Jeffrey A Law (law@cygnus.com)
13979
13980 * loop.c (strength_reduce): Grow reg_single_usage as needed.
13981
13982 Sun May 23 10:13:20 1999 David O'Brien <obrien@FreeBSD.org>
13983
13984 * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
13985 Also remove a useless comment.
13986
13987 Sun May 23 10:05:23 1999 Jerry Quinn <jquinn@nortelnetworks.com>
13988
13989 * pa.md (negdf2,negsf2): Use fneg instead of fsub on pa 2.0.
13990
13991 Sat May 22 21:02:06 1999 David Edelsohn <edelsohn@gnu.org>
13992
13993 * collect2.c (main): Only generate import or export file and add
13994 to link arguments if non-empty. Use xmalloc not alloca.
13995 (write_{export,import}_file): Delete.
13996 (write_aix_file): New function.
13997 (locatelib): Use xmalloc not malloc.
13998 (GCC_OK_SYMBOL): Do not check type if aix64.
13999
14000 Sat May 22 09:35:51 1999 Philip Blundell <pb@nexus.co.uk>
14001
14002 Based on patch by Scott Bambrough and Pat Beirne:
14003 * config/arm/arm.c (making_const_table): New variable.
14004 * config/arm/arm.h (making_const_table): Declare.
14005 (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
14006 appropriate.
14007 * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
14008 Keep track of when we are building the constant table.
14009
14010 Sat May 22 09:34:22 1999 Philip Blundell <pb@nexus.co.uk>
14011
14012 * config/arm/arm.c (arm_override_options): Fix erroneous warning
14013 message.
14014
14015 Sat May 22 09:06:33 1999 Nick Clifton <nickc@cygnus.com>
14016
14017 * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
14018 defined.
14019
14020 Sat May 22 07:17:05 1999 Nick Clifton <nickc@cygnus.com>
14021
14022 * tm.texi (FUNCTION_ARG): Correct description of a stack element
14023 in a PARALLEL.
14024
14025 Sat May 22 01:27:49 1999 Mark Mitchell <mark@codesourcery.com>
14026
14027 * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
14028
14029 Fri May 21 21:19:02 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
14030
14031 * rs6000.c (output_mi_thunk): Enable full support again.
14032
14033 Fri May 21 20:09:52 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
14034
14035 * sh.h (BRANCH_COST): Define.
14036
14037 Thu May 20 10:00:42 1999 Stephen L Moshier <moshier@world.std.com>
14038
14039 * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
14040
14041 Thu May 20 09:58:57 1999 Jan Hubicka <hubicka@freesoft.cz>
14042
14043 * function.c (assign_stack_local): Align stack slot propertly.
14044 (assign_outer_stack_local): Likewise.
14045
14046 Thu May 20 10:38:43 1999 Mark Mitchell <mark@codesourcery.com>
14047
14048 * expr.h (lang_expand_constant): Declare.
14049 * toplev.c (lang_expand_constant): Define it.
14050 * varasm.c (output_constant): Use it.
14051
14052 Thu May 20 11:28:53 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14053
14054 * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
14055 Change function definitions to K&R style.
14056
14057 Thu May 20 08:16:39 1999 Bruce Korb <ddsinc09@ix.netcom.com>
14058
14059 * fixinc/fixincl.c: We must not ignore SIGCLD now.
14060
14061 Thu May 20 07:06:39 1999 Alexandre Oliva <aoliva@acm.org>
14062
14063 * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
14064 * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
14065 (several places): omit static initialization
14066 (process): use single fd, since only the read fd is used
14067 * fixinc/gnu-regex.c: define 'const' away, if not supported
14068 * fixinc/procopen.c(several places): omit static initialization
14069 * fixinc/server.c: define 'volitile' away, if not supported
14070
14071 1999-05-20 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
14072
14073 * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
14074 asm_fprintf and %L to generate the label name.
14075 * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
14076 (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
14077
14078 Thu May 20 01:40:55 1999 Jeffrey A Law (law@cygnus.com)
14079
14080 * jump.c (can_reverse_comparison_p): Do not abort if the comparison
14081 insn for a conditional jump can not be found.
14082
14083 Wed May 19 23:58:58 1999 Jeffrey A Law (law@cygnus.com)
14084
14085 * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
14086 on variables in specific sections other than .sbss and .sdata.
14087
14088 Wed May 19 03:56:56 1999 Mark Mitchell <mark@codesourcery.com>
14089
14090 * stmt.c (expand_return): Call start_cleanup_deferral and
14091 end_cleanup_deferral around conditional code.
14092
14093 Wed May 19 08:40:08 1999 Bruce Korb <ddsinc09@ix.netcom.com>
14094
14095 * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
14096 filename lists. Utilizes new "krstr" AutoGen function.
14097 * fixinc/fixincl.x: Rebuilt.
14098
14099 Wed May 19 02:47:11 1999 Jan Hubicka (hubicka@freesoft.cz)
14100
14101 * i386.c (output_float_compare): Avoid GNU-C extensions.
14102
14103 Wed May 19 00:34:40 1999 Jeffrey A Law (law@cygnus.com)
14104
14105 * version.c: Bump to distinguish mainline tree from the
14106 gcc-2.95 branch.
14107
14108 See ChangeLog.1 for earlier changes.
This page took 0.579499 seconds and 6 git commands to generate.