OSDN Git Service

* config/rs6000/rs6000.md: Correct order of operands for DImode
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
2
3         * config/rs6000/rs6000.md: Correct order of operands for DImode
4         boolean patterns.
5
6         * config/rs6000/rs6000.c (boolean_or_operator): New function.
7         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
8         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
9         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
10         boolean_operator for the boolean patterns without NOTs.
11
12         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
13         from reg_or_u_cint_operand.  Change comment and behaviour.
14         (logical_operand): Clean up, add assertion.
15         (non_logical_cint_operand): Also check for
16         reg_or_logical_cint_operand.
17         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
18         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
19         in the expander.
20         (xorsi3): Likewise.
21         (iordi3): Likewise.
22         (xordi3): Likewise.
23
24 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
25
26         * tree.h (struct record_layout_info): Rename to (struct
27         record_layout_info_s).
28         * stor-layout.c (start_record_layout): Replace
29         `record_layout_info' with `record_layout_info_s'.
30
31 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
32
33         * flow.c (find_label_refs): New function.
34         (find_basic_blocks_1): Call it for each alternative of a call 
35         placeholder.
36
37 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
38
39         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
40         of get_pc.
41
42 2000-05-25  Richard Henderson  <rth@cygnus.com>
43
44         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
45         so strict about DImode.
46         (alpha_swapped_comparison_operator): Likewise.
47         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
48         any integer output mode.
49         (*setcc_internal): Likewise.
50         (*setcc_swapped_internal): Likewise.
51         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
52         (*mov[qhs]icc_internal): New.
53         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
54
55 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
56
57         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
58
59 2000-05-25  Richard Henderson  <rth@cygnus.com>
60
61         * bb-reorder.c (reorder_block_def): Reorder elements for size.
62         Remove add_jump; add next; replace flags with visited.
63         (rbd_init): Remove.
64         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
65         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
66         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
67         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
68         (RBI): New.
69         (reorder_index, reorder_last_visited): Remove.
70         (skip_insns_after_block): Rewrite to use a switch.
71         (get_common_dest): Remove.
72         (chain_reorder_blocks): Remove.
73         (record_effective_endpoints): Split out from reorder_basic_blocks.
74         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
75         (make_reorder_chain_1): Renamed from old make_reorder_chain.
76         Only construct the reorder chain, do not move insns.  Try harder
77         to tail recurse.
78         (label_for_bb, emit_jump_to_block_after): New.
79         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
80         and adjust the jump insns appropriately.  Fixup basic_block_info.
81         (verify_insn_chain): Always define.
82         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
83         in allocation size.
84         (make_new_scope): Don't write zeros to calloc'd space.
85         (build_scope_forest): Rely on xrealloc to DTRT.
86         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
87         profile_arc_flag.  Streamline EH test.
88
89         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
90         * basic-block.h: Declare them.
91
92 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
93
94         * emit-rtl.c (reset_used_decls): New function.
95         (unshare_all_rtl_again): Call it.
96
97 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
98
99         * cpplex.c (maybe_macroexpand): Warn about function-like
100         macros used in non-function context, if -Wtraditional.
101
102 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
103
104         * recog.c (peephole2_optimize): Use INSN_P.
105
106 2000-05-25  Richard Henderson  <rth@cygnus.com>
107
108         * ifcvt.c (seq_contains_jump): New.
109         (noce_try_store_flag_constants): Use it to fail conversion.
110         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
111
112 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
113
114         * except.h (can_throw): Declare it.
115         * except.c (can_throw): Give it external linkage.
116         * resource.c (find_dead_or_set_registers): Use can_throw.
117         
118 2000-05-25  Richard Henderson  <rth@cygnus.com>
119
120         * flow.c (mark_set_1): Don't record conditionally dead memory.
121
122 2000-05-25  Jan Hubicka  <jh@suse.cz>
123
124         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
125         and pc_set at the place of simplejump_p and condjump_p.
126         * cse.c (record_jump_equiv): Likewise.
127         * emit-rtl.c (emit): Likewise.
128         * explow.c (find_next_ref): Likewise.
129         * flow.c (tidy_fallthru_edge): Likewise.
130         (init_propagate_block_info): Likewise.
131         * gcse.c (delete_null_pointer_checks): Likewise.
132         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
133         dead_or_predicable): Likewise.
134         * integrate.c (copy_insn_list): Likewise.
135         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
136         for_each_insn_in_loop, check_dbra_loop, get_condition,
137         insert_bct, load_mems): Likewise.
138         * resource.c (find_dead_or_set_registers): Likewise.
139         * sibcalls.c (simplejump_p): Likewise.
140         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
141
142 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
143
144         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
145         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
146         when unaligned.
147         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
148         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
149         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
150         * rs6000.md: Name various internal patterns.
151
152 2000-05-25  Jan Hubicka  <jh@suse.cz>
153
154         * jump.c (invert_exp_1): Remove first argument, use pc_set
155         to get the expression.
156         (redirect_exp): Make static; redirect only the pc_set expression,
157         remove first argument.
158         (invert_exp): Remove first argument, make static.
159         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
160         any_onlyjump at most places where we originaly did condjump_p
161         and simplejump_p.
162         (jump_back_p, follow_jumps, thread_jumps): Likewise.
163         (delete_barrier_succesors): Use pc_set.
164         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
165         calls of invert_exp and redirect_exp.
166         * rtl.h (redirect_exp, invert_exp): Remove.
167         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
168
169 2000-05-25  Richard Henderson  <rth@cygnus.com>
170
171         * stmt.c (expand_end_bindings): Fix thinko last change.
172
173 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
174             Andrew Haley  <aph@cygnus.com>
175
176         * except.c  (func_eh_entry): Add emitted field.
177         (new_eh_region_entry): Set emitted field to 0;
178         (output_exception_table_entry): Only emit previously un-emitted data,
179         and send it to the eh_data section.
180         (output_exception_table): Break out common parts. Output
181         exception table for entire compilation unit to eh_data section.
182         (output_exception_table_data): Common parts of output_exception_table.
183         Send output to eh_data section.
184         (output_function_exception_table): Output exception table data for
185         a single function to eh_data section.
186         (free_exception_table): New external to free the table.
187         * except.h (free_exception_table): Add prototype.
188         (output_function_exception_table): Add prototype.
189         * final.c (final_end_function): Output function exception table
190         for IA64_UNWIND_INFO.
191         (final_scan_insn): Emit any unwind directives for an insn.
192
193         * frame-dwarf2.c: New file containing all DWARF 2 specific code
194         from frame.c.
195         * frame.c: Remove all DWARF 2 specific code.
196         * config/ia64/frame-ia64.c: New file.
197         (gthread_stuff): Make all gthread available with 
198         IA64_UNWIND_INFO.
199         (dwarf_fde): Define an IA64 struct for dwarf_fde.
200         (__register_frame_info, __register_frame): Move to common area of file.
201         (__register_frame_info_table, __register_frame_table): Move to common i
202         area.
203         (__deregister_frame_info, __deregister_frame): Move to common area.
204         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
205         (read_uleb128): New version for ia64.
206         (get_unwind_record): Read the next IA-64 unwind record.
207         (read_R_record): Read a region header record.
208         (process_a_b_reg_code): X record helper.
209         (read_X_record): Read an X format record.
210         (read_B_record): Read a B format record.
211         (P3_record_types): List of record types matching the P3 format.
212         (P7_record_types): List of record types matching the P7 format.
213         (P8_record_types): List of record types matching the P8 format.
214         (read_P_record): Read a P format record.
215         (init_ia64_reg_loc): Set default fields for a register.
216         (init_ia64_unwind_frame): Set defaults for all register records.
217         (execute_one_ia64_descriptor): Execute one descriptor record.
218         (rse_address_add): Calculate the position of a local reg in memory.
219         (normalize_reg_loc): Turn a location descriptor into a memory address.
220         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls 
221         within a specified PC offset range.
222         (get_real_reg_value): Given a register location, retrieve its value.
223         (set_real_reg_value): Change the value of a register location.
224         (copy_reg_value): Copy reg values, if needed.
225         (copy_saved_reg_state): Copy all registers that need to be copied.
226         (process_state_between): Normalize all frame register records that
227         fall within the specified PC range.
228         (frame_translate): Take a processed frame description, and turn 
229         everything into addresses.
230         (build_ia64_frame_state ): Find and create frame state record for a PC.
231         (get_personality): Get the personality routine for a given frame.
232         (get_except_table): Get the exception table for a given frame.
233         (record_name): Unwind record names for debugging.
234         (print_record): Print and unwind record.
235         (print_all_records): Print an entire unwind image.
236         (__ia64_backtrace): Print a backtrace.
237         (ia64_backtrace_helper): New function.
238         (__register_frame_info_aux): New function.
239         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
240
241         * frame.h (enum unw_record_type): New unwind record types.
242         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
243         (struct unw_r_record, unwind_record): New unwind record structs.
244         (struct unwind_info_ptr): Unwind information layout.
245         (IA64_UNW_LOC_TYPE_*): Macros for different types for location 
246         descriptors.
247         (struct ia64_reg_loc): Register location description.
248         (struct ia64_frame_state): Location of all registers in a frame.
249         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
250         * libgcc2.c (__ia64_personality_v1): Personality routine.
251         (__calc_caller_bsp): Calculate the bsp register for the caller's
252         frame.
253         (ia64_throw_helper): Figure out who to return to and set up the 
254         registers.
255         (__throw): Throw routine.
256
257         * output.h (assemble_eh_align, assemble_eh_label): New functions
258         to generate EH info where we want it.   
259         (assemble_eh_integer): New function.
260         * toplev.c (compile_file): Output module level exception table for
261         non-ia64 targets.
262         (main): Set exceptions_via_longjump and flag_new_exceptions based 
263         on IA64_UNWIND_INFO too.
264
265         * varasm.c (assemble_eh_label): Generate a label via
266         ASM_OUTPUT_EH_LABEL if it has been specified.
267         (assemble_eh_align): Generate an alignment directive via 
268         ASM_OUTPUT_EH_ALIGN if it has been specified.
269         (assemble_eh_label): Generate an integer value via
270         ASM_OUTPUT_EH_type if they have been specified.
271         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
272         (ia64_init_builtins): Add __builtin_ia64_bsp
273         and __builtin_ia64_flushrs.     
274         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
275         IA64_BUILTIN_FLUSHRS.
276         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
277         IA64_BUILTIN_FLUSHRS.
278
279         * config/ia64/ia64.md (flushrs): New insn to flush the register
280         stack.  Add to unspec list.
281
282         * config/ia64/crtbegin.asm (frame_object): Change size.
283         (__do_frame_setup_aux): New function.
284         * config/ia64/crtend.asm: call __do_frame_setup_aux.
285         * config/ia64/t-ia64 (LIB2ADDEH): Add.
286         * Makefile.in (LIB2ADDEH): Add.
287         (LIB2ADD): Use LIB2ADDEH.
288         
289 2000-05-24  Richard Henderson  <rth@cygnus.com>
290
291         * recog.c (offsettable_address_p): If mode size is zero, assume
292         BIGGEST_ALIGNMENT.
293
294 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
295
296         * configure.in: Check for -Wno-long-long option support and improve
297         handling of warning CFLAGS for stages 1 and 2.
298         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
299         * configure: Regenerate.
300
301 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
302
303         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
304         * contrib.texi: New file.
305
306 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
307
308         * loop.c (basic_induction_var): Avoid double recording of an increment.
309
310 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
311
312         * Back out this patch:
313         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
314           * loop.h (struct induction): Add multi_insn_incr.
315           * loop.c (basic_induction_var): New multi_insn_incr argument.
316           Set it if we search back through previous insns for the biv.
317           (record_biv): New multi_insn_incr argument; fill in struct induction.
318           (strength_reduce): Discard an iv with multiple bivs, any of
319           which require multiple insns to increment.
320
321         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
322
323 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
324
325         * rtl.h (loc_mentioned_in_p): Declare.
326         * reload.c (loc_mentioned_in_p): Moved from here...
327         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
328         Fix loop increment for 'E' handling.
329         * loop.c (strength_reduce): When doing biv->giv conversion,
330         take multi-insn biv increments into account.
331
332 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
333
334         * stmt.c (expand_end_bindings): Look through NOTEs to find a
335         BARRIER.
336
337 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
338
339         * calls.c (expand_call): Handle cleanups in tail-recursion
340         arguments analagously to cleanups in sibling calls.
341
342 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
343
344         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
345         All callers changed.
346
347 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
348
349         * expr.c (expand_assignment, store_expr, expand_expr,
350         expand_expr_unaligned): Set in_check_memory_usage while emitting
351         chkr_check_addr libcall.
352
353 2000-05-24  Nick Clifton  <nickc@cygnus.com>
354
355         * fold-const.c (extract_muldiv): When constructing a
356         multiplier/divisor, do not expect const_binop to correctly
357         determine if overflow has occured, so check explicitly.
358
359 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
360
361         * c-decl.c (build_enumerator): Don't modify the value's type,
362         convert it.
363
364 2000-05-24  Andreas Jaeger  <aj@suse.de>
365
366         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
367
368 2000-05-24  Eric Christopher <echristo@cygnus.com>
369
370         * configure.in: Redefine inhibit_libc conditions.
371         * libgcc2.c: Remove inhibit_libc conditional define.
372         * configure: Regenerate.
373
374 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
375
376         * configure.in:  For --enable-languages=LIST, check for empty LIST.
377         * configure:  Regenerate.
378
379 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
380
381         * pdp11.h (STACK_BOUNDARY): Define.
382
383 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
384
385         * ifcvt.c (if_convert): Update life info globally.
386
387 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
388
389         * emit-rtl.c (unshare_all_decls): New function.
390         (unshare_all_rtl): Call it.
391
392 2000-05-23  Nick Clifton  <nickc@cygnus.com>
393
394         * configure.in: Treat 'strongarm' as if it were 'arm' when
395         determining cpu type.
396
397         * configure: Regenerate.
398
399         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
400         where constant strings are involved.
401
402         * config/arm/arm.h (arm_condition_codes): Change type to 'const
403         char *'.
404
405         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
406         cases where constant strings are involved.
407
408 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
409
410         * config/sh/sh.c (gen_far_branch, split_branches): Update
411         to reflect new prototypes for redirect_jump and invert_jump.
412         (sh_insn_length_adjustment): Get rid of const warnings.
413
414 2000-05-23  Kazu Hirata  <kazu@hxi.com>
415
416         * invoke.texi (Options for Debugging Your Program or GCC): Update
417         the names of dump files.
418
419 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
420
421         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
422         * configure: Regenerated.
423
424 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
425
426         * simplify-rtx.c (SIGN_EXTEND): New macro.
427         (simplify_unary_operation, simplify_binary_operation, 
428         simplify_relational_operation): Use SIGN_EXTEND.  Make low
429         halves of (low, high) pairs unsigned if they weren't already.       
430         (simplify_ternary_operation): Cast INTVAL to unsigned before
431         comparing to a MODE_BITSIZE.
432
433 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
434
435         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
436         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
437         
438         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
439         gcc_AC_NEED_DECLARATIONS.
440
441         * dwarfout.c: Don't prototype time().
442
443         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
444
445         * system.h: Likewise.
446
447         * toplev.c: Likewise.
448
449 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
450
451         * c-decl.c (pushdecl): Invert sense of test for non-global types.
452
453 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
454
455         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
456
457 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
458
459         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
460
461 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
462
463         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
464         (alpha_start_function): Never write ..ng label if VMS or NT.
465         (alpha_align_insns): Remove GP_IN_USE arg.
466         Alignment now unsigned.
467         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
468         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
469         and two define_insn's.
470
471 2000-05-22  Richard Henderson  <rth@cygnus.com>
472
473         * combine.c (simplify_comparison): Use trunc_int_for_mode.
474
475 2000-05-22  Richard Henderson  <rth@cygnus.com>
476
477         * stor-layout.c (place_field): Change rli->size to rli->offset.
478
479 2000-05-22  Richard Henderson  <rth@cygnus.com>
480
481         * function.c (thread_prologue_and_epilogue_insns): Make sure 
482         existing line number notes appear after the prologue.
483
484 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
485
486         * config/alpha/alpha.c (alpha_fnname): New static variable.
487         (print_operand, case '~'): New case.
488         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
489         (alpha_start_function): Set alpha_fnname.
490         Write "ng" label if no ldgp; don't write ldgp insn.
491         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
492         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
493
494 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
495
496         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
497         on deleted labels.
498
499 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
500
501         * varasm.c (eh_frame_section): Revert change to argument list.
502
503 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
504
505         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
506         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
507         
508         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
509         dangling "else" that causes "break" to be conditional.
510         Also remove unneeded code at start.
511
512 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
513
514         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
515         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
516         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
517
518 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
519
520         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
521         just one argument.
522
523 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
524
525         * alias.c (record_component_aliases): New function.
526         * tree.h: Clean up some declarations and comments.
527         (record_component_aliases): New declaration.
528         * tree.c (get_alias_set): If type and has alias set, use it.
529
530 2000-05-22  Richard Henderson  <rth@cygnus.com>
531
532         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
533         IF_THEN_ELSE to a setcc form.
534         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
535
536 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
537
538         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
539         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
540
541 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
542
543         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
544         not a PARALLEL.
545
546 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
547
548         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
549         * config/mn10300/mn10300.c (print_operand): Likewise.
550
551         * final.c (split_double): Right shift of negative values is not
552         portable.
553
554         * ifcvt.c (if_convert): Scan and kill dead code.
555
556         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
557
558 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
559
560         * diagnostic.c: Eliminate implicit int.
561         * except.c, gcc.c: Add static prototypes.
562         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
563         * gensupport.c (process_rtx): Use XVEC to initialize vector
564         slot of 'split'.
565
566         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static 
567         debug_reg_names instead of static reg_names.  If not, define
568         global reg_names.
569         * regclass.c: Don't define global reg_names unless
570         DEBUG_REGISTER_NAMES is defined.
571
572         * reload1.c (order_regs_for_reload): Remove unused variable.
573         * varasm.c: Include output.h after defaults.h.  Define
574         eh_frame_section as function of no args, not of unspecified args.
575
576         * gcc.c: Constify argbuf; arguments to store_arg,
577         process_command, main; elements of struct command and struct
578         switchstr; local variables in execute, process_command, main.
579
580 2000-05-20  Bruce Korb  <bkorb@gnu.org>
581
582         * fixinc/inclhack.def:  many applications of c_fix=format + tests
583         * fixinc/check.diff:  regenerated
584         * fixinc/fixincl.x:  regenerated
585
586 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
587
588         * alias.c: Clarify some comments.
589         (record_base_value): REGNO is unsigned.
590         * rtl.h (record_base_value): Likewise.
591
592         * alias.c (aliases_everything_p): Don't special-case QImode here.
593         * c-common.c (c_get_alias_set): Do it here.
594         Handle BIT_FIELD_REF by getting alias info for arg.
595         Use POINTER_TYPE_P.
596
597 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
598
599         * mklibgcc.in: Restore rule to create ${dir}.
600
601 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
602
603         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
604         GCC_FOR_TARGET used by MULTILIBS.
605         * mklibgcc.in: Make sure each .o file depends on the
606         directory it will be in.
607         Make the multilib directory depends libgcc.
608
609 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
610
611         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
612
613 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
614
615         * fold-const.c (make_range): Handle degenerated intervals.
616         Fixes c-torture/execute/991221-1.c
617
618 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
619
620         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
621         * reload.c (find_equiv_reg): Likewise.
622         * alias.c (init_alias_analysis): Likewise.
623         Only call prologue_epilogue_contains on insns.
624         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
625         * bb-reorder.c (hard-reg-set.h): Include earlier.
626         * haifa-sched.c (hard-reg-set.h): Likewise.
627         * ifcvt.c (hard-reg-set.h): Likewise.
628         * local-alloc.c (hard-reg-set.h): Likewise.
629         * loop.c (hard-reg-set.h): Likewise.
630         * predict.c (hard-reg-set.h): Likewise.
631         * regrename.c (hard-reg-set.h): Likewise.
632         * flow.c (hard-reg-set.h): Likewise.
633         (reg_set_to_hard_reg_set): New function.
634         * bitmap.c (regs.h, basic-block.h): No longer include.
635         (bitmap.h): Now include.
636         * conflict.c (hard-reg-set.h): Include.
637         * profile.c (hard-reg-set.h): Likewise.
638         * print-rtl.c (hard-reg-set.h): Likewise.
639         * sbitmap.c (hard-reg-set.h): Likewise.
640         * toplev.c (hard-reg-set.h): Likewise.
641         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
642         * hard-reg-set.h (reg_names): Now constant.
643         * regs.h (reg_names): Likewise.
644         * regclass.c (reg_names): Likewise.
645         * loop.h (basic-block.h): No longer include.
646         (bitmap.h): Now include.
647         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
648         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
649         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
650
651 2000-05-19  Jan Hubicka  <jh@suse.cz>
652             Richard Henderson  <rth@cygnus.com>
653
654         * basic-block.h (struct edge_def): New field "count".
655         (struct basic_block_def): Likewise.
656         * flow.c (entry_exit_blocks): Add count fileds.
657         (split_edge): Keep count information up-to-date.
658         (dump_edge_info, dump_flow_info): Dump count fields.
659
660         * final.c (count_instrumented_edges): Rename to edge from arc.
661         (end_final): Update users.
662         * profile.c: Include expr.h, basic-block.h.
663         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
664         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
665         (ignore_next_note, return_label_execution_count): Kill.
666         (bbg_file_name, da_file_name): Kill.
667         (edge_info, bb_info): New structures.
668         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
669         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
670         (total_num_edges_instrumented): Likewise.
671         (init_arc, expand_spanning_tree): Kill.
672         (fill_spanning_tree, tablejump_entry_p): Kill.
673         (instrument_edges):  Rewrite from instrument_arcs to use
674         commit_edge_insertions infrastructure.
675         (compute_branch_probabilities): Remove arguments; rewrite for
676         CFG infrastructure; use rtl_dump_file directly.
677         (branch_prob, find_spanning_tree): Likewise.
678         (union_groups, find_group): New.
679         (init_branch_prob): Make bbg_file_name and da_file_name local.
680         (end_branch_prob): Use rtl_dump_file directly.
681         (init_edge_profiler): Rename to edge from arc.
682         (output_arc_profiler): Kill.
683         (gen_edge_profiler): New.
684         (output_func_start_profiler): Turn off profiling.  Make the
685         constructor static when we can.
686         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
687
688         * toplev.c (DFI_flow): Remove.
689         (DFI_cfg, DFI_life): New.
690         (dump_file): Update accordingly.
691         (compile_file): Call end_branch_prob if profile_arc_flag too.
692         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
693         profiling after the CFG is built.  Move flow1 life analysis to
694         DFI_life.  Always estimate remaining probabilities.
695
696 2000-05-19  Richard Henderson  <rth@cygnus.com>
697
698         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
699
700         * flow.c (make_edges): The sibling call edge to exit is abnormal.
701
702 2000-05-19  Richard Henderson  <rth@cygnus.com>
703
704         * jump.c (redirect_jump): Add delete_unused argument.  Don't
705         remove labels and code following when LABEL_NUSES goes to zero.
706         (invert_jump): Likewise.
707         (jump_optimize_1): Fix redirect/invert arguments.
708         (do_cross_jump, thread_jumps): Likewise.
709         * flow.c (split_edge): Likewise.
710         * reorg.c (optimize_skip): Likewise.
711         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
712         * profile.c (instrument_arcs): Likewise.
713         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
714         * rtl.h: Update prototypes.
715
716 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
717
718         * ssa.c (convert_from_ssa): Tell life_analysis we need death 
719         notes.
720         (make_regs_equivalent_over_bad_edges): Only look at abnormal
721         critical edges.
722
723 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
724
725         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
726         past l1 when deleting whitespace and markers.              
727
728         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
729         * cpplib.c (do_unassert): Put the list to compare against on
730         the stack.
731
732 2000-05-19  Bruce Korb  <bkorb@gnu.org>
733
734         * fixinc/README:  cleaned up old documentation
735         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
736         * fixinc/check.tpl: compute the list of needed directories
737         emit "#if defined(name)" because of conflict
738         omit machine name differences from output differences
739         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
740         (machine_name): change test text to use `sed' markers
741         * fixinc/fixincl.x: regen
742
743 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
744
745         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
746         a CONSTRUCTOR.
747
748 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
749
750         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
751         it to match the current practice.
752
753 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
754
755         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
756
757 2000-05-18  Richard Henderson  <rth@cygnus.com>
758
759         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
760         * rtl.h (insn_dependant_p): Declare it.
761         * loop.c (strength_reduce): Use it.
762
763 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
764
765         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
766         16-bit and 64-bit clean-up.
767
768 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
769
770         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
771         * configure: Rebuilt.
772
773 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
774
775         * genopinit.c: Use $ for escape sequences in optab patterns.
776         Remove backslashes from optab patterns.  Change $A, $B, $C to
777         expand to (int) whatever instead of just whatever; remove
778         explicit (int) from all optab patterns.
779
780         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
781         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
782         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
783         genrecog.c: Remove private copies of xmalloc, xrealloc, and
784         xstrdup.
785
786 2000-05-18  Richard Henderson  <rth@cygnus.com>
787
788         * jump.c (jump_optimize_1): Base minimum insn count during
789         find_cross_jump on BRANCH_COST.
790
791 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
792
793         * print-rtl.c (print_rtx): Only print note line number as string
794         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
795         * final.c (final_scan_insn): Do nothing for note line number 0.
796
797 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
798
799         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
800         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
801         NOTE_INSN_DELETED_LABEL.
802
803 2000-05-18  Nick Clifton  <nickc@cygnus.com>
804
805         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
806         uninitialised data in .rodata not .bss, and do not interpret an
807         error in the initialisation value as meaning that the variable
808         should be placed in the .bss section.
809
810 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
811
812         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
813         not `$ac_cv_prog_cc_cc_c_o'.
814         * configure: Regenerated.
815
816 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
817             Richard Henderson  <rth@cygnus.com>
818
819         * c-common.h (enum c_tree_index): Add g77 type entries.
820         (g77_integer_type_node, g77_uinteger_type_node): New.
821         (g77_longint_type_node, g77_ulongint_type_node): New.
822         * c-decl.c (init_decl_processing): Initialize them.
823
824 2000-05-18  Richard Henderson  <rth@cygnus.com>
825
826         * config/h8300/h8300.md (subs patterns): Use %G to negate.
827
828         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
829         (small_power_of_two): Likewise; use exact_log2.
830         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
831         (output_adds_subs): Remove.
832         (two_insn_adds_subs_operand): New.
833         (split_adds_subs): New.
834         * config/h8300/h8300-protos.h: Update.
835         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
836         (CONST_OK_FOR_L): Match strict adds operands.
837         (CONST_OK_FOR_N): Match struct subs operands.
838         * config/h8300/h8300.md (adds_subs insns): Remove.
839         (addhi patterns): Output adds/subs directly.
840         (addsi_h8300h): Likewise.
841         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
842
843 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
844
845         * cppexp.c (parse_assertion): New.
846         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
847         (_cpp_parse_expr): Remove case '#'.  Don't set
848         parsing_if_directive.
849         * cpphash.c (collect_objlike_expansion,
850         collect_funlike_expansion, collect_params,
851         _cpp_create_definition): The list no longer has a trailing
852         VSPACE token.
853         * cpphash.h (enum node_type): Add T_ASSERTION.
854         (struct hashnode): Remove aschain, add pred.
855         (struct predicate): New.
856         Update prototypes.
857
858         * cpplex.c (expand_token_space): Handle both offset and
859         nonoffset lists.
860         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
861         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
862         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
863         _cpp_equiv_toklists): New.
864         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
865         stop at any single-character token, not just newline.
866         (_cpp_lex_token): Remove special cases for #define and #if.
867         (cpp_get_token): Expect # as a separate token type.  Remove
868         DIRECTIVE case.
869         (_cpp_get_directive_token): Remove DIRECTIVE case.
870         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
871
872         * cpplib.c (_cpp_check_directive): Set dirno and
873         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
874         (_cpp_handle_directive): Run # <number> through the same logic
875         as normal directives.
876         (do_define): Don't set parsing_define_directive.  Use
877         _cpp_scan_until.  The list does not have a VSPACE at the end.
878         (do_if): Save, clear, and restore only_seen_white around 
879         _cpp_parse_expr.
880         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
881         (do_assert, do_unassert): Rewrite.
882
883         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
884         (LIST_OFFSET): New flag.
885         (struct cpp_toklist): Replace dir_handler and dir_flags with
886         dirno and flags.
887         (struct cpp_reader): Remove parsing_if_directive and
888         parsing_define_directive.
889
890 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
891
892         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
893         following the cabs decl which terminate on the following line.
894         Add the corresponding test_text case.
895
896 2000-05-18  Neil Booth  <NeilB@earthling.net>
897
898         * cppinit.c (cpp_reader_init): Initialise col_adjust and
899         default tab stop size.
900         (no_num, OPT_ftabstop): New.
901         (handle_option): Handle "ftabstop=" command-line option.
902         (print_help): Document it.
903         * cpplex.c (COLUMN): Remove.
904         (handle_newline): Reset col_adjust.
905         (skip_whitespace): Update col_adjust as tabs encountered.
906         (_cpp_lex_line): Update to use col_adjust.  Call
907         skip_whitespace for all whitespace.
908         * cpplib.h (struct cpp_options): New member tabstop.
909         (struct cpp_reader): New member col_adjust.
910         (CPP_BUF_COL): Update.
911         (CPP_BUF_COLUMN): New.
912         * cpp.texi: Document "-ftabstop=" command line option.
913
914 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
915
916         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
917         files.
918         * configure: Rebuilt.
919
920 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
921
922         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
923
924         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
925         HOST_BITS_PER_WIDE_INT is >= 64.
926
927 2000-05-17  Richard Henderson  <rth@cygnus.com>
928
929         * jump.c (jump_optimize_1): Remove inactive but real insns
930         in jump-to-next-insn optimization.
931
932 2000-05-17  Richard Henderson  <rth@cygnus.com>
933
934         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
935         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
936         Don't call recompute_reg_usage if no_new_pseudos is true.
937         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
938         Return true if we did work; update global life information.
939         * basic-block.h (optimize_mode_switching): Update decl.
940
941 2000-05-17  Neil Booth  <neilb@earthling.net>
942
943         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
944
945 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
946
947         * cpplib.c: New feature, #pragma system_header.
948         * cpp.texi: Document special treatment of system headers, and
949         the various mechanisms to get a header that special treatment.
950
951 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
952
953         * system.h (offsetof): Define at the very end, to ensure we prefer
954         the platform's definition if available.
955
956 2000-05-16  Bruce Korb  <bkorb@gnu.org>
957
958         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
959         * fixinc/server.c: likewise
960         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
961         + #ifdef debugging code + use #def constant for
962         sub-pattern count
963         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
964         on C++ math namespace
965
966 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
967
968         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
969         Don't check the return value of sprintf.  Use asprintf to avoid
970         buffer overflows.
971
972 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
973
974         * flags.h (warn_unused_function, warn_unused_label,
975         warn_unused_parameter, warn_unused_variable, warn_unused_value):
976         Replace ``warn_unused''.
977         (set_Wunused): Add declaration.
978         * toplev.c (set_Wunused): New function.
979         (warn_unused_function, warn_unused_label, warn_unused_parameter,
980         warn_unused_variable, warn_unused_value): New variables.
981         (W_options): Add -Wunused-function, -Wunused-function,
982         -Wunused-label, -Wunused-parameter, -Wunused-variable and
983         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
984
985         * toplev.c (decode_W_option): Update -Wunused flags by calling
986         set_Wunused.
987         * c-decl.c (c_decode_option): Ditto for -Wall.
988
989         * stmt.c (expand_expr_stmt, expand_expr_stmt,
990         warn_about_unused_variables): Replace warn_unused with more
991         explicit warn_unused_value et.al.
992         * function.c (expand_function_end): Ditto.
993         * c-typeck.c (internal_build_compound_expr,
994         internal_build_compound_expr): Ditto.
995         * c-decl.c (poplevel, pop_label_level): Ditto.
996         * toplev.c (check_global_declarations): Replace warn_unused with
997         check for either warn_unused_function or warn_unused_variable.
998
999         * gcc.1, invoke.texi (Warning Options): Document
1000         -Wunused-function, -Wunused-function, -Wunused-label,
1001         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
1002
1003 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
1004
1005         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
1006         $(srcdir), not in the current directory.
1007
1008 2000-05-16  Richard Henderson  <rth@cygnus.com>
1009
1010         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
1011         assembler supports it.
1012         (.fini, .init): Use a gp-relative indirect call.
1013         (__do_global_dtors_aux): Preserve the gp; rebundle.
1014         (__do_frame_setup): Likewise.
1015         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
1016         (.init): Use a gp-relative indirect call.
1017         (__do_global_ctors_aux): Preserve the gp.
1018
1019 2000-05-16  Richard Henderson  <rth@cygnus.com>
1020
1021         * flow.c (commit_one_edge_insertion): Be prepared for a return
1022         insn to be inserted on the edge with a normal jump.
1023         * jump.c (jump_optimize_1): Don't look to create return isns.
1024
1025         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
1026         * jump.c (jump_optimize_1): Likewise.
1027         (returnjump_p): Verify the argument is a JUMP_INSN.
1028         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
1029
1030 2000-05-16  Nick Clifton  <nickc@cygnus.com>
1031
1032         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
1033         GET_RTX_CLASS (GET_CODE ()) == 'i'.
1034         (large_insn_p): Ditto.
1035         (m32r_is_insn): New function: Return true if the insn contains
1036         an executable instruction.
1037         (m32r_adjust_insn): Use m32r_is_insn.
1038         (m32r_sched_reorder): Use m32r_is_insn.
1039         (m32r_sched_variable_issue): Use m32r_is_insn.
1040
1041 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1042
1043         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
1044         VAR_DECL.
1045
1046         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
1047
1048         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
1049         according to given options.
1050
1051 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
1052
1053         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
1054         if X has VOIDmode either.
1055         (LIMIT_RELOAD_CLASS): Similarly.
1056
1057         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
1058         not "general_operand" to match the processor's capabilities.
1059
1060 2000-05-16  Bruce Korb  <bkorb@gnu.org>
1061
1062         * fixinc/README:  corrected return address
1063         * fixinc/check.diff:  regenerate, now that test works
1064         * fixinc/fixfixes.c(format_fix,format_write): reformatted
1065         (char_macro_def_fix,char_macro_use_fix): corrected and
1066         rewrote to use regex to parse the text
1067         * fixinc/inclhack.def: more testing
1068         * fixinc/fixincl.x:  regenerated
1069
1070         * fixinc/inclhack.def: added several "test_text" attributes
1071         changed several fixes to use `c_fix = format'
1072         re-alphabetized the fixes
1073
1074         * fixinc/check.diff: regenerate
1075         * fixinc/fixincl.x: regenerate
1076         * fixinc/check.tpl: added `sparc' and `netinet' to the list
1077         of created dirs
1078
1079
1080 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
1081
1082         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
1083
1084 2000-05-15  Richard Henderson  <rth@cygnus.com>
1085
1086         * toplev.c (rest_of_compilation): Run full jump pass before
1087         find_basic_blocks of flow2.
1088
1089 2000-05-15  Richard Henderson  <rth@cygnus.com>
1090
1091         * jump.c: Fix typos and clarify commentary from last change.
1092         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
1093         (safe_to_remove_jump_p): Remove.
1094         (condjump_label): Use pc_set.
1095
1096 2000-05-15  Richard Henderson  <rth@cygnus.com>
1097
1098         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
1099         that get in the way after reload.
1100         (cond_exec_process_if_block): Skip a label heading THEN block.
1101
1102 2000-05-15  Richard Henderson  <rth@cygnus.com>
1103
1104         * varasm.c (output_constant_pool): Abort instead of converting
1105         (improperly) deleted labels to zero.
1106
1107 2000-05-16  Neil Booth  <NeilB@earthling.net>
1108
1109         * cpplex.c (parse_string2): Update comment.
1110         (cpp_lex_line): No special assertion treatment for '('.
1111         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
1112         * cpplib.h (SYNTAX_ASSERT): Remove.
1113
1114 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1115
1116         * jump.c (condjump_p):  Mark as depreached.
1117         (any_condump_p): New.
1118         (any_uncondump_p): New.
1119         (pc_set): New.
1120         (safe_to_remove_jump_p): New.
1121         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
1122         safe_to_remove_jump_p): Declare.
1123
1124 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1125
1126         * calls.c: Re-install both patches reverted by last patch.
1127         (struct arg_data): New field tail_call_reg.
1128         (initialize_argument_information): Initialize tail_call_reg
1129         (load_register_parameters): New argument flags, use
1130         tail_call_reg when emiting tail call sequence.
1131         (expand_call): Update call of load_register_parameters;
1132         copy unadjusted_args_size to adjusted_args_size.
1133
1134 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1135
1136         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
1137         and bct_p parameters to flags.
1138         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
1139         * rtl.h (loop_optimize): Update prototype.
1140         * toplev.c (rest_of_compilation): Update call of loop_optimize.
1141
1142 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
1143
1144         * calls.c (expand_call): Move expand_start_target_temps call after
1145         start_sequence().
1146
1147 2000-05-15  Neil Booth  <NeilB@earthling.net>
1148
1149         * cpphash.c (trad_stringify, warn_trad_stringify,
1150         collect_params): Make some pointers pointers to const.
1151         * cpplex.c (auto_expand_name_space) Guaranteed to always
1152         expand by at least one character.
1153         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
1154         (struct token_spelling): Use const U_CHAR * rather than PTR.
1155         (expand_name_space): Fix up token pointers if name space
1156         is moved when expanding.
1157         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
1158         parse_string2, save_comment, spell_token, cpp_output_list):
1159         Update so the routines handle tokens with a direct pointer to
1160         their text, rather than an offset into the token's list's namebuf.
1161         (_cpp_lex_line): Rearrange for clarity.
1162
1163         * cpplib.c (_cpp_check_directive): Similarly.
1164         (do_define): Make SYM a pointer to const.
1165         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
1166         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
1167         (TOK_OFFSET): Delete.
1168         (TOK_NAME): Update.
1169
1170 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
1171
1172         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
1173         64-bit ABI.
1174
1175         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE 
1176         into account.
1177         (logical_u_operand): Delete.
1178         (non_logical_cint_operand): Rewrite to take MODE into account.
1179         (non_logical_u_cint_operand): Delete.
1180         (boolean_operator): New function.
1181         (print_operand): Add new %q operand.
1182         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
1183         remove logical_u_operand and non_logical_u_cint_operand,
1184         update logical_operand and non_logical_cint_operand.
1185         * config/rs6000/rs6000.md: Rewrite the patterns for performing
1186         logical operations to use %q.
1187
1188         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
1189         (movdi): Make similar to movsi.
1190         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
1191         is no such thing as a DImode CONST_DOUBLE.
1192         * config/rs6000/rs6000.c (output_toc): Likewise.
1193         
1194         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
1195         codes when old mnemonics are in use.  Print register names
1196         for cc registers when requested.
1197
1198         * optabs.c (expand_float): Don't allow mode widening that causes
1199         double rounding.
1200
1201         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
1202         flags to their current names -maix64 and -maix32.
1203
1204 2000-05-14  Bruce Korb  <bkorb@gnu.org>
1205
1206         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
1207         and/or after current text of file
1208         * fixinc/fixlib.c(must_malloc):
1209         * fixinc/fixlib.h(must_malloc): + reformatting
1210         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
1211         with usages of ``c_fix = wrap;''
1212         Add several tests and use the ``c_fix = format'' fixer more.
1213         * fixinc/fixincl.x: regen
1214         * fixinc/check.diff: regen
1215         * fixinc/check.tpl: emit the associated header with the missing
1216         test message
1217
1218 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
1219
1220         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
1221         variables $src and $dst.
1222         
1223 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
1224
1225         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
1226         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
1227         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
1228         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
1229         fields. 
1230         (set_message_prefixing_rule): Declare.
1231
1232         * diagnostic.c: (current_prefixing_rule): New variable.
1233         (set_message_prefixing_rule): Define.
1234         (output_set_prefix): Adjust buffer->emitted_prefix_p.
1235         (init_output_buffer): Adjust Initialization.
1236         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
1237         
1238 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
1239
1240         * ifcvt.c (if_convert): Do not free NULL.
1241
1242 2000-05-12  Nick Clifton  <nickc@cygnus.com>
1243
1244         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
1245         to move a double word value.
1246         (di_operand): New function: Return true if the operand is suitbale
1247         for a double word move operation.
1248         (nonimmediate_di_operand): New function: Return true if the
1249         operand is a DImode register or MEM.
1250
1251         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
1252         nonimmediate_di_operand.
1253
1254         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
1255         nonimmediate_di_operand.
1256
1257         * config/fr30/fr30.md (movdi): New pattern.  Required because
1258         other patterns generate DImode results.
1259         (movdi_insn): New pattern.
1260
1261 2000-05-12  Richard Henderson  <rth@cygnus.com>
1262
1263         * config/alpha/alpha.c (struct shadow_summary): Define
1264         bitfields as type unsigned int.
1265
1266 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
1267
1268         * config/avr/t-avr: Added definition of FLOAT while generates
1269         fp-bit.c
1270
1271         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
1272         peepholes for tst+jump = sbrs/sbrc optimization.
1273
1274 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
1275
1276         * expr.c (emit_push_insn): Do not adjust stack pointer when
1277         preallocating.
1278
1279 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
1280
1281         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
1282         * system.h (offsetof): ... to here.
1283
1284 2000-05-12  Richard Henderson  <rth@cygnus.com>
1285
1286         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
1287         * final.c (final_end_function): Use app_disable.  Rearrange note
1288         handling into a switch.  Emit deleted labels.
1289         (output_asm_label): Generate label strings for deleted labels.
1290         * flow.c (tail_recursion_label_list): New.
1291         (find_basic_blocks_1): Set label_value_list directly.  Collect list
1292         of tail recursion labels from call_placeholders.  Don't add deleted
1293         labels to the label value list.
1294         (cleanup_cfg): Use free_EXPR_LIST_list.
1295         (flow_delete_insn_chain): Turn non-removable labels into notes.
1296         (flow_delete_block): Don't disable deleting the block because of
1297         a non-removable label.
1298         (tail_recursion_label_p): New.
1299         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
1300         because of a label.
1301         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
1302         jump table.
1303         (merge_blocks): Disable a merge because of tail recursion labels.
1304         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
1305         Use a more accurate measure of not merging the join block.
1306         (find_if_block): Don't disable conversion because of a label.
1307         (find_if_case_1, find_if_case_2): Likewise.
1308         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
1309         element when copying.
1310         (squeeze_notes): Also leave EH notes.
1311         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
1312         REG_LABEL notes.
1313         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
1314         deleting a label.
1315         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
1316         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
1317         referring to a deleted label.  Convert tail handling to a switch.
1318         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
1319         for NOTE_INSN_DELETED_LABEL.
1320         (NOTE): Fix commentary.
1321         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
1322         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
1323         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
1324         (LABEL_NUSES, LABEL_REFS): Likewise.
1325         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
1326
1327 2000-05-12  Bruce Korb  <bkorb@gnu.org>
1328
1329         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
1330         * fixinc/check.diff: updated
1331         * fixinc/inclhack.def: corrected & added some test_text-s
1332         * fixinc/genfixes: removed unneeded options to autogen invocation
1333         * fixinc/fixincl.tpl: Specified the output file
1334         * fixinc/fixfixes.c: visual appearance
1335         * fixinc/fixincl.x: regenerate
1336
1337 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
1338
1339         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
1340         CTRL_defn_fix): Delete.
1341         (fix_char_macro_defines, fix_char_macro_uses): Rename to
1342         char_macro_def_fix and char_macro_use_fix, respectively.  Put
1343         them into the FIXUP_TABLE.  Get the string to search for from
1344         a c_fix_arg.
1345
1346         (format_write): New function.
1347         (format_fix): Use it.
1348
1349         (FIX_PROC_HEAD): Constify text parameter.
1350         (machine_name_fix): Constify all char *s.
1351         * fixtests.c (skip_quote): Remove double static.
1352
1353         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
1354         ctrl_use_quotes): Update for new scheme.
1355         * fixincl.x: Regenerate.
1356
1357 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
1358
1359         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
1360         DWARF2_DEBUG.
1361         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
1362         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
1363
1364 2000-05-11  Robert Lipe <robertlipe@usa.net>
1365
1366         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
1367         * fixincl.x: Regenerate.
1368
1369 2000-05-11  Richard Henderson  <rth@cygnus.com>
1370
1371         * calls.c: Revert both 05-09 patches.
1372
1373 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
1374
1375         * config/mn10300/mn10300.c (print_operand): Print FP constants in
1376         hexadecimal.
1377         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
1378         for FP values.
1379
1380         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
1381         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
1382
1383 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
1384
1385         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
1386
1387 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
1388
1389         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
1390
1391 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
1392
1393         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
1394         * config/avr/avr.c (jump_over_one_insn_p): New function.
1395         * config/avr/avr.md: New peepholes added. Output test and
1396         conditional jump to "sbrc" or "sbrs" command.
1397
1398 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
1399
1400         * cppmain.c (main): Use IS_DIR_SEPARATOR.
1401
1402 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
1403
1404         * except.c (find_exception_handler_labels_1): New function.
1405         (find_exception_handler_labels): Split into two functions, dive
1406         into CALL_PLACEHOLDERs when looking for exception handler labels.
1407
1408 2000-05-11 Stan Cox <scox@cygnus.com>
1409
1410         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
1411         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
1412         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
1413
1414 2000-05-11  Bruce Korb  <bkorb@gnu.org>
1415
1416         * fixinc/fixfixes.c (double_slash_fix):  obsolete
1417         (else_endif_label_fix): obsolete
1418         (format_fix):  new, unused as yet
1419         (main): obsolete
1420         * fixinc/fixlib.h: added fix description struct for use by format_fix
1421         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
1422         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
1423         modules.  Removed the vestiges of the script version.
1424         Added support for "make check".
1425         * fixinc/check.diff: base diff file (needs work!!)
1426         * fixinc/check.tpl: quiet the fixup output
1427         * fixinc/fixtests.c (main): obsolete
1428         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
1429         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
1430
1431 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
1432
1433         * toplev.c (rest_of_compilation): Remove dead code after
1434         combine.
1435
1436 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
1437
1438         * cpphash.c (collect_funlike_expansion): Make "# is not
1439         followed by a macro argument name" a pedwarn, not an error.
1440         Preserve the # in the output.  Suppress the warning if lang_asm.
1441
1442 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
1443
1444         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
1445         * configure: Rebuilt.
1446
1447 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
1448
1449         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
1450
1451 2000-05-10  Kazu Hirata  <kazu@hxi.com>
1452
1453         * combine.c (try_combine): Fix a typo.
1454
1455 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
1456
1457         * config/ia64/ia64.md (insv): Add comment.
1458
1459 2000-05-10  Richard Henderson  <rth@cygnus.com>
1460
1461         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
1462         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
1463         dependancies on FPBIT and DPBIT.
1464
1465 2000-05-10  Nick Clifton  <nickc@redhat.com>
1466
1467         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
1468         when optimising for size.
1469         (mark_used_regs:) Ditto.
1470         (try_pre_increment_1): Ditto.
1471
1472 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
1473
1474         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
1475         Make error message friendlier.
1476
1477         * cpphash.h (struct hashnode): Use struct hack for name
1478         member.
1479         * cpphash.c (struct hashdummy): New.
1480         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
1481         (make_HASHNODE): No need to set ->name pointer.  Correct
1482         setting of p.
1483         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
1484
1485 2000-05-10  Richard Henderson  <rth@cygnus.com>
1486
1487         * flow.c (find_basic_blocks_1): Remove any spare bb_note
1488         after completion.
1489
1490 2000-05-10  Bruce Korb  <bkorb@gnu.org>
1491
1492         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
1493
1494 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
1495
1496         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
1497         after we enter .debug.
1498
1499 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
1500
1501         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
1502         abstract instance of a nested inline function.
1503
1504         * stor-layout.c (finish_record_layout): finalize_type_size
1505         before laying out the pending_statics.
1506
1507 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
1508
1509         * cpplex.c (spell_token): New function.
1510         (spell_string, spell_comment, spell_name): fold into
1511         spell_token.    
1512         (I, S): Add macros.
1513         (E, H): Remove macros.
1514         (save_comment): Save comment opening characters too.
1515         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
1516         handling.
1517         * cpplib.h (I, S): Add macros.
1518         (E, H): Remove macros.
1519         (TTYPE_TABLE): Update entries for new speller.
1520         (SYNTAX_ASSERT): Remove.
1521
1522 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
1523
1524         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
1525         when removing escaped newlines.  Reverse sense of test for
1526         escaped newline.
1527
1528 2000-05-09  Richard Henderson  <rth@cygnus.com>
1529
1530         * flow.c (find_basic_blocks_1): Do not delete the first
1531         bb_note we run across.
1532         (create_basic_block): Use reorder_insns to move an existing
1533         bb_note to the correct place.
1534
1535 2000-05-09  Richard Henderson  <rth@cygnus.com>
1536
1537         * calls.c (expand_call): Increment currently_expanding_call
1538         before calling optimize_tail_recursion.
1539
1540 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1541
1542         * reload1.c (reload_combine): Fix errors in last change.
1543
1544 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
1545
1546         * gcc.c (used_arg): Skip over a semicolon at the end of the
1547         split-up loop; don't break out of it.
1548
1549         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
1550         (tree.o): Depend on output.h.
1551
1552         * c-decl.c (pending_invalid_xref_file,
1553         current_function_prototype_file): Constify.
1554         (pushdecl): Constify a local char *.
1555         (define_label): Constify filename parameter.
1556         * c-lex.c (init_parse): Constify parameter and return value.
1557         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
1558         * c-tree.h: Update prototypes.
1559         * c-parse.in: Constify filename member of %union, and if_stmt_file.
1560         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
1561         objc/objc-parse.c: Regenerate.
1562
1563         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
1564         * dwarfout.h: Update prototypes.
1565         * expr.c (expand_expr): Constify a local char *.
1566         * flags.h: Constify main_input_filename.
1567         * function.c (expand_function_end): Constify filename parameter.
1568         * genrecog.c (make_insn_sequence): Use a character array for
1569         c_test_pos.
1570         (main): Remove unused variables.
1571         * input.h: Constify input_filename, main_input_filename, and
1572         file_stack.name.  Update prototypes.
1573         * output.h: Declare first_global_object_name and
1574         weak_global_object_name here, as const char *.
1575         * stmt.c (expand_asm_operands): Constify filename parameter.
1576         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
1577         Constify filename parameter.
1578         (input_filename, main_input_filename): Constify.
1579         * toplev.h: Update prototypes.
1580         * tree.c: Include output.h.  Don't declare
1581         first_global_object_name or weak_global_object_name.  Clean up string
1582         bashing in get_file_function_name_long.
1583         * tree.h (struct tree_decl): Constify filename member.
1584         (input_filename): Constify.
1585         Update prototypes.
1586         * varasm.c (first_global_object_name, weak_global_object_name):
1587         Constify.
1588         (assemble_start_function, assemble_variable): Clean up string bashing.
1589
1590         * gcc.c: Constify all spec-related strings initialized,
1591         transitively, from string constants.  Constify all strings
1592         and string variables related to multilibs.
1593         (set_spec, read_specs): Cast argument to free to PTR.
1594         (used_arg): Do not modify multilib_matches.  Use strncmp plus
1595         length comparison to compare multilib switches.
1596         * genmultilib: Constify everything declared in multilib.h.
1597
1598 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
1599
1600         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
1601         as deleted.
1602
1603 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
1604
1605         * config/avr/avr-protos.h (extra_constraint): change a type of
1606         second argument from char to int to avoid warnings.
1607         (asm_output_byte): Likewise.
1608         
1609         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
1610         (initial_elimination_offset): Handle elimination from
1611         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
1612         (legitimate_address_p): Use MAX_LD_OFFSET.
1613         (legitimize_address): Likewise.
1614         (out_movqi_r_mr): Likewise.
1615         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
1616         (out_movsi_r_mr): Use MAX_LD_OFFSET.
1617         (out_movsi_mr_r): Likewise.
1618         (out_movqi_mr_r): Likewise.
1619         (out_movhi_mr_r): Likewise.
1620         (notice_update_cc): Correct CC for the ashrqi3 with the shift
1621         count as CONST_INT != 6.
1622         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
1623         shift count is a CONSTANT_P, but not a CONST_INT.
1624         (ashlhi3_out): Coding style modifications.
1625         (ashlsi3_out): Likewise.
1626         (ashrhi3_out): Likewise.
1627         (ashrsi3_out): Likewise.
1628         (lshrhi3_out): Likewise.
1629         (lshrsi3_out): Likewise.
1630         (ashrqi3_out): Generate shift for any known constant count without
1631         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
1632         but not a CONST_INT.
1633         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
1634         shift count is a CONSTANT_P, but not a CONST_INT. 
1635         (extra_constraint): change a type of
1636         second argument from char to int to avoid warnings.
1637         (asm_output_byte): Likewise.
1638         (asm_file_end): Output size generated commands count as a hex
1639         number too.
1640
1641         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
1642
1643         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
1644         removed.
1645         (ashlqi3): Values of "length" attribute changed. Shift count
1646         uses constraints 'n' instead of 'i'.
1647         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
1648         shifts without clobber register.
1649         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
1650         (call_insn): Correct test for which_alternative == 1 (was 0).
1651         (call_value_insn): Likewise.
1652         
1653         * config/avr/t-avr: Remove definition of FLOAT while generates
1654         fp-bit.c
1655
1656 2000-05-09  Bruce Korb  <bkorb@gnu.org>
1657
1658         * fixinc/check.tpl:  Template for checking fixes
1659         * fixinc/inclhack.def:  Added 'test_text' for many fixes
1660         disable hpux8_bogus_inlines on SCO
1661         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
1662
1663 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1664
1665         * calls.c (expand_call): Reorganize somewhat in order
1666         to avoid unnecesary recalculation inside loop and make
1667         tail call failure code cleaner.
1668         
1669 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1670
1671         * alias.c (nonlocal_reference_p): Minor reformatting.
1672         * reload.c (find_equiv_reg): Simplify logic for
1673         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
1674         some some reformatting.
1675         * reload1.c (reload_combine): Don't assume everything in
1676         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
1677
1678 2000-05-08  Richard Henderson  <rth@cygnus.com>
1679
1680         * final.c (current_insn_predicate): New.
1681         (final_scan_insn): Set it.
1682         * output.h (current_insn_predicate): Declare.
1683
1684         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
1685         Attach it to call insns.
1686         (cond_exec_process_if_block): Track probability for true and
1687         false branches.
1688         (dead_or_predicable): Likewise.
1689
1690         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
1691         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
1692         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
1693         (estimate_probability, expected_value_to_br_prob): Use them.
1694
1695         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
1696         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
1697         (ia64_expand_prediction): New.
1698         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
1699         as needed after calls.
1700         (ia64_epilogue_uses): Mark b0 used.
1701         * config/ia64/ia64.md (beq_true, beq_false): Remove.
1702         (bne_true, bne_false): Remove.
1703         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
1704         (br_true, br_false): New.  Use predicate_operator and
1705         ia64_expand_prediction.
1706         (return_true, return_false): Likewise.
1707         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
1708         (call_internal1, call_value_internal): Likewise.
1709         (call_value_internal1, call_multiple_values_internal1): Likewise.
1710
1711         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
1712
1713         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
1714
1715 2000-05-08  Richard Henderson  <rth@cygnus.com>
1716
1717         * rtlanal.c (may_trap_p): Consider old-style and volatile
1718         asms to trap.
1719
1720 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
1721
1722         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
1723
1724 2000-05-08  Richard Henderson  <rth@cygnus.com>
1725
1726         * config/ia64/ia64.h (predicate_operator): Declare.
1727
1728         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
1729         of existance.
1730
1731         * gensupport.c (process_rtx): Copy and post-process each member
1732         of the define_insn rtvec individually.
1733
1734 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
1735
1736         * cpplex.c (spell_token): New function.
1737         (TOKEN_LEN): Add 1 for whitespace.
1738         (_cpp_lex_file): Update to use spell_token.
1739         * cpplib.h (E): Remove.
1740         (TTYPE_TABLE): Update CPP_VSPACE entry.
1741
1742 2000-05-08  Richard Henderson  <rth@cygnus.com>
1743
1744         * flow.c (init_propagate_block_info): Watch out for conditional
1745         branch to next instruction, and thus one outgoing edge.
1746
1747         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
1748         for global register variables; don't special case __[CD]TOR_LIST__;
1749         mind ggc_p for string allocation.
1750
1751 2000-05-08  Nick Clifton  <nickc@cygnus.com>
1752
1753         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
1754
1755 2000-05-08  Bruce Korb  <bkorb@gnu.org>
1756
1757         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
1758         i?86-*-msdosdjgpp* no longer uses fixincludes
1759         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
1760         * fixinc/inclhack.sh:  deleted
1761         * fixinc/hackshell.tpl:  deleted
1762         * fixinc/inclhack.tpl:  deleted
1763         * fixinc/Makefile.in:  Remove dependencies on above
1764         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
1765
1766 2000-05-08  Andreas Jaeger  <aj@suse.de>
1767
1768         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
1769         support.
1770
1771 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
1772
1773         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
1774         substitutions.
1775
1776 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
1777
1778         * cpplex.c: Move new lexer definitions and prototypes
1779         to top.  Conditional include these and the code if
1780         NEW_LEXER is defined.  Rename functions whose names
1781         clash if this code included.
1782
1783 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
1784
1785         * rtl.def (COND_EXEC): Clarify.
1786
1787         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
1788         same fashion as zero_extendsidi2.
1789
1790 2000-05-06  Richard Henderson  <rth@cygnus.com>
1791
1792         * config/ia64/ia64.c (predicate_operator): New.
1793         (ia64_print_operand): Handle 'J'.
1794         (rtx_needs_barrier): Handle COND_EXEC.
1795         * config/ia64/ia64.h (BRANCH_COST): Define.
1796         (PREDICATE_CODES): Update.
1797         * config/ia64/ia64.md: Docuement used unspec values.
1798         (attr predicable): New.
1799         (movxf, movxf_internal): New.
1800         (extendsfdf2): Don't comment out nop.
1801         (floatdidf2): Remove.
1802         (truncxfsf2, truncxfdf2, floatdixf2): New.
1803         (abssi2, absdi2): Put the neg in the "true" slot.
1804         (conditional branch instructions): Mark not predicable.
1805         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
1806         (abs*_internal): Likewise.
1807         (alloc, set_bsp): Mark not predicable.
1808         (barrier, insn_group_barrier, flush_cache): Likewise.
1809         (define_cond_exec): New.
1810
1811 2000-05-06  Richard Henderson  <rth@cygnus.com>
1812
1813         * c-decl.c: Include "tm_p.h".
1814
1815         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
1816         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
1817         (ia64_expand_op_and_fetch): Declare.
1818         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
1819         (setjmp_operand): Constify variables for XSTR.
1820         (ia64_encode_section_info): Likewise.
1821         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
1822         values to int.
1823         (ia64_asm_output_external): Constify name.
1824         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
1825         (process_for_unwind_directive): Provide switch default.
1826         (ia64_expand_compare_and_swap): Remove unused variables.
1827         (ia64_expand_builtin): Likewise.
1828         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
1829         for printing.
1830
1831         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
1832         (symbolic_operand, function_operand, setjmp_operand): Likewise.
1833         (shift_count_operand, shift_32bit_count_operand): Likewise.
1834         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
1835         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
1836         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
1837         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
1838         (ia64_expand_builtin): Likewise.
1839         (call_multiple_values_operation): Make dest_regno unsigned.
1840
1841 2000-05-06  Richard Henderson  <rth@cygnus.com>
1842
1843         * rtl.def (DEFINE_COND_EXEC): New.
1844         * md.texi: Document it.
1845
1846         * gensupport.c (input_file): Remove.
1847         (struct queue_elem): Add lineno.
1848         (rtx_ready_queue): Remove.
1849         (errors): New.
1850         (predicable_default): New.
1851         (predicable_true, predicable_false): New.
1852         (define_attr_queue, define_attr_tail): New.
1853         (define_insn_queue, define_insn_tail): New.
1854         (define_cond_exec_queue, define_cond_exec_tail): New.
1855         (other_queue, other_tail): New.
1856         (queue_pattern): New.
1857         (process_rtx): Add patterns to the appropriate queues.
1858         (is_predicable, identify_predicable_attribute): New.
1859         (n_alternatives, collect_insn_data): New.
1860         (alter_predicate_for_insn, alter_test_for_insn): New.
1861         (shift_output_template, alter_output_for_insn): New.
1862         (process_one_cond_exec, process_define_cond_exec): New.
1863         (init_md_reader): Read the entire file.  Process define_cond_exec.
1864         (read_md_rtx): Return elements from the queues.
1865
1866 2000-05-06  Richard Henderson  <rth@cygnus.com>
1867
1868         * flow.c (mark_set_1): Don't update conditional life info
1869         if the register is not_dead.
1870
1871 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
1872
1873         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
1874         (mostlyclean): Also delete fixincl, fixinc.sh, and
1875         specs.ready, and make clean in the fixinc subdir.
1876
1877 2000-05-06  Richard Henderson  <rth@cygnus.com>
1878
1879         * Makefile.in (gensupport.o): Compile for the host.
1880         (host-prefix gensuuprt.o): Remove.
1881         (genflags.o): Depend on gensupport.h and OBSTACK_H.
1882         (genattrtab.o): Likewise.
1883         (gencodes.o): Depend on gensupport.h.
1884         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
1885         (genpeep.o, genattr.o, genoutput.o): Likewise.
1886
1887         * gensupport.c (obstack, rtl_obstack): New.
1888         (init_md_reader): Initialize rtl_obstack.
1889         * gensupport.h (rtl_obstack): Declare.
1890         (message_with_line): Declare.
1891
1892         * genattr.c: Remove all traces of obstack manipulation.
1893         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
1894         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
1895
1896         * genattrtab.c (obstack, rtl_obstack): Remove.
1897         (main): Don't init rtl_obstack.
1898         * genflags.c: Likewise.
1899
1900         * genrecog.c (message_with_line): Move ...
1901         * gensupport.c: ... here.
1902
1903 2000-05-06  Richard Henderson  <rth@cygnus.com>
1904
1905         * c-typeck.c (build_c_cast): Remove dead code.
1906
1907 2000-05-06  Richard Henderson  <rth@cygnus.com>
1908
1909         * flow.c (split_edge): Don't allocate global_live_at_start for
1910         the new block unless the old blocks had them as well.
1911
1912         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
1913
1914         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
1915         test_bb if a or b uses x.
1916
1917 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
1918
1919         * cpphash.h: Remove conditional #define of __extension__.
1920         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
1921         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
1922         (ENABLE_RTL_CHECKING only).
1923         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
1924         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
1925         (ENABLE_TREE_CHECKING only).
1926         * varray.h: Add __extension__ to VARRAY_CHECK macro
1927         (ENABLE_CHECKING only).
1928
1929 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
1930
1931         Use new tail-calling mechanism on ARM.
1932         * arm.md (sibcall, sibcall_value): New expands.
1933         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
1934         (tailcalling peepholes): Delete.
1935         (push_multi): Simplify.
1936         * arm.c (lr_save_eliminated): Delete definition.
1937         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
1938         (output_return_instruction): Remove checks on lr_save_eliminated.
1939         (output_arm_prologue): Remove old tail-calling code.
1940         (arm_output_epilogue): New parameter, really_return.  All callers
1941         changed.  Handle tail-calling epilogues.
1942         * arm.h (lr_save_eliminated): Delete declaration.
1943         (frame_pointer_needed): Delete declaration.
1944         * arm-protos.h (arm_output_epilogue): Adjust prototype.
1945
1946         * arm.md (is_thumb): Examine symbol thumb_code, not expression
1947         TARGET_ARM.
1948         * arm.c (thumb_code): Define it.
1949         (arm_override_options): Set it.
1950         * arm.h (thumb_code): Declare it.
1951         
1952 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
1953
1954         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
1955
1956 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
1957
1958         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
1959         bogus clobber to insns.
1960         (load_multiple_operation, store_mulitple_operation): Don't check 
1961         for it.
1962         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
1963
1964         * arm.md (and_scc, ior_scc): Add missing mode.
1965
1966         * arm.md (call_value_symbol): Remove predicate from op2.
1967
1968         * arm.h (SPECIAL_MODE_PREDICATES): Define.
1969         
1970 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1971
1972         * expr.c (get_subtarget): New function.
1973         (force_operand, expand_expr, do_store_flag): Use it.
1974
1975         * toplev.c (compile_file): Don't take strlen of NAME if null.
1976
1977 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
1978
1979         * xcoffout.c (xcoff_current_include_file,
1980         xcoff_current_function_file, xcoff_lastfile): Constify char *.
1981         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
1982         char *'.
1983         (xcoffout_declare_function): Make name 'const char *'.
1984         (xcoffout_end_epilogue): Make fname 'const char *'
1985         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
1986         xcoffout_declare_function, xcoffout_source_line): Match above.
1987
1988         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
1989         -maix64 is error.
1990         * rs6000.c (print_operand): Fix lossage typo.
1991         (output_cbranch): Remove "cr" decoration for now.
1992         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'. 
1993
1994 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
1995
1996         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
1997         constant count.
1998
1999 2000-05-05  Bruce Korb  <bkorb@gnu.org>
2000
2001         * fixinc/genfixes: Improve the matching for make target names
2002
2003 2000-05-05  Catherine Moore  <clm@cygnus.com>
2004
2005         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
2006         attribute to the decl.
2007         * c-decl.c (pushdecl): Propagate the USED attribute to the 
2008         type copy.
2009
2010 2000-05-05  Richard Henderson  <rth@cygnus.com>
2011
2012         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
2013         same way emit_group_load does.
2014
2015 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
2016
2017         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
2018
2019         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
2020         (main): Likewise.
2021
2022 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
2023
2024         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
2025
2026 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
2027
2028         * config/openbsd.h (LINK_SPEC): pass correct flags to ld 
2029         to support -shared, on platforms with dynamic libraries.
2030
2031 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
2032
2033         * system.h (S_ISBLK): Provide fallback definition.
2034
2035 2000-05-05  Geoff Berry  <geoffb@bops.com>
2036
2037         * extend.texi (Extended Asm): Document inability to give asm
2038         statements access to condition codes.
2039
2040 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
2041
2042         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
2043         as arg 2 of UNIQUE_SECTION.
2044
2045 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
2046
2047         * predict.c: Remove May 4 change.
2048         * bb-reorder.c (make_reorder_chain): Do not perform block movement
2049         if we have predicted the branch at 50-50 probability.
2050
2051 2000-05-05  Richard Henderson  <rth@cygnus.com>
2052
2053         * flow.c (init_propagate_block_info): Fix merge error
2054         in HAVE_conditional_execution code.
2055
2056 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
2057
2058         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
2059         shift cycle for unknown shift count. Also generates dec + brpl.
2060         (ashlqi3_out): Don't generate dec + brpl which now generates by
2061         `out_shift_with_cnt'.
2062         (ashlhi3_out): Likewise.
2063         (ashlsi3_out): Likewise.
2064         (ashrqi3_out): Likewise.
2065         (ashrhi3_out): Likewise.
2066         (ashrsi3_out): Likewise.
2067         (lshrqi3_out): Likewise.
2068         (lshrhi3_out): Likewise.
2069         (lshrsi3_out): Likewise.
2070
2071 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
2072
2073         * gcc.c (free_split_directories): Correct typo in explanation
2074         of make_relative_prefix.
2075
2076 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
2077
2078         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
2079         comparison codes to branch_comparison_operator.
2080
2081 2000-05-04  Richard Henderson  <rth@cygnus.com>
2082
2083         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
2084
2085 2000-05-04  Richard Henderson  <rth@cygnus.com>
2086
2087         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
2088         (DPBIT_FUNCS): Remove _sf_to_usi.
2089         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
2090
2091         * ifcvt.c (noce_process_if_block): Fail if A or B modified
2092         between condition and jump.
2093
2094         * libgcc2.c (near eh_context_specific): Comment #endif string.
2095         * longlong.h: Don't use strings with embedded newlines.
2096
2097 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
2098
2099         * config/rs6000/rs6000-protos.h: Add output_cbranch.
2100         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
2101         (print_operand): Delete %t and %T codes.
2102         (output_cbranch): New function.  Support branch prediction.
2103         * config/rs6000/rs6000.md: Use output_cbranch for
2104         conditional branches and returns.
2105
2106 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
2107
2108         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
2109         * stor-layout.c (place_field): Likewise.
2110         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
2111         * expr.c (store_expr): Make align unsigned.
2112         * explow.c (plus_constant_wide): Make low words unsigned.
2113         * expmed.c (choose_multiplier): Likewise.
2114         * fold-const.c (fold):  Likewise.
2115         * tree.h (build_int_2): Likewise.
2116         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
2117         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
2118         (init_emit): Change cast to unsigned char*.
2119         * varasm.c (compare_constant_1): Add cast to char*.
2120         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
2121         * reload1.c (reload): Likewise.
2122
2123         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
2124
2125 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
2126
2127         * predict.c (estimate_probability): If no prediction was found, then
2128         predict the successor that is the next physical block (if such a
2129         successor exists).
2130
2131 2000-05-04  Richard Henderson  <rth@cygnus.com>
2132
2133         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
2134
2135 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2136
2137         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
2138
2139 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
2140
2141         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move 
2142         attribute macros from here ...
2143         (CPP_SPEC): to here.
2144         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
2145         (CPP_SPEC): Likewise.
2146         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros. 
2147
2148         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
2149         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
2150
2151 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2152
2153         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
2154         
2155         * diagnostic (vbuild_message_string, build_message_string,
2156         build_location_prefix, output_get_prefix, init_output_buffer,
2157         output_notice, vline_wrapper_message_with_location,
2158         v_message_with_decl, default_print_error_function): De-constify.
2159         (set_real_maximum_length): Prototype.
2160
2161         * diagnostic.h (struct output_buffer, init_output_buffer,
2162         output_get_prefix, output_set_prefix): De-constify.
2163
2164         * function.c (init_function_start): Constify.
2165
2166         * gensupport.c (remove_constraints, process_rtx): Prototype.
2167
2168         * gthr-posix.h: Indent uses of #pragma.
2169
2170         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
2171         Prototype.
2172
2173         * predict.c (find_expected_value): Delete prototype.
2174         (expected_value_to_br_prob): Initialize variable `ev_reg'.
2175
2176         * sbitmap.h (debug_sbitmap): Prototype.
2177
2178         * ssa.c (compute_coalesced_reg_partition): Prototype.
2179
2180         * stor-layout.c (debug_rli): Prototype.
2181
2182         * tree.h (round_down): Prototype.
2183         (init_function_start): Constify.
2184
2185 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
2186
2187         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
2188         (overly conservative).  Change extern inline wrappers to
2189         static inline, define them always, use PARAMS properly.
2190         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
2191         whitespace warnings for \f and \v at the beginning of a line.
2192
2193 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
2194
2195         * haifa-sched.c (schedule_insns): Free the flow edge list when it
2196         is no longer needed
2197
2198 2000-05-04  Bruce Korb  <bkorb@gnu.org>
2199
2200         * fixincl/inclhack.def: added broken_cabs -
2201         Remove `extern double cabs' declarations from math.h
2202         * fixincl/inclhack.sh: regen
2203         * fixincl/fixincl.x: regen
2204         * fixincl/fixincl.c: Remove BOGOSITY code
2205         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
2206
2207 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2208
2209         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
2210         MEM_ALIAS_SET.
2211         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
2212         when calling MEM_COPY_ATTRIBUTES.
2213         * emit-rtl.c (operand_subword, change_address): Likewise.
2214         * explow.c (stabilize): Likewise.
2215         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
2216         * integrate.c (copy_rtx_and_substitute): Likewise.
2217         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
2218         when calling MEM_COPY_ATTRIBUTES.
2219         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
2220         Likewise.
2221         * cse.c (gen_lowpart_if_possible): Likewise.
2222         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
2223         * optabs.c (gen_move_insn): Likewise.
2224         * recog.c (validate_replace_rtx_1): Likewise.
2225         * simplify-rtx.c (add_mem_for_addr): Likewise.
2226         * stmt.c (expand_anon_union_decl): Likewise.
2227         * config/arm/arm.md: Likewise.
2228         * config/h8300/h7300.c (fix_bit_operand): Likewise.
2229         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
2230         (block_move_no_loop, block_move_sequence): Likewise.
2231         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
2232         * config/alpha/alpha.c (get_aligned_mem): Likewise.
2233         Clear MEM_ALIAS_SET.
2234         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
2235         MEM_COPY_ATTRIBUTES.
2236
2237 2000-05-03  Robert Lipe <robertlipe@usa.net>
2238         
2239         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
2240         to suppress libgcc1.
2241         (i[34567]86-*-sco3.2v5*) Likewise.
2242         (i[34567]86-*-sco3.2v4*) Likewise.
2243         (i[34567]86-*-sco) Likewise.
2244         (i[34567]86-*-solaris2) Likewise.
2245         (i[34567]86-*-sysv5*) Likewise.
2246         (i[34567]86-*-sysv4*) Likewise.
2247         (i[34567]86-*-udk*) Likewise.
2248         (i[34567]86-*-sysv*) Likewise.
2249
2250 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
2251
2252         * cpphash.h (U): New define, to correct type of string constants.
2253         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
2254         routines, to do casts when passing unsigned strings to libc.
2255         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
2256
2257         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
2258         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
2259         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
2260         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
2261         second argument an U_CHAR *.
2262
2263         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
2264         length field, clean up initializer.
2265         (ISTABLE): Add __extension__ to designated-
2266         initializers version.
2267         * cpplex.c (CHARTAB): Likewise.
2268
2269         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
2270         case so the file won't be empty.
2271
2272 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
2273
2274         * bb-reorder.c (struct reorder_block_def): Member succ removed.
2275         (REORDER_BLOCK_SUCC): Removed.
2276         (enum reorder_skip_type): Removed.
2277         (skip_insns_between_block): Renamed to skip_insns_after_block.
2278         Removed second argument. Removed dead code and cleaned up.
2279         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
2280         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
2281         second parameter to skip_insns_after_block.
2282
2283 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2284
2285         * tree.c (staticp, case LABEL_DECL): New case.
2286
2287 2000-05-03  Richard Henderson  <rth@cygnus.com>
2288
2289         * Makefile.in (start.encap): Do not depend on LIBGCC1.
2290
2291         * mklibgcc1.in: Fix typo last change.
2292
2293 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
2294
2295         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
2296         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
2297         (GCC_CFLAGS): Use it.
2298         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
2299         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
2300         objc/Make-lang.in: Use it.
2301
2302 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
2303
2304         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
2305
2306 2000-05-03  Richard Henderson  <rth@cygnus.com>
2307
2308         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
2309         LIBGCC1 empty with libgcc1.null.
2310
2311 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
2312
2313         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
2314         change.
2315
2316 2000-05-03  Greg McGary  <gkm@gnu.org>
2317
2318         * tree.h (tree_common): Add bounded_flag member.  Remove
2319         inaccurate comment about number of remaining bits.
2320         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
2321         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
2322         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
2323         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
2324         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
2325         (TYPE_QUAL_BOUNDED): New constant.
2326         (TYPE_QUALS): Handle bounded qualifier.
2327         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
2328         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
2329         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
2330         TYPE_AMBIENT_BOUNDEDNESS): New macros.
2331         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
2332         (tree_type): Add pointer_depth member.  Remove
2333         inaccurate comment about number of remaining bits.
2334         (DECL_POINTER_DEPTH): Add macro.
2335         (tree_decl): Add pointer_depth member.
2336
2337 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
2338
2339         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
2340         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
2341         (lshrhi3_out): Likewise.
2342         (ashrsi3_out): bugfix in shift by 8.
2343         (test_hard_reg_class): New function.
2344         * config/avr/avr.md: Bugfix inside conditions in peepholes.
2345         (ashlhi3): removed define_expand of this pattern.
2346         (*ashlhi3_insn): renamed to ashlhi3.
2347         (ashlsi3): removed define_expand of this pattern.
2348         (*ashlsi3_insn): renamed to ashlsi3.
2349         (ashrqi3): removed define_expand of this pattern.
2350         (*ashrqi3_insn): renamed to ashrqi3.
2351         (ashrhi3): removed define_expand of this pattern.
2352         (*ashrhi3_insn): renamed to ashrhi3.
2353         (ashrsi3): removed define_expand of this pattern.
2354         (*ashrsi3_insn): renamed to ashrsi3.
2355         (lshrhi3): removed define_expand of this pattern.
2356         (*lshrhi3_insn): renamed to lshrhi3.
2357         (lshrsi3): removed define_expand of this pattern.
2358         (*lshrsi3_insn): renamed to lshrsi3.
2359
2360 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
2361
2362         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
2363         inclusion of "system.h".
2364
2365 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
2366
2367         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
2368         TREE_ASM_WRITTEN.
2369
2370 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
2371
2372         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
2373         if -mauto-pic is on.
2374         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
2375         -mconstant-gp is in effect and function-descriptors are being used
2376         to make indirect calls.
2377         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
2378         (MASK_AUTO_PIC): Ditto.
2379         (TARGET_CONST_GP): Ditto.
2380         (TARGET_AUTO_PIC): Ditto.
2381         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
2382         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
2383         -mno-pic is in effect.
2384         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
2385         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
2386         -mauto-pic is in effect.
2387         (gprel64_offset): New pattern.
2388         (load_gprel64): Ditto.
2389         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
2390         -mconstant-gp is in effect, no need to preserve gp around direct
2391         calls.
2392         (call_value): Ditto.
2393         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
2394         (FUNCTION_PROFILER): Define.
2395         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
2396         @fptr() directive when -mno-pic or -mauto-pic is in effect.
2397         (ASM_OUTPUT_DESTRUCTOR): Ditto.
2398
2399 2000-05-03  Richard Henderson  <rth@cygnus.com>
2400
2401         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
2402         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
2403         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
2404         (mklibgcc, libgcc.mk): New targets.
2405         (libgcc.a): Use libgcc.mk.
2406         (stmp-multilib): Likewise.
2407         (stmp-multilib-sub): Remove.
2408         (mostlyclean): Don't delete libgcc2 temp files.
2409         * configure.in (AC_PROG_CC_C_O): Add.
2410         (NO_MINUS_C_MINUS_O): Substitute it.
2411         (all_outputs): Add mklibgcc.
2412         * mklibgcc.in: New file.
2413
2414 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
2415
2416         * cppexp.c (op_t): Make an int.
2417
2418         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
2419
2420         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
2421
2422         * gensupport.c (process_rtx): Fix macros used.
2423
2424 2000-05-03  Richard Henderson  <rth@cygnus.com>
2425
2426         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
2427         call-clobbered registers of a call.
2428
2429 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
2430
2431         * gensupport.c: New file.
2432         * gensupport.h: New file.
2433         * Makefile.in (HOST_RTL): Depend on gensupport.
2434         (gensupport.o) New rule.
2435         * genattr.c: Use gensupport for reading .md files.
2436         * genattrtab.c: Ditto. 
2437         * gencodes.c: Ditto. 
2438         * genconfig.c: Ditto. 
2439         * genemit.c: Ditto. 
2440         * genextract.c: Ditto. 
2441         * genflags.c: Ditto. 
2442         * genopinit.c: Ditto. 
2443         * genoutput.c: Ditto. 
2444         * genpeep.c: Ditto. 
2445         * genrecog.c: Ditto.
2446         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
2447         * md.texi (Insn Splitting): Document define_insn_and_split.
2448
2449 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
2450
2451         * flow.c (verify_flow_info): Added two more sanity checks. The
2452         first checks that the blocks are numbered consecutively. The second
2453         checks that n_basic_blocks is actually equal to the number of
2454         basic blocks in the insn chain.
2455
2456 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
2457
2458         * cpplib.h: Add accessor macros for token lists.
2459         * cpplib.c, cpphash.c, cpplex.c: Use them.
2460
2461 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2462
2463         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
2464         memory usage if not in a function.
2465         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
2466         return address if static.
2467
2468 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2469
2470         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
2471         whether address may trap.
2472
2473 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
2474
2475         * bb-reorder (chain_reorder_blocks): Changed code to test for
2476         EDGE_FALLTHRU rather than making erroneous assumption that the
2477         first outgoing edge is the fall-through edge.
2478
2479 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
2480
2481         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new 
2482         ABI for varargs, across all MIPS. This is incompatible because the
2483         va_list (__builtin_va_list) structure is different, so a compilation
2484         unit passing a va_list and a compilation unit being passed one, should
2485         both be compiled with the same ABI. (The old structure had two 
2486         pointers, now it has three.)
2487
2488 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
2489
2490         * bb-reorder.c (struct reorder_block_def): Remove members end,
2491         block_begin, and block_end.
2492         (REORDER_BLOCK_OLD_END): Delete.
2493         (REORDER_BLOCK_BEGIN): Delete.
2494         (REORDER_BLOCK_END): Delete.
2495         (chain_reorder_blocks): Remove dead code.
2496
2497 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
2498
2499         * bb-reorder.c (remove_scope_notes): Check for both types of scope
2500         notes as the end of a basic block before deleting.
2501
2502 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
2503
2504         * final.c (final_start_function): Fix spelling of "necessary".
2505
2506 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
2507
2508         * toplev.c (debug_ignore_block): Return int.
2509         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
2510         * toplev.h, dwarf2out.h: Adjust.
2511         * emit-rtl.c (remove_unnecessary_notes): Test return value.
2512
2513         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
2514         * toplev.c, final.c, rtl.h: Adjust.
2515
2516 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
2517
2518         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
2519         * configure.in: Look for makeinfo in the unified tree, then
2520         for a system makeinfo which is sufficiently new.
2521         * Makefile.in: If configure says makeinfo is too old, don't
2522         build or install Info documentation.
2523
2524 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
2525
2526         * cpphash.c (collect_params): Fix off-by-one error.
2527         (dump_hash_helper): Dump all four macro nodetypes.
2528
2529 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
2530
2531         * cpphash.c (trad_stringify): Adjust p after stringification as
2532         well.
2533
2534 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
2535
2536         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
2537         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
2538
2539         * cppfiles.c (file_cleanup): Delete.
2540         * cpphash.c (macro_cleanup): Delete.
2541         (collect_objlike_expansion, collect_funlike_expansion,
2542         macarg, scan_arguments): Remove CPP_POP case.
2543
2544         * cpplex.c (null_cleanup): Delete.
2545         (cpp_pop_buffer): Do the work that was done in the cleanups
2546         here.  Call _cpp_unwind_if_stack from here.
2547         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
2548         cpp_scan_buffer): Run until we see CPP_EOF and the top of
2549         stack is the buffer _below_ the one we stacked.
2550         (cpp_get_token): Always pop an exhausted buffer.  Return
2551         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
2552         * cpplib.c (skip_if_group): Don't call cpp_get_token to
2553         increment the line number.
2554         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
2555
2556         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
2557         we see CPP_EOF and the top of stack is the buffer _below_ the
2558         one we stacked.
2559         * scan-decls.c: Likewise.
2560
2561 2000-05-02  Andrew Haley  <aph@cygnus.com>
2562
2563         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
2564         where this function is called for the second time on a decl that
2565         has had its section info changed in such a way as to move it out
2566         of small data/bss.  
2567         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
2568
2569 2000-05-01  Richard Henderson  <rth@cygnus.com>
2570
2571         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
2572         the sequence we're moving, not to merge_bb->head.
2573
2574 2000-05-01  Richard Henderson  <rth@cygnus.com>
2575
2576         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
2577         reference to alpha/t-linux.
2578         (alpha*-*-linux-gnu*): Likewise.
2579         * configure: Rebuild.
2580
2581         * calls.c (expand_call): Don't emit reg notes for a sibcall.
2582
2583         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
2584         if not in SSA form.
2585
2586         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
2587
2588 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
2589
2590         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
2591         TREE_THIS_VOLATILE.
2592
2593 2000-05-01  Richard Henderson  <rth@cygnus.com>
2594
2595         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
2596         emit_conditional_move.
2597
2598 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
2599
2600         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
2601         as the dynamic linker.
2602
2603 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
2604
2605         * cppfiles.c (open_include_file): Open file in blocking mode.
2606         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
2607         Only exclude block devices and directories.
2608
2609         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
2610         static.  Allocate the hashnode and its string in the same
2611         block of memory.
2612         (del_HASHNODE): Don't free h->name.
2613         (_cpp_lookup): If there is no entry for this string, create
2614         one, of type T_VOID.
2615         (_cpp_lookup_slot): Delete.
2616         * cpphash.h: Update prototypes.
2617
2618         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
2619         not hp == NULL.
2620         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
2621         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
2622         node here, just fill in the value field properly.  "Delete"
2623         entries by setting the value field to T_VOID.  Check for
2624         hp->type == T_VOID, not hp == NULL.
2625
2626         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
2627         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
2628         hashtab.h.
2629
2630 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
2631
2632         * config/mn10300/mn10300.c (print_operand_address): Do not add
2633         zero to SP.
2634
2635         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
2636         adjusted by less than 256 bytes, use ret regardless of having any
2637         callee-saved register to restore.
2638
2639 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
2640
2641         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
2642
2643 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
2644
2645         * config/i386/djgpp.h (INT_ASM_OP): Define.
2646         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
2647         (ASM_WEAKEN_LABEL): Define.
2648         (MASK_BNU210): Define.
2649         (SUBTARGET_SWITCHES): Define.
2650         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
2651         (MAKE_DECL_ONE_ONLY): Define.
2652         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
2653
2654 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
2655
2656         * i386/cygwin.h (INT_ASM_OP): Define.
2657
2658 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
2659
2660         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
2661         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
2662
2663 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
2664
2665         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
2666         __tmp_reg__ and __zero_reg__ initialization.
2667
2668 2000-04-30  Richard Henderson  <rth@cygnus.com>
2669
2670         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
2671
2672         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
2673         referenced bewteen the condition and the jump.  Don't delete
2674         anything but the jump.
2675
2676 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
2677
2678         * bb-reorder.c (scope_def): New struct.
2679         (scope_forest_info): New struct.
2680         (struct reorder_block_def): New member "scope".
2681         (REORDER_BLOCK_SCOPE): New macro.
2682         (relate_bbs_with_scopes): New function and prototype.
2683         (make_new_scope): Likewise.
2684         (build_scope_forest): Likewise.
2685         (remove_scope_notes): Likewise.
2686         (insert_intra_1): Likewise.
2687         (insert_intra_bb_scope_notes): Likewise.
2688         (insert_inter_bb_scope_notes): Likewise.
2689         (rebuild_scope_notes): Likewise.
2690         (free_scope_forest_1): Likewise.
2691         (free_scope_forest): Likewise.
2692         (dump_scope_forest): Likewise.
2693         (dump_scope_forest_1): Likewise.
2694         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
2695         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
2696         block.
2697         (reorder_basic_blocks): Added calls to build_scope_scope_forest
2698         and remove_scope_notes before reordering is done. Added calls to
2699         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
2700         after reordering is done.
2701
2702 2000-40-30  Bruce Korb  <bkorb@gnu.org>
2703
2704         * fixinc/inclhack.def:  Added definitions needed by OSR5,
2705         removed two stale entries (defined away with OLD_CPP).
2706         * fixinc/inclhack.sh: regen
2707         * fixinc/fixincl.x: regen
2708
2709 2000-04-30  Richard Henderson  <rth@cygnus.com>
2710
2711         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
2712         from the last insn in the sequence.
2713
2714 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
2715
2716         * cpplex.c (cpp_idcmp): New function.
2717         * cpplib.h: Prototype it.
2718         * scan_decls.c (scan_decls): Use it to inspect token names.
2719         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
2720         the file being run through the preprocessor.
2721         (check_macro_names): Provide length of token to cpp_defined.
2722
2723         * Makefile.in: Remove stale warning message.
2724
2725         * cppfiles.c (redundant_include_p): Provide length of token to
2726         cpp_defined.
2727         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
2728         values are unsigned int.
2729         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
2730         (_cpp_lookup_slot): Do not calculate the hash, either.
2731         * cpphash.h: Update prototypes.
2732         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
2733         Hashes are unsigned int.  Calculate hash here, pass by value
2734         to _cpp_lookup_slot.
2735
2736 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
2737
2738         * simplify-rtx.c (check_value_useless): Delete function.
2739         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
2740         by hand.
2741         (cselib_invalidate_regno): Likewise.
2742         (cselib_invalidate_mem_1): Likewise.
2743         (references_value_p): Recognize useless values by the fact that they
2744         have no locations.
2745         (discard_useless_values): Likewise.
2746         (cselib_record_set): This may turn a useless value
2747         into a useful one.
2748
2749 2000-04-30  Richard Henderson  <rth@cygnus.com>
2750
2751         * config/d30v: New port.
2752
2753         * configure.in (d30v-*): Set fp format.
2754         * configure: Rebuild.
2755
2756 2000-04-30  Richard Henderson  <rth@cygnus.com>
2757
2758         * ifcvt.c: New file.
2759         * Makefile.in (OBJS): Add it.
2760         (ifcvt.o): New target.
2761         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
2762         and conditional arithmetic.
2763         (find_insert_position): Remove.
2764         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
2765         * toplev.c (DFI_ce, DFI_ce2): New.
2766         (dump_file): Add ce and ce2 dumps.
2767         (rest_of_compilation): Run if_convert a couple o times.  Set
2768         cse_not_expected after cse2.  Don't set no_new_pseudos until
2769         after sched1 or recompute_reg_usage.
2770
2771 2000-04-30  Richard Henderson  <rth@cygnus.com>
2772
2773         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
2774         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
2775
2776 2000-04-30  Richard Henderson  <rth@cygnus.com>
2777
2778         * flow.c (struct reg_cond_life_info): New.
2779         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
2780         (init_propagate_block_info): Initialize them.
2781         (free_propagate_block_info): Destruct them.
2782         (mark_set_1): Consider conditional life before killing a register.
2783         (mark_regno_cond_dead): New.
2784         (free_reg_cond_life_info): New.
2785         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
2786         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
2787         (mark_used_reg): Record conditional life.
2788
2789         * haifa-sched.c (schedule_insns): Disable death counting
2790         sanity check for HAVE_conditional_execution.
2791
2792 2000-04-30  Richard Henderson  <rth@cygnus.com>
2793
2794         * Makefile.in (TIMEVAR_H): New.
2795         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
2796         (timevar.h): Remove rule.
2797
2798 2000-04-29  Richard Henderson  <rth@cygnus.com>
2799
2800         * config/alpha/crtend.asm: Use C comments instead of #.
2801         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
2802
2803         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
2804
2805 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
2806
2807         * cpphash.h (enum node_type: Take out T_MCONST.
2808         (union hashval): Move into struct hashnode.
2809         (struct hashnode): Pack tighter.  Remove file, line, col
2810         members.
2811         * cpphash.c: Constify most of the macro-definition structures.
2812         (struct definition): Replace by struct object_defn
2813         and struct funct_defn.  Put file, line, column information
2814         here.  All users updated to match.
2815         (_cpp_create_definition, _cpp_macroexpand): Remove special
2816         case for #define WORD OTHERWORD.
2817         * cpplib.c (do_undef): Remove T_MCONST case.
2818
2819         * cpphash.h: Move struct reflist, struct definition, and the
2820         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
2821         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
2822         * cpphash.c (_cpp_free_definition): Free data pointed to by
2823         MCONST, XCONST, MACRO, and FMACRO nodes properly.
2824         (_cpp_create_definition, del_HASHNODE): Just call
2825         _cpp_free_definition to clear out a hashnode.
2826         * cpplib.c (do_pragma_poison): Likewise.
2827
2828 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
2829
2830         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
2831         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
2832         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
2833         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
2834         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
2835         REGNO_AM33_P): Redefine in terms of the new macros.
2836         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
2837         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
2838         STRUCT_VALUE): Likewise.
2839         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
2840         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
2841
2842 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2843
2844         * regmove.c (struct record_stack_memrefs_data): New.
2845         (record_stack_memrefs): New function.
2846         (combine_stack_adjustments_for_block): Use it.
2847
2848 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2849
2850         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
2851         use special_function_p to detect alloca.
2852
2853 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
2854
2855         * gcc.texi: Fixes for makeinfo 4.0 --html.
2856
2857 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
2858
2859         * pcp.h: Delete file.
2860
2861 2000-04-28  Kazu Hirata  <kazu@hxi.com>
2862
2863         * h8300.c (function_epilogue): Clean up flags when the last insn
2864         in a function is a barrier.
2865
2866 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
2867
2868         * configure.in (sparc-hal-solaris2*): protect [] glob from
2869         my expansion.
2870         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
2871         rather than hard-coded constants in target_cpu_default2.
2872         * configure: Regenerate.
2873
2874 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
2875
2876         * tree.c (get_callee_fndecl): Extract the initial value from
2877         a readonly decl.
2878
2879 2000-04-28  Richard Henderson  <rth@cygnus.com>
2880
2881         * varasm.c (record_constant_1): Record the CODE_LABEL when
2882         taking the address of a LABEL_REF.
2883
2884 2000-04-28  Richard Henderson  <rth@cygnus.com>
2885             Jan Hubicka  <jh@suse.cz>
2886
2887         * calls.c (combine_pending_stack_adjustment_and_call): Return the
2888         adjustment; don't do the stack adjust.
2889         (expand_call): Call compute_argument_block_size right before
2890         allocating the block; update comment; don't do alignment sanity
2891         checking for sibling call; use args_size instead of
2892         unadjusted_args_size before args_size is adjusted.  Use
2893         combine_pending_stack_adjustment_and_call to compute stack adjust
2894         for must_preallocate case.
2895
2896         * expr.c (push_block): Remove shadow `temp' in inner scope.
2897
2898 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
2899
2900         * toplev.c (rest_of_compilation): Call
2901         note_deferral_of_defined_inline_function even if the function
2902         can't be inlined.
2903
2904 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
2905
2906         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
2907
2908 2000-04-28  Richard Henderson  <rth@cygnus.com>
2909
2910         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
2911
2912 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2913
2914         * timevar.c (init_timevar): DeANSIfy function definition.
2915
2916 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
2917
2918         * Makefile.in (timevar.o): Depend on flags.h.
2919         * timevar.c (unused_stack_instances): New variable.
2920         (timevar_push): Take a timevar_stack_def from
2921         unused_stack_instances if available.
2922         (timevar_pop): Push the popped timevar_stack_def onto
2923         unused_stack_instances.
2924         (TIMEVAR_ENABLE): New macro.
2925         (timevar_def): Make standalone a 1-bit field.  Add field used.
2926         (get_time): Rename parameter to now.  Return after clearing it if
2927         not TIMEVAR_ENABLE.
2928         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
2929         (timevar_pop): Likewise.
2930         (timevar_stop): Likewise.
2931         (timevar_push): Likewise.  Mark the timing variable as used.
2932         (timevar_start): Likewise.
2933         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
2934         timevars that were never used.
2935
2936 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
2937
2938         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
2939         always TREE_READONLY.
2940
2941 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
2942
2943         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
2944         for call instruction with mode QImode.
2945
2946 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
2947
2948         * Makefile.in (OBJS): Add timevar.o.
2949         (toplev.o): Depend on timevar.h.
2950         (ggc-simple.o): Likewise.
2951         (ggc-page.o): Likewise.
2952         (timevar.o): New rule.
2953         (timevar.h): New rule.
2954
2955         * timevar.h: New file.
2956         * timevar.c: Likewise.
2957         * timevar.def: Likewise.
2958
2959         * toplev.h (gc_time, parse_time, varconst_time): Remove.
2960         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
2961         throughout.
2962         (TIMEVAR): Remove macro.
2963         (gc_time, parse_time, varconst_time, integration_time, jump_time,
2964         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
2965         flow_time, combine_time, regmove_time, sched_time,
2966         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
2967         sched2_time, dbr_sched_time, reorder_blocks_time,
2968         rename_registers_time, shorten_branch_time, stack_reg_time,
2969         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
2970         all_time): Remove.
2971         (compile_file): Don't initialize time variables.  Call
2972         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
2973         of many calls to print_time.
2974         (rest_of_compilation): Add timing for reload_cse_regs.
2975         (get_run_time): Removed to timevar.c.
2976         (print_time): Likewise.
2977         (get_run_time): Implement using TV_TOTAL time variable.
2978         (print_time): Get total run time from get_run_time.
2979         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
2980         computing elapsed time explicitly.
2981         * ggc-simple.c (ggc_collect): Likewise.
2982         (gc_time): Remove declaration.
2983
2984 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
2985
2986         * calls.c (combine_pending_stack_adjustment_and_call): New function.
2987         (expand_call): Use it.
2988
2989 2000-04-27  Jan Hubicka  <jh@suse.cz>
2990
2991         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
2992         fields.
2993
2994 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
2995
2996         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
2997         registers.
2998
2999 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3000
3001         * function.c (epilogue_done): Pass whole insn to record_insns.
3002
3003 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3004
3005         * cse.c (CSE_ADDRESS_COST): Remove.
3006         (find_best_addr): Add new parameter "MODE", use address_cost instead
3007         of CSE_ADDRESS_COST
3008         (address_cost): New.
3009         (fold_rtx): Update call of find_best_addr.
3010         * rtl.h (address_cost): Declare.
3011         * loop.c (general_induction_var): Add new parameter "MODE", use
3012         address_cost instead of ADDRESS_COST
3013         (init_loop): Use address_cost instead of ADDRESS_COST.
3014         (check_insn_for_givs): Update call of general_induction_var.
3015         (find_mem_givs): Likewise.
3016         (consec_sets_giv): Likewise.
3017         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
3018         * i386.c (ix86_address_cost): New.
3019         * i386-protos.h (ix86_address_cost): Declare.
3020
3021 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
3022
3023         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
3024         registers.
3025
3026 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3027
3028         * expr.c (store_expr): Use clear_storage instead of direct memset
3029         libcall.
3030
3031 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
3032
3033         * config/mn10300/mn10300.c (mn10300_address_cost): Test
3034         ASHIFT, AND and LABEL_REF.
3035
3036 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3037
3038         * invoke.texi (-foptimize-sibling-calls): Fix.
3039
3040 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3041
3042         * loop.c (load_mems)  Don't use hard registers for the hoisting.
3043
3044         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
3045         calculation; rename const_equiv array in the preconditioning code
3046         from loop_unroll to loop_unroll_precondition
3047
3048 2000-04-27  Richard Henderson  <rth@cygnus.com>
3049
3050         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
3051         add new_set.
3052         (propagate_one_insn): Clear it.  Don't update reg_live here.
3053         (init_propagate_block_info): Update for pbi member changes.
3054         (free_propagate_block_info): Likewise.
3055         (mark_set_1): Know that zero_extract, sign_extract, and
3056         strict_low_part don't kill their argument.  Alter hard subregs.
3057         Update new_set for non-CLOBBER sets.  Update reg_live.
3058         (find_auto_inc): Update reg_live, not new_dead.
3059         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
3060         to determine if the reg in question was set this insn.  Only update
3061         reg info with PROP_REG_INFO.
3062
3063 2000-04-26  Richard Henderson  <rth@cygnus.com>
3064
3065         * flow.c (allocate_reg_life_data): Set max_regno here ...
3066         (life_analysis): ... not here.
3067
3068         * flow.c (calculate_global_regs_live): Force stack pointer
3069         live at end.
3070
3071 2000-04-26  Richard Henderson  <rth@cygnus.com>
3072
3073         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
3074         commit change group changes.
3075         (invert_exp_1): Similarly.
3076         (redirect_exp, invert_exp): Use them.
3077         (redirect_jump_1): New.
3078         (invert_jump_1): New.
3079         (jump_optimize_1): Remove code subsumed by condexec.c.
3080         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
3081
3082 2000-04-26  Richard Henderson  <rth@cygnus.com>
3083
3084         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
3085
3086         * genconfig.c (main): Set all HAVE_foo to 1.
3087
3088         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
3089
3090 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
3091
3092         * invoke.texi: Document -fssa flag.
3093
3094 2000-04-26  Richard Henderson  <rth@cygnus.com>
3095
3096         * flow.c (count_reg_sets_1): Remove.
3097         (count_reg_sets, count_reg_references): Remove.
3098         (recompute_reg_usage): Implement with update_life_info.
3099         Reallocate life data.
3100
3101 2000-04-26  Richard Henderson  <rth@cygnus.com>
3102
3103         * flow.c (update_life_info): Consider blocks null to mean the
3104         universal set.
3105         (calculate_global_regs_live): Likewise.
3106         (life_analysis): Do that instead of collecting all_blocks.
3107
3108 2000-04-26  Richard Henderson  <rth@cygnus.com>
3109
3110         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
3111         a still-valid conditional jump.
3112
3113 2000-04-26  Richard Henderson  <rth@cygnus.com>
3114
3115         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
3116
3117         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
3118         * flow.c (calculate_loop_depth): Remove.
3119         * output.h (calculate_loop_depth): Don't declare.
3120         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
3121         inline; run estimate_probability at the same time.
3122
3123 2000-04-26  Neil Booth  <NeilB@earthling.net>
3124
3125         * cpplib.h: "~=" is not a single pp-token.
3126         * cpplex.c: Correct commentary.
3127
3128 2000-04-26  Richard Henderson  <rth@cygnus.com>
3129
3130         * flow.c (mark_set_1): New arguments code and flags; update all
3131         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
3132         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
3133         loop_depth when optimizing for size.  Do new_dead update after
3134         emitting REG_UNUSED notes.  Merge mark_set_reg code.
3135         (mark_set_reg): Remove.
3136         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
3137         arrange to not emit REG_UNUSED notes.
3138
3139 2000-04-26  Richard Henderson  <rth@cygnus.com>
3140
3141         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
3142         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
3143
3144 2000-04-26  Richard Henderson  <rth@cygnus.com>
3145
3146         * flow.c (propagate_one_insn): Break out from propagate_block.
3147         (init_propagate_block_info): Likewise.
3148         (free_propagate_block_info): Likewise.
3149         (propagate_block): Use them.  Export.
3150         * basic-block.h: Declare them all.
3151
3152 2000-04-26  Richard Henderson  <rth@cygnus.com>
3153
3154         * basic-block.h (life_analysis): Declare here ...
3155         * output.h: ... not here.
3156         * flow.c (life_analysis): Remove nregs parameter; replace
3157         remove_dead_code with flags.  Remove ssa dead code check.
3158         Only init alias analysis if we'll use it.
3159         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
3160         * ssa.c (convert_to_ssa): Likewise.
3161         (convert_from_ssa): Likewise.
3162         * toplev.c (rest_of_compilation): Likewise.
3163
3164 2000-04-26  Richard Henderson  <rth@cygnus.com>
3165
3166         * flow.c (flow_delete_block): Rename from delete_block.  Export.
3167         * basic-block.h (flow_delete_block): Declare.
3168
3169 2000-04-26  David S. Miller  <davem@redhat.com>
3170
3171         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
3172         taking a PATTERN of it.
3173
3174 2000-04-26  <NeilB@earthling.net>
3175
3176         * cpplex.c (spell_other, spell_char): Remove.
3177         (SPELL_CHAR): New.
3178         (token_spelling, trigraph_map): Use unsigned chars.
3179         (_cpp_lex_line): Tidy up the switch statement.
3180         * cpplib.h: Implement spell_char with spell_string.
3181         (C): New.
3182
3183 2000-04-26  <RodneyBrown@pmsc.com>
3184
3185         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
3186         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
3187
3188 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3189
3190         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
3191         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
3192         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
3193         dwarf2out_return_save, dwarf2out_return_reg,
3194         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
3195         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
3196         gen_compile_unit_die, dwarf2out_init): Constify a char*.
3197
3198         * dwarf2out.h (dwarf2out_init): Likewise.
3199
3200         * dwarfout.c (filename_entry, primary_filename, last_filename,
3201         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
3202
3203         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
3204         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
3205         dwarf2out_return_reg): Likewise.
3206
3207 2000-04-26  Andreas Jaeger  <aj@suse.de>
3208
3209         * extend.texi (Function Attributes): Fix description of pure
3210         attribute.
3211
3212 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
3213
3214         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
3215         before calling rest_of_compilation.
3216
3217 2000-04-26  Andreas Jaeger  <aj@suse.de>
3218
3219         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
3220         last patch.
3221
3222 2000-04-25  Richard Henderson  <rth@cygnus.com>
3223
3224         * cse.c (cse_insn): Emit barrier after unconditional jump.
3225
3226         * calls.c (expand_call): Disable tail call generation once
3227         rtx_equal_function_value_matters is false.
3228
3229         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
3230         like EDGE_EH edges.
3231
3232 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
3233
3234         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
3235
3236         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
3237
3238         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
3239         is the primary DIE for a member function.
3240         (gen_decl_die): Call set_decl_origin_self here.
3241         * dwarfout.c (output_decl): And here.
3242         * integrate.c (output_inline_function): Not here.
3243         Don't clear DECL_INLINE until after calling rest_of_compilation.
3244         (set_decl_origin_self): No longer static.
3245         * tree.h: Add prototype.
3246         * toplev.c (note_deferral_of_defined_inline_function): Only write
3247         out abstract instance for actual inlines.
3248
3249 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
3250
3251         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
3252         EXTENDED_REGS only if TARGET_AM33.
3253         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
3254         SP_REGS to register allocation and reloading unless absolutely
3255         necessary.
3256         (movsi3): Remove special-case of adding non-constants to SP.
3257
3258 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3259
3260         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
3261         INCLUDES to search and does not provide any of its own.  Also it
3262         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
3263         parameters.  Also it does not call AC_DEFINE.
3264         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
3265         AC_DEFINE and provides for automatic entries for autoheader.
3266         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
3267
3268         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
3269         so we can pass -I flags and include gansidecl.h/system.h in this
3270         test.
3271
3272         * acconfig.h: Delete all NEED_DECLARATION_* entries.
3273
3274 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3275
3276         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
3277         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
3278         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
3279
3280         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
3281         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
3282         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
3283         for these macros.  Clean up spacing and linewraps.
3284
3285 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
3286
3287         * calls.c (expand_call): Use get_callee_fndecl.
3288
3289         * print-tree.c (print_node): Print the chain of an _EXPR.
3290
3291 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
3292                           Jim Wilson  <wilson@cygnus.com>
3293                           Andrew Haley  <aph@cygnus.com>
3294
3295         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
3296         and gp save/restore problems.
3297         * config/ia64/crtend.asm: Add IA-64 unwind support.
3298         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
3299         in fr_pad_size calculation.
3300         (save_restore_insns): Move PR save area.  Correct uses of
3301         RTX_FRAME_RELATED_P.
3302         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
3303         (ia64_expand_epilogue): Add eh_epilogue support.
3304         (ia64_function_prologue): Emit .prologue directive.
3305         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
3306         (ia64_override_options): Set init_machine_status and
3307         mark_machine_status.
3308         (rtx_needs_barrier): Handle bsp reads and writes.
3309         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
3310         New static variables.
3311         (process_set, process_for_unwind_directive): New functions.
3312         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
3313         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
3314         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
3315         macros.
3316         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
3317         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
3318         (struct machine_function): Define.
3319         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
3320
3321 2000-04-25  Bruce Korb  <bkorb@gnu.org>
3322
3323         * fixinc/Makefile.in: make the removal of old programs more
3324         robust
3325         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
3326         install-bin and install-sh
3327
3328 2000-04-25  Nick Clifton  <nickc@cygnus.com>
3329
3330         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
3331         defined, define to return zero.
3332         (function_cannot_inline_p): If a function has any target
3333         specific attributes, then use the macro
3334         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
3335         whether it can be inlined.  If it cannot, issue a suitable
3336         explanation.
3337
3338         * tm.texi: Add a new node 'Inlining' to document the new macro
3339         FUNCTION_ATTRIBUTE_INLINABLE_P.
3340
3341 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
3342
3343         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
3344         commentary.
3345
3346 2000-04-25  Neil Booth  <NeilB@earthling.net>
3347
3348         Restore previous patch, plus the following fixes:
3349
3350         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
3351         flags, not CPP_OPEN_PAREN.
3352         * cpplex.c (expand_token_space, init_token_list,
3353         cpp_free_token_list): Put the dummy token at list->tokens[-1].
3354         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
3355
3356 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3357
3358         * config/i386/freebsd.h (INT_ASM_OP): Define.
3359
3360 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3361
3362         * loop.c (strength_reduce): Fix typo in the last checkin.
3363
3364 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3365
3366         * stor-layout.c (finalize_record_size): Simplify to use existing
3367         functions.
3368         (compute_record_mode): No longer static.
3369         * tree.h (compute_record_mode): New declaration.
3370
3371 2000-04-25  Neil Booth  <NeilB@earthling.net>
3372
3373         * Revert my patch below until cause of build failures
3374         determined.
3375
3376 2000-04-25  Richard Henderson  <rth@cygnus.com>
3377
3378         * combine.c (combine_instructions): Add missing argument
3379         to try_combine.
3380
3381         * toplev.c (rest_of_compilation): Delay sibcall optimization
3382         until after emit_eh_context.
3383
3384 2000-04-24  Nick Clifton  <nickc@redhat.com>
3385
3386         * combine.c (combine_instructions): Do not try to combine a
3387         sequence of insns when the second insn has been replaced by a
3388         note.
3389
3390 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
3391
3392         * gcc.c (load_specs): New static function.
3393         (read_specs): Use it.
3394
3395         * gcc.c (lookup_compiler): Make multiple passes for case
3396         insensitive filesystems.
3397
3398 2000-04-24  Neil Booth  <NeilB@earthling.net>
3399
3400         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
3401         * cpphash.h (_cpp_check_directive): new.
3402         * cpplex.c (handle_newline, cpp_free_token_list,
3403         init_trigraph_map, trigraph_ok, trigraph_replace,
3404         backslash_start, skip_block_comment, skip_line_comment,
3405         skip_whitespace, parse_name, parse_number, parse_string,
3406         copy_comment, _cpp_lex_line, spell_char, spell_string,
3407         spell_comment, spell_name, spell_other, _cpp_lex_file,
3408         _cpp_output_list): new.
3409         (expand_name_space): take length argument.
3410         (init_token_list): add comment list initialisation.
3411         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
3412         instead of HSPACE_BEFORE.
3413
3414         * cpplib.c (_cpp_check_directive): new
3415         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
3416         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
3417         (HSPACE_BEFORE): delete.
3418         (TTYPE_TABLE): rearrange.
3419         (struct cpp_toklist): update.
3420
3421 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3422
3423         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
3424         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
3425         argument form of AC_DEFINE.
3426
3427         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
3428         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
3429         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
3430         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
3431         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
3432
3433         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
3434
3435 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3436
3437         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
3438         deduced.h): Use -isystem, not -I, for including system headers.
3439
3440 2000-04-24  Nick Clifton  <nickc@cygnus.com>
3441
3442         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
3443         the source register is the frame pointer or arg pointer.
3444         (addsi3_small_int): Disallow if source register is the frame
3445         pointer or arg pointer.
3446
3447 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3448
3449         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
3450         call to AC_MSG_RESULT.
3451
3452 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3453
3454         * invoke.texi: Correct grammatical errors, document
3455         -fno-gnu-keywords as identical to -fno-asm for C++.
3456
3457 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3458
3459         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
3460         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
3461         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
3462         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
3463         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
3464
3465         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
3466         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
3467         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
3468         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
3469         new macros names.
3470
3471 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
3472
3473         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
3474         (pop_alignment): Likewise.
3475         (handle_pragma_token): Likewise.
3476
3477 2000-04-24  Robert Lipe <robertlipe@usa.net>
3478
3479         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
3480
3481 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
3482
3483         * combine.c (try_combine): Update reg_nonzero_bits of
3484         newi2pat before newpat.
3485
3486 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3487
3488         * loop.c (strength_reduce): Simplify test to INSN_P.
3489         (record_giv): Attempt to simplify the add value, use CONSTANT_P
3490         expressions instead of CONST_INT.
3491         (express_from_1): Likewise.
3492
3493 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
3494
3495         * regs.h (reg_n_max): Don't declare.
3496         * flow.c (reg_n_max): Don't define.
3497         * regclass.c (renumber): Don't initialize to zero.
3498         (regno_allocated): Likewise.
3499         (reg_n_max): Define.
3500         (allocate_reg_info): Don't initialize unnecessarily.
3501
3502 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
3503
3504         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
3505         and blockage_p in the newly allocated attribute.
3506
3507 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
3508
3509         * config/mn10300/mn10300.md (addsi): `inc4' on address
3510         registers does not modify cc, but `inc' on an extended
3511         register does.
3512
3513 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
3514
3515         * reload.c (find_equiv_reg): Checks all valueno regs
3516         as a reload_reg_p regs.
3517
3518 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
3519
3520         * cpphash.c (collect_objlike_expansion): Add sanity check.
3521         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
3522         the buffer is the empty string, return.  Mark __DATE__ and
3523         __TIME__ as XCONST nodes, not MCONST.
3524         (_cpp_macroexpand): Avoid pushing an empty buffer.
3525         (funlike_macroexpand): Don't pop token_buffer here.
3526
3527 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
3528
3529         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
3530         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
3531         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
3532         (REGNO_OK_FOR_BASE_P): Define in terms of them.
3533         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
3534         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
3535         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
3536
3537 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3538
3539         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
3540         constant MULT givs.
3541
3542 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
3543
3544         * cpphash.h (struct definition): Move file, line, col members...
3545         (struct hashnode): ... here.  Also add 'disabled' flag.
3546         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
3547         T_IDENTITY.  Remove T_DISABLED.
3548         Update prototypes.
3549
3550         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
3551         (collect_expansion): Split into collect_objlike_expansion and
3552         collect_funlike_expansion.
3553         (_cpp_macroexpand): Split out scan_arguments, stringify, and
3554         funlike_macroexpand.
3555         (_cpp_compare_defs): Rename compare_defs, make static.
3556         (_cpp_make_hashnode): Initialize hp->disabled.
3557         (macro_cleanup): Adjust for new token types.  Clear
3558         m->disabled.
3559         (_cpp_create_definition): Move code here to determine what
3560         sort of macro it is, and code to check for redefinitions, from
3561         do_define.  Implement a few simple cases without creating a
3562         full DEFINITION.
3563         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
3564         Handle the simple cases.
3565         (push_macro_expansion): Set buf->has_escapes and hp->disabled
3566         here.
3567
3568         * cppinit.c (builtin_array): Change MCONST to XCONST
3569         everywhere.
3570         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
3571         fix check for disabled and function-like macros.
3572         * cpplib.c (do_define): Move most logic to
3573         _cpp_create_definition.
3574         (do_undef): Handle new special token types.
3575
3576 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3577
3578         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
3579         of CONSTANT_P for mult_val; always use validate_change to update insn.
3580
3581 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
3582
3583         * cpphash.c (trad_stringify, add_pat): New functions.
3584         (collect_expansion): Restore support for -traditional syntax.
3585         Use trad_stringify and add_pat.
3586         (_cpp_macroexpand): Restore support for -traditional semantics.
3587         * cpplex.c (_cpp_scan_line): Don't change space_before if we
3588         get a COMMENT token.
3589         (_cpp_lex_token): Provide COMMENT tokens to caller if
3590         traditional and parsing_define_directive.
3591         (skip_comment): Warn about // comments if -Wtraditional.
3592         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
3593         proper node type.
3594         (do_undef): Don't warn about undefining EMPTY nodes.
3595
3596 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3597
3598         * loop.c (strength_reduce): Fix biv removal code.
3599
3600 2000-04-22  Richard Henderson  <rth@cygnus.com>
3601
3602         * predict.c (estimate_probability): Examine both sides of
3603         a branch for no exits.  Use 90% not 50% for predict taken.
3604         Reorg for one copy of note generation code.
3605
3606 2000-04-22  Richard Henderson  <rth@cygnus.com>
3607
3608         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
3609
3610 2000-04-22  Richard Henderson  <rth@cygnus.com>
3611
3612         * diagnostic.c (init_output_buffer): Don't initialize format_args.
3613         (output_clear): Likewise.
3614         (output_printf): Use va_copy.
3615         (vline_wrapper_message_with_location): Likewise.
3616         (v_message_with_decl): Likewise.
3617         (line_wrapper_printf): VA_START infor buffer.format_args directly.
3618         * system.h (va_copy): Provide default implementation.
3619
3620 2000-04-22  Richard Henderson  <rth@cygnus.com>
3621
3622         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
3623         the collected condition is not a constant.
3624
3625 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
3626
3627         * diagnostic.h: New file.
3628
3629         * Makefile.in (diagnostic.o): Depends on diagnostic.h
3630
3631         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
3632         various function prototypes.
3633         (diagnostic.h): #include.
3634         (struct output_buffer): Move into diagnostic.h.
3635         (get_output_prefix): Rename to output_get_prefix.  Export.
3636         (init_output_buffer): Export. Break out.  Ajust intialization.
3637         (output_space_left, output_append): Export.
3638         (output_newline): Rename to output_add_newline.  Export.
3639         (output_clear): Nullify additional output_buffer fields.
3640         (output_puts): Rename to output_add_string.  Export.
3641         (dump_output): Rename to output_flush_on.  Export.
3642         (build_location_prefix): Constify return-type.
3643         (emit_output_prefix): Rename to output_emit_prefix. Export.
3644         (set_real_maximum_length): New function.
3645         (output_set_maximum_length): Ditto
3646         (output_clear): Ditto.
3647         (output_add_character): Ditto.
3648         (output_add_integer): Ditto.
3649         (output_add_space): Ditto.
3650         (output_format): Ditto.
3651         (output_printf): Adjust buffer initialization.
3652         (vline_wrapper_message_with_location): Ditto.
3653         (v_message_with_decl): Ditto.  Adjust call to output_puts
3654         and get_output_prefix.
3655         (default_print_error_function): Adjust buffer intialization.
3656
3657 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3658
3659         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
3660         of VOID_TYPE.
3661
3662 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
3663
3664         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
3665         of explicit 0.
3666
3667 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
3668
3669         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
3670         accurate data about SP moves.
3671
3672 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
3673
3674         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
3675         aliases to AM33 registers.
3676
3677 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
3678
3679         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
3680         to all EXTENDED bitmaps.
3681
3682 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
3683
3684         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
3685         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
3686         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
3687
3688 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
3689
3690         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
3691         the operand is not constant.
3692
3693 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
3694
3695         * reload.c (find_equiv_reg): Checks all valueno and regno regs
3696         as a call-clobbered regs.
3697
3698 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3699
3700         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
3701         * rtl.h: Likewise.
3702         * rtl.def: Update comment.
3703         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
3704         * integrate.c (expand_inline_function): Likewise.
3705         * profile.c (branch_prob): Likewise.
3706         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
3707         * print-rtl.c (print_rtx): Likewise.
3708         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
3709         (reemit_notes): Likewise; also use enum insn_note.
3710
3711         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
3712         (place_field): Properly compute know and actual alignment.
3713
3714         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
3715         in proper format.
3716
3717         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
3718         note for REG1.
3719
3720 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
3721
3722         * cpphash.c (struct arg, struct arglist): Const-ify strings.
3723         (warn_trad_stringify, duplicate_arg_p): New helper functions.
3724         (collect_expansion): Rewrite to scan over a token list.
3725         Remove -traditional support.
3726         (collect_formal_parameters): Rename to collect_params; rewrite
3727         to scan over a token list.
3728         (_cpp_create_definition): Adjust to scan a token list.
3729         (_cpp_macroexpand): Remove -traditional support.
3730         (_cpp_compare_defs): Whitespace is now canonicalized.
3731         (comp_def_part): Delete function.
3732
3733         * cpphash.h: Update prototypes.
3734         * cpplex.c (init_token_list): Don't set lineno if there is no
3735         buffer.
3736         (pedantic_whitespace): New function.
3737         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
3738         consume a newline.  Use pedantic_whitespace.
3739         (_cpp_lex_token): Remove support for -traditional macros.
3740         (_cpp_get_define_token): Delete.
3741         (_cpp_get_directive_token): Do the real work here.  Use
3742         pedantic_whitespace.
3743         (_cpp_init_input_buffer): Initialize pfile->directbuf.
3744
3745         * cpplib.c (get_macro_name): Delete.
3746         (do_define): Read the entire line into pfile->directbuf, then
3747         feed the token list to _cpp_create_definition.
3748         * cpplib.h (HSPACE_BEFORE): new define.
3749         (struct cpp_reader): Add a toklist member, "directbuf".
3750
3751         * predict.c (estimate_probability): New heuristic: if a jump
3752         branches around a block with no successors, predict it taken.
3753         Disentangle control flow.
3754
3755 2000-04-20  Richard Henderson  <rth@cygnus.com>
3756
3757         * loop.c (emit_iv_add_mult): Revert last change.
3758
3759 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
3760
3761         * cpplib.h (enum cpp_ttype): Add token types for all
3762         punctuators.  Distinguish pp-numbers from valid C numbers.
3763         Give some tokens better names.  Initialize from macro.
3764         (struct cpp_name, cpp_token, cpp_toklist): New data
3765         structures.
3766         Update prototypes.
3767         * cpplex.c (bump_column, expand_name_space,
3768         expand_token_space, init_token_list, cpp_output_list,
3769         _cpp_scan_line):  New functions.
3770         (output_line_command): Add third argument, new line number.
3771         * cpphash.h: Update prototypes.
3772         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
3773         token names.
3774
3775 2000-04-20  Richard Henderson  <rth@cygnus.com>
3776
3777         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
3778
3779 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
3780
3781         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
3782         object pointed to.
3783
3784 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3785
3786         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
3787         REG_EQUAL note explaining the calculated value.
3788
3789         * calls.c (expand_call): Avoid unnecesary precalculation
3790         and outgoing parameters space guarding for sibling calls.
3791         (store_one_arg): Likewise.
3792
3793 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3794
3795         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
3796         (rest_of_compilation): Write sibling dump file and account
3797         for time as jump time.
3798         * invoke.texi: Update documentation on dump flags.
3799
3800 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
3801
3802         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
3803
3804 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
3805
3806         * cpphash.c (special_symbol): Represent an empty macro with
3807         "\r \r " not just "\r ".
3808         (_cpp_macroexpand): Correct condition for the foo ( ) special
3809         case.
3810         (unsafe_chars): Handle EOF as second argument.
3811         (push_macro_expansion): Simplify test for removing escape at
3812         end.  Do not trim both escapes if there is no text in between.
3813
3814 2000-04-19  Jim Blandy  <jimb@redhat.com>
3815
3816         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
3817         of PTR_SIZE, when appropriate.
3818
3819 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
3820
3821         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
3822         (USE_ENUM_BITFIELDS): Fix typo.
3823
3824 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3825
3826         * stor-layout.c (place_field): Set rli->offset_align properly.
3827
3828 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3829
3830         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
3831         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
3832         PARM_BOUNDARY): Remove unnecessary casts.
3833
3834 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3835
3836         * calls.c (precompute_arguments): Remove must_preallocate and
3837         args_size calls.
3838         (expand_call): Update call of precompute_arguments.
3839
3840         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
3841         check_insn_for_givs): Break out from ...
3842         (strength_reduce) ... here; use for_every_insn_in_loop to call
3843         check_insn_for_givs.
3844         * loop.h (for_every_insn_in_loop): Declare.
3845         (loop_insn_callback): New type.
3846
3847 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
3848
3849         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
3850         not nul-terminated.
3851
3852 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
3853
3854         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
3855         flag_pic and RELOC.
3856
3857 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
3858
3859         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
3860
3861         * configure.in: Delete --disable-cpplib option and all
3862         references to cpp_main.
3863         * configure: Regenerate.
3864         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
3865         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
3866         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
3867         cpp$(exeext).  Add --no-headers to makeinfo command line when
3868         generating INSTALL.  Install and uninstall cpp.1 manpage, not
3869         cccp.1.
3870         * install.texi: Delete all references to cexp.y/cexp.c.
3871         Delete ancient instructions for compiling GCC on 3b1.
3872         * INSTALL: Regenerate.
3873
3874         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
3875         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
3876         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
3877         cexp.c/cexp.y.
3878         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
3879         which is no longer tested anywhere.
3880
3881         * cppinit.c (handle_option): Don't run error message through
3882         gettext twice.
3883
3884 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3885
3886         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
3887         * cpperror.c (hashtab.h): Now include.
3888         * cppexp.c (hashtab.h): Likewise.
3889         * cpplex.c (hashtab.h): Likewise.
3890         * cppfiles.c (hashtab.h): Likewise.
3891         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
3892         to htab_find_slot_with_hash.
3893         * cpphash.c (hashtab.h): Now include.
3894         (_cpp_lookup_slot): INSERT is now enum insert_option.
3895         * cpphash.h (_cpp_lookup_slot): Likewise.
3896         * cppinit.c (hashtab.h): Include earlier.
3897         (initialize_builtins): Pass enum to htab_find_slot.
3898         * cpplib.c (hashtab.h): Now include.
3899         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
3900         (do_pragma_poison, do_assert): Likewise.
3901         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
3902         htab_find_slot_with_hash.
3903         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
3904         * tree.c (type_hash_add): Likewise.
3905         (build1): Minor cleanup.
3906
3907         * ggc-common.c: Add missing blanks.
3908         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
3909         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
3910
3911         * stmt.c (mark_case_node): New function.
3912         (mark_case_nesting): Call it.
3913
3914         * expmed.c (emit_store_flag): If comparing two-word integer
3915         with zero, can optimize NE, EQ, GE, and LT.
3916
3917         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
3918         * conflict.c: Minor cleanups.
3919         * optabs.c: Add blank line
3920         * simplify-rtx.c: Minor cleanups.
3921
3922 2000-04-18  Stan Cox  <scox@cygnus.com>
3923
3924         * gengenrtl.c (genlegend): Fix misspelling.
3925
3926 2000-04-18  Robert Lipe  <robertlipe@usa.net>
3927
3928         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
3929         bitfields of the host compiler are not signed quantities.
3930         * config.in: Regenerate.
3931         * configure: Regenerate.
3932         * system.h (USE_ENUM_BITFIELDS): Added.
3933         (ENUM_BITFIELDS): Added.
3934         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
3935         (SHORT_ENUM_BUG): Deleted.
3936         * tree.h (tree_common): Members `code', `mode', `built_in_class',
3937         now ENUM_BITFIELD.
3938         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
3939         (CODE_FIELD_BUG): Likewise.
3940         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
3941         (OLD_CC): Likewise.
3942         * config/m68k/x-ccur (X_CFLAGS): Likewise.
3943
3944 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
3945
3946         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
3947         mark is active.
3948
3949 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
3950
3951         * cppexp.c (lex): Don't assume tokens are NUL terminated.
3952         * cpplib.c (do_include, do_import, do_include_next,
3953         read_line_number, detect_if_not_defined): Likewise.
3954         * cpphash.c (collect_expansion): Likewise.
3955         (special_symbol, _cpp_macroexpand): Check return from
3956         cpp_file_buffer.
3957         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
3958         macros.  Delete all uses.
3959
3960         * gcc.dg/cpp-mi.c: Add two more test cases.
3961         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
3962
3963 2000-04-17  Richard Henderson  <rth@cygnus.com>
3964
3965         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
3966         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
3967
3968 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
3969
3970         * function.c (expand_function_start): Use hard_function_value to
3971         compute the RTL to use for DECL_RESULT.
3972
3973 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3974
3975         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
3976         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
3977          x86_memory_mismatch_stall): New global variables.
3978         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
3979         alloved; fix load penalties for Athlon.
3980         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
3981         x86_memory_mismatch_stall): Declare.
3982         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
3983          TARGET_MEMORY_MISMATCH_STALL): New.
3984         * i386.md (athlon scheduling parameters): Fix latencies according to
3985         Athlon Optimization Manual.
3986         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
3987         vector.
3988         (fsqrt instruction patterns): Set athlon_decode to direct.
3989         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
3990         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
3991         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
3992         and TARGET_PARTIAL_REGISTER_STALL machines.
3993         (pushdf_nointeger): New pattern.
3994         (pushdf_integer): Rename from pushdf.
3995         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
3996         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
3997
3998 2000-04-17  Richard Henderson  <rth@cygnus.com>
3999
4000         * loop.c (canonicalize_condition): Add WANT_REG argument.
4001         Stop the search if we match it.
4002         * expr.h (canonicalize_condition): Update decl.
4003         * predict.c (expected_value_to_br_prob): Use it.  Track last
4004         expected value note.
4005         (find_expected_value): Remove.
4006
4007         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
4008
4009 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
4010
4011         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
4012         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
4013         a plain file.
4014         * configure.in: Call AC_FUNC_MMAP_FILE.
4015         * configure: Regenerate.
4016         * config.in: Regenerate.
4017
4018         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
4019         * fixinc/fixincl.c: Likewise.
4020
4021 2000-04-17  Richard Henderson  <rth@cygnus.com>
4022
4023         * builtins.c (expand_builtin_expect): New.
4024         (expand_builtin): Call it.
4025         * builtins.def (BUILT_IN_EXPECT): New.
4026         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
4027         * extend.texi: Document it.
4028
4029         * predict.c (expected_value_to_br_prob): New.
4030         (find_expected_value): New.
4031         * basic-block.h (expected_value_to_br_prob): Declare.
4032         * toplev.c (rest_of_compilation): Invoke it.
4033
4034         * rtl.h (NOTE_EXPECTED_VALUE): New.
4035         (NOTE_INSN_EXPECTED_VALUE): New.
4036         * rtl.c (note_insn_name): Update.
4037         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
4038         cases; handle NOTE_INSN_EXPECTED_VALUE.
4039
4040 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
4041
4042         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
4043         leaf sibcall delay slot if flag_pic.
4044         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
4045
4046 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4047
4048         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
4049
4050         * fixproto: If fix-header fails, exit with an error.
4051
4052 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4053
4054         * cse.c (struct check_depdendence_data): New.
4055         (check_dependence): New function.
4056         (invalidate): Use check_depdenence.
4057
4058 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
4059
4060         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
4061         UNITS_PER_WORD is unsigned.
4062
4063         * tree.h (struct tree_common): Remove misleading comment.
4064
4065 2000-04-16  Dave Pitts  <dpitts@cozx.com>
4066
4067         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
4068         message in quotes. Otherwise, IBM's make program treats the '#' as the
4069         start of a comment and ignores the remainder of the line.
4070
4071         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
4072         upper case.
4073         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
4074         * cexp.y (initialize_random_junk): Likewise.
4075         * cppfiles.c (find_include_file): Cast alloca return value.
4076         * cppinit.c (initialize_standard_includes): Likewise.
4077         * cpplib.c (cpp_define, cpp_undef): Likewise.
4078         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
4079         * final.c (output_asm_insn): Allow for holes in EBCDIC.
4080         * fold-const.c (CHARMASK): New.
4081         (real_hex_to_f): Use it.
4082         * real.c (CHARMASK): New.
4083         (etoasc, asctoeg): Use it.
4084         (asctoeg): EBCDIC lower case characters preceed upper case.
4085
4086         * i370.c (mvs_add_label): Change spacing for coding conventions.
4087         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
4088         outputing case vectors.
4089         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
4090         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
4091         since vector in in the data CSECT.
4092         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
4093         * i370.md (Many patterns): Put the length in the XL directives.
4094         (movdi): Put back STM and MVC in definition.
4095         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
4096         pattern using the TCA.
4097         * oe.h (CPP_SPEC): Added to allow trigraphs.
4098         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
4099         not support the "long long" type.
4100
4101 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
4102
4103         * config/mips/mips-protos.h (mips_legitimate_address_p): New
4104         function.
4105         (mips_reg_mode_ok_for_base_p): Likewise.
4106         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
4107         (REG_OK_FOR_INDEX_P): Define unconditionally.
4108         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
4109         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
4110         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
4111         that GET_MODE_SIZE is unsigned.
4112         (mips_reg_mode_ok_for_base_p): Define.
4113         (mips_legitimate_address_p): Likewise.  Adjust now
4114         that GET_MODE_SIZE is unsigned.
4115         (block_move_loop): Make the number of bytes unsigned.
4116         (expand_block_move): Likewise.
4117         (function_arg): Make the loop counter unsigned to match the
4118         boundary condition.
4119
4120 2000-04-16  Richard Henderson  <rth@cygnus.com>
4121
4122         * rtl.h (enum insn_note): New enumeration.  Subsume
4123         NOTE_INSN_DELETED and friends.
4124         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
4125         * rtl.c (note_insn_name): Tweak string order.
4126
4127 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
4128
4129         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
4130         to offset * 2.
4131
4132         * cpplex.c (output_line_command): Remove debugging prints.
4133         (cpp_output_tokens): Don't write out a zero-length buffer or
4134         try to see if it has a newline in it.
4135         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
4136         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
4137         the end of the loop.  Use memmove.  Don't read past the end of
4138         the buffer.  Remove trailing newlines from error messages.
4139
4140 2004-04-16  Neil Booth  <NeilB@earthling.net>
4141
4142         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
4143         * cpplib.c: Add new syntax flags to directive table, and
4144         supporting macros.
4145
4146 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
4147
4148         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
4149         using ret $N.
4150
4151 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
4152
4153         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
4154         * haifa-sched.c: Update -fsched-verbose comments to use "=".
4155
4156 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4157
4158         * Makefile.in (ggc-page.o): Now includes toplev.h.
4159         * ggc-page.c (toplev.h): Now included.
4160         (gc_time): Remove declaration.
4161         (ggc_collect): TIME now long.
4162         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
4163         others static.
4164         * toplev.h (gc_time, parse_time, gc_time): New declarations.
4165
4166         * toplev.c: Make *_time variable long to reduce chance of overflow.
4167         (TIMEVAR): Likewise for `otime'.
4168         (print_time): Arg is now long; compute percentage in FP and round.
4169         * toplev.h (print_time): Arg is long.
4170
4171         * tree.c: Minor whitespace changes.
4172
4173         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
4174         * configure: Rebuilt.
4175         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
4176         (__fixunsxfDI): Renamed from __fixunsxfdi.
4177         (__fixunsdfDI): Renamed from __fixunsdfdi.
4178         (__fixunssfDI): Renamed from __fixunssfdi.
4179         (__floatdisf): Use proper type in REP_BIT macro.
4180         (__fixunsxfSI): Renamed from __fixunsxfsi.
4181         (__fixunsdfSI): Renamed from __fixunsdfsi.
4182         (__fixunssfSI): Renamed from __fixunssfsi.
4183         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
4184         Change location of macros and upper-case some names as above.
4185         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
4186         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
4187
4188         * varasm.c (assemble_variable): Add cast to remove warning.
4189         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
4190
4191         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
4192         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
4193         region number to -1.
4194
4195 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
4196
4197         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
4198         call unshare_all_rtl.
4199
4200         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
4201
4202 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
4203
4204         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
4205         Use .s1 not .s0 for all FP instructions.
4206
4207 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
4208
4209         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
4210         interfaces.
4211         (safe_fwrite, output_line_command): New static functions.
4212         (cpp_expand_to_buffer): Now private to cpplib.
4213         (cpp_scan_buffer): Take a printer.
4214
4215         * cpphash.h: Update prototypes.
4216         * cpplib.h: Update prototypes.
4217         (cpp_printer): New.
4218         (cpp_buffer): Remove last_nominal_fname.
4219         (cpp_reader): Remove lineno.
4220
4221         * cppmain.c: Use a cpp_printer.
4222         * fix-header.c: No need to inhibit line commands.  Call
4223         cpp_start_read with no printer.
4224
4225         * cpperror.c (cpp_notice_from_errno): Provide default name.
4226         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
4227         (find_include_file, cpp_read_file): Use make_IHASH.
4228         (file_cleanup): Set control_macro and clear
4229         input_stack_listing_current here.
4230         (_cpp_execute_include): Don't output entering-file marker.
4231         * cpphash.c (special_symbol): Look for the line number in the
4232         buffer, not the reader.
4233         (_cpp_macroexpand): No need to disable line commands.
4234         (_cpp_dump_definition): No need to generate line commands.
4235         (dump_hash_helper): Remove excess newline from output.
4236         * cppinit.c (dump_special_to_buffer): No need to generate line
4237         commands.
4238         (cpp_printer_init): New.
4239         (cpp_start_read): Take a printer, and start it up if it's not
4240         NULL.  No need to generate line commands.
4241         (cpp_finish): Expect no buffers stacked at all.  Take a
4242         printer argument, and flush the output buffer if it's not
4243         NULL.
4244         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
4245         Don't put two hashes at the beginning of an assertion.
4246         (cpp_get_token): Don't increment pfile->lineno or emit line
4247         commands here.  Return EOF if there's no buffer when we get
4248         EOF.
4249         * cpplib.c (do_define, skip_if_group):
4250         No need to disable line commands.
4251         (_cpp_output_line_command): Delete function.
4252         (do_line): Don't emit line commands here, but set things up so
4253         they will be emitted if necessary.  Use _cpp_fake_ihash to
4254         make unique nominal_fnames if necessary.
4255         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
4256         with 0 for column, not -1.
4257         (_cpp_handle_eof): Don't set the control macro here.  Don't
4258         clear input_stack_listing_current here.  Don't emit line
4259         commands.
4260
4261 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
4262
4263         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
4264         always, use the default SVR4 start address.
4265
4266         * config/rs6000/linux.h (LINK_SPEC): Don't define.
4267         (LINK_SHLIB_SPEC): Define.
4268         (LINK_START_DEFAULT_SPEC): Define.
4269         (LINK_OS_DEFAULT_SPEC): Define.
4270
4271         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
4272
4273         * config/rs6000/eabi.asm (__eabi): Call __init rather than
4274         __do_global_ctors to handle constructors.
4275         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
4276         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
4277         (STARTFILE_MVME_SPEC): Likewise.
4278         (STARTFILE_SIM_SPEC): Likewise.
4279         (ENDFILE_ADS_SPEC): Use crtend.
4280         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
4281         (ENDFILE_MVME_SPEC): Likewise.
4282         (ENDFILE_SIM_SPEC): Likewise.
4283         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
4284         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
4285         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
4286         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
4287         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
4288         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
4289         (CRTSTUFF_T_CFLAGS_S): Define.
4290         * config/rs6000/eabi-ctors.c: Delete.
4291
4292         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
4293         boundary.
4294         (__fini): Likewise.
4295         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
4296         boundary.
4297         (__fini): Likewise.
4298
4299 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
4300
4301         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
4302         plus mask size is smaller or equal to the mode size.
4303
4304 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4305
4306         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
4307         not yet set.
4308
4309         * expr.c (reload.h): Now included.
4310         (emit_block_move): Set volatile_ok when checking for movstr.
4311         (emit_move_1): Check for replacements in addresses in multi-word case.
4312         * Makefile.in (expr.o): Now includes reload.h.
4313
4314         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
4315         Never have a LIBCALL end a basic block.
4316         (find_basic_blocks_1): Likewise.
4317         Reorganize CALL_INSN cases.
4318
4319         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
4320
4321 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
4322
4323         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
4324         completers from mov.ret instruction.
4325
4326 2000-04-14  Richard Henderson  <rth@cygnus.com>
4327
4328         * fold-const.c (extract_muldiv): Don't distribute and widen
4329         multiply across plus for non-sizetype unsigned types.
4330
4331 2000-04-14  Richard Henderson  <rth@cygnus.com>
4332
4333         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
4334         If the original source is dead in the incr insn, it's dead now.
4335
4336 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4337
4338         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
4339         see if DECL_BIT_FIELD needs to still be set.
4340
4341         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
4342
4343         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
4344         print_int_cst_octal with something that's not an INTEGER_CST.
4345
4346         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
4347         and not a SUBREG to a FLOAT rtl.
4348
4349 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
4350
4351         * emit-rtl.c (try_split): Avoid infinite loop if the split
4352         results in a sequence that contains the original insn.
4353
4354 2000-04-13  Andreas Jaeger  <aj@suse.de>
4355
4356         * config/mips/mips.c (expand_block_move): Pass alignment
4357         argument to move_by_pieces in bits, not bytes.
4358
4359         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
4360         __pic__ for little endian.
4361
4362 2000-04-13  Andreas Jaeger  <aj@suse.de>
4363
4364         * config/i386/i386-protos.h: Add prototype for
4365         uno_comparison_operator.
4366
4367 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4368
4369         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
4370         * calls.c (ECF_PURE): New flag.
4371         (emit_call_1): Handle ECF_PURE calls.
4372         (initialize_argument_information): Unset ECF_PURE flag too.
4373         (precompute_arguments): Precompute for ECF_PURE too.
4374         (expand_call): Handle ECF_PURE calls too.
4375         (emit_library_call_value_1): Rename no_queue argument to fn_type,
4376         accept value of 2 as pure function.
4377         (emit_library_call_value, emit_library_call): Rename no_queue argument
4378         to fn_type.
4379         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
4380
4381         * tree.h (DECL_IS_PURE): New macro.
4382         (struct tree_decl): Add pure_flag.
4383         * c-common.c (enum attrs): Add attribute "pure".
4384         (init_attributes): Initialize attribute "pure"
4385         (decl_attributes): Handle attribute "pure".
4386         * extend.texi (Attribute "pure"): Document.
4387         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
4388         in pure function.
4389         (flags_from_decl_or_type): Support attribute "pure".
4390
4391 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
4392
4393         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
4394         the token except for numbers and identifiers.
4395
4396 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
4397
4398         * i386.c (ix86_expand_binary_operator,
4399         ix86_expand_unary_operator): Check no_new_pseudos
4400         instead of reload_in_progress and reload_completed.
4401         (ix86_split_ashldi, ix86_split_ashrdi,
4402         ix86_split_lshrdi): Check no_new_pseudos instead
4403         of reload_completed.
4404
4405 2000-04-12  Jeffrey A Law  (law@cygnus.com)
4406
4407         * function.c (purge_addressof): Unshare any shared rtl created by
4408         purge_addressof and its children.
4409
4410 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
4411
4412         * function.c (aggregate_value_p): VOID_TYPE nodes are never
4413         aggregates.
4414
4415 2000-04-05  Andreas Jaeger  <aj@suse.de>
4416
4417         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
4418         not compiling PIC code, add flags for mabi=64.
4419         (SUBTARGET_CPP_SIZE_SPEC): New.
4420         (SUBTARGET_CPP_SPEC): New.
4421         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
4422         for MIPS/Linux and lots of code needs these defines.
4423
4424 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
4425
4426         * reorg.c (fill_slots_from_thread): Check side_effects_p when
4427         trying the "opposite arithmetic" approach.
4428
4429 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4430
4431         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
4432         (struct sh_args): Add new field force_mem.
4433         (INIT_CUMULATIVE_ARGS): Initialize it.
4434         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
4435
4436 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4437
4438         * calls.c (expand_call): Do not reverse args in "equal from" field.
4439         (emit_library_call_value_1): Emit_libcall_block for const and pure
4440         function.
4441
4442 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4443
4444         * reload1.c (reload_combine): Don't enable optimization for fixed
4445         registers when encountering a BARRIER.
4446
4447 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4448
4449         * builtins.c (expand_builtin_memcmp): Do expansion even with
4450         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
4451
4452         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
4453         stack is propertly aligned; add sanity checking for aligned
4454         stack pointer.
4455         (expand_library_call_value_1): Add sanity checking for aligned
4456         stack pointer.
4457
4458 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
4459
4460         * calls.c (emit_library_call_value_1): Change 3rd arg to
4461         locate_and_pad_parm to disregard the setting of partial.
4462
4463 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4464
4465         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
4466
4467         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
4468         CALL_INSN from the normal case.
4469
4470 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4471
4472         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
4473         New global variables.
4474         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
4475         adjustment.
4476         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
4477         Declare,
4478         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
4479          TARGET_ADD_ESP_8): New macros.
4480         * i386.md: Add peep2s to convert esp adjustments to push and pop
4481         instructions.
4482         (pushsi_prologue, popsi_epilogue): New patterns.
4483
4484 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
4485
4486         * real.c (toe64): Remove stale #endif from the last change.
4487
4488 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
4489
4490         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
4491         * real.c (toe64): Revert previous change.
4492
4493 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
4494
4495         * objc/objc-act.c: Include ggc.h.
4496         (objc_tree_index, objc_global_trees): Convert most of the
4497         static tree variables into a static array with previous names
4498         as defines.
4499         (objc_ellipsis_node): New variable.
4500         (lang_init): Call objc_act_parse_init and c_parse_init.
4501         Create objc_ellipsis_node.
4502         (build_selector_translation_table): Use objc_ellipsis_node instead
4503         of (tree)1.
4504         (hack_method_prototype): Likewise.
4505         (get_arg_type_list): Likewise.
4506         (start_method_def): Likewise.
4507         (continue_method_def): Likewise.
4508         (gen_method_decl): Likewise.
4509         (ggc_mark_imp_list): New function.
4510         (ggc_mark_hash_table): New function.
4511         (objc_act_parse_init): New function.
4512         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
4513         * c-parse.in (c_parse_init): For objc add roots of objc specific
4514         local tree variables.
4515         * objc/objc-parse.y: Rebuilt.
4516         * objc/objc-parse.c: Rebuilt.
4517         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
4518
4519 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
4520
4521         * cse.c (delete_trivially_dead_insns): Also delete insns
4522         that copy a register to itself where the destination is
4523         a strict_low_part.
4524
4525 2000-04-11  Richard Henderson  <rth@cygnus.com>
4526
4527         * flow.c (struct propagate_block_info): Add new_dead, new_live.
4528         (propagate_block): Initialize them.  Use them in parallel instead
4529         of one tmp variable, ie revert much of the 0408 and 0407 functional
4530         changes, but keep the structural changes.
4531         (mark_set_regs): Take new_dead from propagate_block_info instead.
4532         (mark_set_1, mark_set_reg): Likewise.
4533         (mark_used_regs): Likewise with new_live.
4534         (mark_used_reg): Likewise.  Revert 0408 change.
4535
4536 2000-04-11  Nick Clifton  <nickc@cygnus.com>
4537
4538         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
4539         restriction.
4540         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
4541
4542 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4543
4544         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
4545         const section to output a CONSTRUCTOR based on the same conditions
4546         used for VAR_DECLs.
4547
4548 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
4549
4550         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
4551         * pa/pa-protos.h (output_call): Add additional argument indicating
4552         if the call is a sibling/tail call.
4553         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
4554         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
4555         (function_arg, function_arg_partial_nregs): Likewise
4556         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
4557         (emit_move_sequence): Zero extend certain constants as needed
4558         for TARGET_64BIT.
4559         (compute_zdepdi_operands, output_64bit_and): New functions.
4560         (output_64bit_ior, function_arg): Likewise.
4561         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
4562         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
4563         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
4564         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
4565         (output_bvb): Likewise.
4566         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
4567         (output_call): New argument 'sibcall'.  Generate sibcall sequences
4568         as needed.
4569         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
4570         (ouput_arg_descriptor): Do not emit argument descriptors for
4571         TARGET_64BIT.
4572         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
4573         defined.
4574         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
4575         (FUNCTION_OK_FOR_SIBALL): Define.
4576         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
4577         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
4578         (CPP_SPEC): Use new spec infrastructure.
4579         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
4580         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
4581         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
4582         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
4583         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
4584         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
4585         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
4586         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
4587         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
4588         (FUNCTION_ARG); Call out to C code.
4589         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
4590         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
4591         (MIN_UNITS_PER_WORD): Likewise.
4592         * pa/pa.md (cmpdi): New expander.
4593         (scc patterns, movstrsi): Not available for TARGET_64BIT.
4594         (64bit conditional arithmetic): New patterns.
4595         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
4596         (movsicc): Not available if modes on all the operands to not match.
4597         (movdicc): New expander and associated patterns.
4598         (64bit branches): New patterns.
4599         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
4600         (pre_ldd, post_std): New patterns.
4601         (64bit addil, load low part): New patterns.
4602         (special movsf constant): Not available for TARGET_64BIT.
4603         (movsf, movdf expanders): Force constants into memory.
4604         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
4605         (64bit movdf/movdi patterns): New patterns.
4606         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
4607         for TARGET_64BIT.
4608         (extendqidi2, extendhidi2, extendsidi2): Similarly.
4609         (adddi3 expander): Allow "arith_operand" for second input.
4610         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
4611         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
4612         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
4613         (muldi3): New expander for TARGET_64BIT.
4614         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
4615         for TARGET_64BIT.
4616         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
4617         patterns for TARGET_64BIT.
4618         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
4619         patterns for TARGET_64BIT.
4620         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
4621         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
4622         (sibcall_epilogue): New expander.
4623         (casesi): Tweak for TARGET_64BIT.
4624         (call expanders): Set & use the outgoing argument pointer.  Use the
4625         64bit call patterns as needed. Add additional arg to output_call.
4626         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
4627         (sibcall, sibcall_internal_symref): New expanders.
4628         (sibcall_value, sibcall_value_internal_symref
4629         (interspace_jump): Turn into an expander + matching patterns.
4630         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
4631         * pa/pa64-regs.h: Eliminate trigraph sequences.
4632         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
4633
4634 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
4635
4636         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
4637         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
4638         cpp_token with cpp_ttype everywhere.
4639         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
4640         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
4641         CPP_BUF_COL.  Line and column numbers are unsigned int, not
4642         long.
4643         * cpplex.c (cpp_buf_line_and_col): Delete.
4644         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
4645         'long lineno' to 'unsigned int lineno'.
4646         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
4647
4648 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4649
4650         * extend.texi: ISO C99 is not a draft anymore.
4651         * invoke.texi: ISO C++ is not a draft anymore.
4652         * cpp.texi: __cplusplus is required by the ISO standard.
4653
4654         * extend.texi (-fthis-is-variable): Undocument.
4655         * flags.h (warn_template_debugging): Remove declaration.
4656         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
4657         -Wenum-clash, -Wtemplate-debugging): Undocument.
4658
4659 2000-04-10  Nick Clifton  <nickc@cygnus.com>
4660
4661         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
4662         integer.
4663         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
4664         integer.
4665         (ARM_SIGN_EXTEND): Use HOST_UINT.
4666         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
4667         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
4668         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
4669         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
4670
4671         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
4672         (arm_gen_constant): Use HOST_UINT.
4673         (arm_canonicalize_constant): Use HOST_UINT.
4674         (arm_reload_in_hi): Use HOST_UINT.
4675         (arm_reload_out_hi): Use HOST_UINT.
4676         (output_multi_immediate): Use HOST_UINT.
4677         (int_log2): Use HOST_UINT.
4678         (arm_poke_function_name): Use HOST_UINT.
4679         (arm_output_epilogue): Use arm_volatile_func().
4680         (output_thumb_prologue): Use arm_strip_name_encoding().
4681
4682 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4683
4684         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
4685         of sequence point problems.
4686
4687 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
4688
4689         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
4690         Recomment.
4691         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
4692
4693 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4694
4695         * sbitmap.h: Whitespace changes and use upper-case macro args.
4696         (struct simple_bitmap_def): All sizes now unsigned.
4697         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
4698         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
4699         (sbitmap_vector_alloc): Parms and local vars now unsigned.
4700         (sbitmap_zero): Cast bzero arg to PTR.
4701         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
4702         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
4703         loop to make structure clearer.
4704         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
4705         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
4706         (sbitmap_a_and_b_or_c): Likewise.
4707         (sbitmap_intersection_of_succs): Minor cleanups.
4708         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
4709         (sbitmap_union_of_preds): Likewise.
4710         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
4711         (debug_sbitmap): New function.
4712
4713         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
4714         * c-typeck.c (convert_for_assignment): Likewise.
4715
4716         * expmed.c (init_expmed): Don't free objects we make.
4717         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
4718
4719         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
4720         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
4721
4722         * gcse.c (expr_hash_table_size): Now unsigned.
4723         (compute_ae_gen): Local variable `i' now unsigned.
4724         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
4725         (compute_transout, hoist_code): Likewise.
4726         (compute_local_properties): Likewise, also hash_table_size.
4727         (alloc_expr_hash_table): N_INSNS now unsigned.
4728         (delete_null_pointer_checks): Mark arg F as unused.
4729
4730         * regrename.c: Minor cleanups, including chang some variables
4731         to unsigned int.
4732
4733 2000-04-10  Neil Booth  <NeilB@earthling.net>
4734
4735         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
4736         than GETC ().
4737         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
4738
4739 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4740
4741         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
4742         __classof__, and __headof__ from the list of gnu keywords.
4743         (-ansi): Remove -foperator-names from list of implied options.
4744         Do not call it ANSI C++.
4745         (-foperator-names): Document as -fno-operator-names.
4746
4747 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
4748
4749         * cpphash.c (timestamp): Delete.
4750         (del_HASHNODE): If type is T_MCONST, free value.cpval.
4751         (special_symbol): Remove unnecessary braces.  Remove
4752         T_VERSION.  Treat T_STDC like T_CONST unless
4753         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
4754         when one is encountered, then convert them into T_MCONST
4755         nodes.
4756         * cppinit.c (builtin_array): version_string is T_MCONST.
4757         __STDC__ has a "1" in its cpval.  Don't have a terminator
4758         entry.  Clean up which entries are dumped.
4759         (initialize_builtins): Only __STDC__ gets the special
4760         -traditional treatment.  Count the length of builtin_array.
4761         Render version_string here.
4762         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
4763         * cpplib.h (struct cpp_reader): Remove timebuf.
4764
4765 2000-04-09  Richard Henderson  <rth@cygnus.com>
4766
4767         * genrecog.c (pred): Update comparison_operator for the unordered
4768         operators.
4769
4770         * config/i386/i386.c (no_comparison_operator): Disallow unordered
4771         operators.
4772         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
4773         (uno_comparison_operator): New.
4774         (put_condition_code): Handle UNORDERED/ORDERED.
4775         (unsigned_comparison): Likewise.
4776         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
4777         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
4778         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
4779         update all callers.  Handle all 8 unordered operators.
4780         (ix86_expand_setcc): Lose the unordered argument, update all callers.
4781         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
4782         * config/i386/i386.h (PREDICATE_CODES): Update.
4783         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
4784         (ix86_expand_branch, ix86_expand_setcc): Update.
4785         * config/i386/i386.md (sunordered, sordered): New.
4786         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
4787         (bunordered, bordered): New.
4788         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
4789         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
4790         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
4791
4792 2000-04-09  Philip Blundell  <philb@gnu.org>
4793
4794         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
4795
4796 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
4797
4798         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
4799         fix_truncxfhi2): New patterns.
4800         * i386.c (output_fix_trunc): Handle converting to HImode.
4801
4802 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
4803
4804         * ssa.c (convert_to_ssa): Eliminate dead code when calling
4805         life_analysis.
4806         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
4807         (for_each_successor_phi): Change parameter to basic_block.
4808         (coalesce_regs_in_successor_phi_nodes): Likewise.
4809         (coalesce_regs_in_copies): Likewise.
4810         (compute_coalesced_reg_partition): Use basic_block instead of index.
4811         * rtl.h (convert_to_ssa): Delete.
4812         (convert_from_ssa): Likewise.
4813         (successor_phi_fn): Likewise.
4814         (for_each_successor_phi): Likewise.
4815         (in_ssa_form): Likewise.
4816         * basic-block.h (convert_to_ssa): Moved from rtl.h.
4817         (convert_from_ssa): Likewise.
4818         (successor_phi_fn): Likewise.
4819         (in_ssa_form): Likewise.
4820         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
4821         * flow.c (calculate_global_regs_live): Pass a basic_block to
4822         for_each_successor_phi.
4823
4824 2000-04-08  Richard Henderson  <rth@cygnus.com>
4825
4826         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
4827         was modified in the current insn.
4828
4829 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
4830
4831         * arm/thumb.md: Delete.
4832         * arm/thumb-protos.h: Delete.
4833
4834 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
4835
4836         Merge changes from merged-arm-thumb-backend-branch onto trunk.
4837
4838         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
4839
4840         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
4841         into branch.
4842
4843         * arm.md (nop): Use the standard RTL expression.  Don't code as a
4844         define_expand.
4845         (*arm_nop, *thumb_nop): Delete.
4846
4847         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
4848         constants.  Use casts instead.
4849         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
4850         output_multi_immediate, arm_poke_function_name): Likewise.
4851         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
4852         MASK_RETURN_ADDDR): Likewise.
4853
4854         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
4855
4856         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
4857         into branch.
4858
4859         * arm.md (eh_epilogue): New function.
4860         * arm.h (struct machine_function): Move to here ...
4861         * arm.c: ... from here.
4862         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
4863         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
4864         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
4865
4866         2000-03-30  Nick Clifton  <nickc@cygnus.com>
4867
4868         * config/arm/semi.h (ASM_SPEC): Restore definition.
4869         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
4870
4871         * config/arm/elf.h (ASM_SPEC): Restore definition.
4872         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
4873
4874         * config/arm/arm.h (ASM_SPEC): Remove definition.
4875         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
4876
4877         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
4878
4879         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
4880
4881         2000-03-24  Nick Clifton  <nickc@cygnus.com>
4882
4883         Various formating tidyups, elimination of compile time
4884         warnings and synchronisation with internal sources:
4885
4886         * config/arm/arm-protos.h (assemble_align): Add prototype.
4887         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
4888         (gen_comapre_reg): Rename to arm_gen_compare_reg.
4889         (arm_return_addr_rtx): Rename to arm_return_addr.
4890
4891         * config/arm/arm.c: Include except.h.
4892         Define shorter typenames for strict minipool_node and struct
4893         minipool_fix.
4894         (arm_return_in_memory): For WinCE return all structures <= 32 bits
4895         in memory.
4896         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
4897         (gen_comapre_reg): Rename to arm_gen_compare_reg.
4898
4899         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
4900         already defined.
4901         (ASM_SPEC): Define if not already defined.
4902         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
4903
4904         * config/arm/arm.md: Rename references to gen_rotated_half_load to
4905         arm_gen_rotated_half_load, and references to gen_comapre_reg to
4906         arm_gen_compare_reg.
4907         (indirect_jump):  Only accept register operands.
4908         (load_indirect_jump): Keep this pattern since combine can generate
4909         it.
4910
4911         * config/arm/coff.h: Include aout.h.
4912         (MULTILIB_DEFAULTS): Only define if not already defined.
4913
4914         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
4915         into arm.h (so that COFF ports can support thumb based aliases).
4916         (ASM_SPEC): Move definition into arm.h
4917
4918         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
4919         redundant apcs spec.
4920         (ASM_SPEC): Move definition to arm.h
4921
4922         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
4923
4924         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
4925         for entries in the .bss section
4926
4927         2000-03-23  Nick Clifton  <nickc@cygnus.com>
4928
4929         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
4930         to thumb_far_jump_used_p.
4931
4932         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
4933         single integer parameter.
4934
4935         * config/arm/arm.c (struct machine_function): Add two new
4936         fields, 'far_jump_used' and 'arg_pointer_live'.
4937         (thumb_far_jump_used_p): Once the decision has been made that
4938         far jumps might be used, always return true.
4939         If being called from the initial elimination offset macro then
4940         do not bother to perform the test if the arg pointer is not
4941         being used.
4942         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
4943         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
4944
4945         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
4946
4947         * arm.c (output_return_instruction): Handle more cases where we can
4948         return from a function with an ldr instruction.
4949         (arm_output_epilogue): Likewise.
4950
4951         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
4952         if we need to push a large stack frame and there are no callee-saved
4953         registers.
4954
4955         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
4956         in ARM code if the frame pointer has been eliminated.
4957
4958         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
4959         unspec_volatile arguments to avoid duplicates.
4960         (consttable_1, consttable_2): Fixes for big-endian mode.
4961
4962         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
4963         as appropriate.
4964
4965         Re-write constant pool code.
4966         * arm.c (minipool_node, minipool_fix): New types.
4967         (minifix): Delete type.
4968         (arm_add_minipool_constant): Delete.
4969         (arm_compute_minipool_offsets, arm_find_barrier,
4970         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
4971         (get_jump_table_size): Now returns HOST_WIDE_INT.
4972         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
4973         functions.
4974         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
4975         (assign_minipool_offsets, arm_print_value): Likewise.
4976         (dump_minipool): Rewrite.
4977         (arm_barrier_cost): New function.
4978         (create_fix_barrier): New function.
4979         (push_minipool_barrier): New function.
4980         (push_minipool_fix): Record additional information about the fixup
4981         required.
4982         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
4983         check the mode of what needs fixing.
4984         (arm_reorg): Rewrite.
4985
4986         2000-03-08  Nick Clifton  <nickc@cygnus.com>
4987
4988         * config/arm/arm.md (indirect_jump): Force constant addresses into
4989         a register.
4990
4991         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
4992
4993         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
4994
4995         2000-02-24  Nick Clifton  <nickc@cygnus.com>
4996
4997         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
4998         adjust is word aligned.
4999         (thumb_expand_epilogue): Make sure that stack adjust is word
5000         aligned.
5001
5002         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
5003
5004         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
5005
5006         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
5007         pointer relative addresses.
5008
5009         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
5010
5011         * arm.c (find_barrier): Find the last barrier within the allowed
5012         range.
5013
5014         2000-02-09  Nick Clifton  <nickc@cygnus.com>
5015
5016         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
5017
5018         2000-02-09  Nick Clifton  <nickc@cygnus.com>
5019
5020         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
5021         ARM_FUNCTION_PROFILER.
5022
5023         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
5024         ARM_FUNCTION_PROFILER.
5025
5026         * config/arm/linux-oldld.h: Imported from mainline sources.
5027
5028         2000-02-07  Nick Clifton  <nickc@cygnus.com>
5029
5030         * config/arm/lib1funcs.asm: Merge in thumb functions from
5031         lib1thumb.asm.
5032
5033         * config/arm/lib1thumb.asm: Delete.
5034
5035         2000-02-04  Nick Clifton  <nickc@cygnus.com>
5036
5037         * config/arm/arm.c: Sychronised with current Red hat local
5038         sources.
5039         * config/arm/arm.h: Ditto.
5040         * config/arm/arm-protos.h: Ditto.
5041
5042         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
5043
5044         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
5045
5046         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
5047         byte stores.
5048
5049         2000-02-02  Nick Clifton  <nickc@cygnus.com>
5050
5051         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
5052
5053         * config/arm/arm.md (epilogue): Fix rtl checking abort because
5054         (return) was emited using an emit_insn() call.
5055
5056         2000-01-31  Nick Clifton  <nickc@cygnus.com>
5057
5058         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
5059         thumb stack frame.
5060         (thumb_exit): Move frame pointer back into hard frame pointer
5061         register if backtracing is being used.
5062
5063         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
5064
5065         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
5066         into branch.
5067
5068         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
5069
5070         * config/arm/arm.md (neg_pool_offset): Provide default for new
5071         attribute.
5072         (arm_movsi_insn): Add neg_pool_offset attribute.
5073         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
5074         rtx for the insn that starts the scan and an unsigned long for its
5075         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
5076         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
5077         instructions in *PINSERTED.
5078         (struct minipool_fixup): Add MIN_ADDRESS elt.
5079         (sort_fixups): Compute it.
5080         (arm_reorg): Changes to support inserting pools before the insn to be
5081         fixed up.
5082
5083         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
5084
5085         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
5086         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
5087         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
5088
5089         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
5090
5091         * config/arm/semi.h (TARGET_VERSION): Do not define if already
5092         defined.
5093         (TARGET_DEFAULT): Do not define if already defined.
5094
5095         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
5096
5097         * config/arm/arm.md (anddi3): Allow disjoint source operands.
5098         (iordi3): Allow disjoint source operands.
5099         (xordi3): Allow disjoint source operands.
5100         (negdi2): Permit construction for ARM and Thumb.
5101         (arm_negdi2): Renamed version of old negdi2 pattern.
5102         (thumb_negdi2): New pattern: Only permit non-overlapping
5103         source and destination.
5104
5105         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
5106
5107         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
5108         scratch low register so that it will not be deleted.
5109
5110         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
5111
5112         * config/arm/pe.h (ARM_PE): Define.
5113
5114         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
5115         interfacearm attribute if this is a PE toolchain.
5116         (output_return_instruction): Do not emit anything if the function
5117         has the naked attribute set.
5118         (is_called_in_ARM_mode): If the function has the interfacearm
5119         attribute then return true.
5120         (thumb_expand_prologue): Do not generate a prologue for naked
5121         functions.
5122         (thumb_expand_epilogue): Do not generate an epilogie for a naked
5123         function.
5124         (output_thumb_prologue): Do not bother if the function is naked.
5125         Strip PE encoding from function name before emitting.
5126
5127         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
5128
5129         * arm.md (pic_load_addr): Fix constraints.
5130
5131         * arm.md (casesi_insn): Fix mis-applied patch.
5132
5133         * arm.md ("core" function unit): Add rules for single- and
5134         multi-cycle insns.
5135         (All TARGET_THUMB patterns): Add "type" attribute information
5136         where needed.
5137         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
5138         the following insn is a CALL.
5139
5140         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
5141         pointer.
5142         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
5143         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
5144         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
5145
5146         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
5147
5148         * config/arm/linux-gas.h: oops - this file was missed out when the
5149         branch was created...
5150
5151         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
5152
5153         * thumb.c: Deleted.  Move contents to ...
5154         * arm.c: ... here.
5155         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
5156         rule for thumb.o
5157         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
5158         * configure: Regen.
5159
5160         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
5161         declare a prototype for asm_output_align();
5162
5163         * arm.c (thumb_condition_code): Delete.
5164         (arm_print_operand): Always use arm_condition_code array.
5165
5166         * arm.c (thumb_return_addr_rtx): Delete.
5167         (arm_save_machine_status, arm_restore_machine_status): Delete.
5168         (arm_init_machine_status, arm_mark_machine_status): New functions.
5169         (arm_init_expanders): Update accordingly.
5170         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
5171         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
5172         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
5173
5174         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
5175
5176         * configure.in : Fix arm-*-aout target to use new t-arm-aout
5177         script.
5178         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
5179         targets.
5180
5181         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
5182
5183         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
5184         stack backtrace structure.
5185
5186         * config/arm/arm-protos.h: Add prototypes for functions defined in
5187         arm/pe.h.
5188
5189         * config/arm/arm.c (arm_override_options): Fix selection of
5190         attributes of default processor.
5191
5192         * config/arm/coff.h: Delete needless #include.
5193
5194         * config/arm/pe.c: Delete unused code.
5195
5196         * config/arm/pe.h (CPP_DEFINES): Delete
5197         (SUBTARGET_CPP_SPEC): Define.
5198         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
5199
5200         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
5201
5202         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
5203
5204         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
5205         updated.
5206         (CAN_DEBUG_WITHOUT_FP): Define.
5207         (FIXED_REGISTERS): Make r11 call-saved.
5208         (CALL_USED_REGISTERS): Likewise.
5209         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
5210         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
5211         frame-pointer is required.
5212         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
5213         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
5214         if the target normally needs a stack frame in non-leaf functions.
5215         (use_return_insn): Correct logic for determining when a return
5216         instruction can be used.
5217         (output_return_instruction): Handle the frame-pointer register as
5218         a normal register when not TARGET_APCS_FRAME.
5219         (arm_output_prologue): Likewise.
5220         (arm_output_epilogue): Likewise.
5221         (output_func_epilogue): Likewise.
5222         (arm_expand_prologue): Likewise.
5223         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
5224
5225         * arm.c (use_return_insn): No need to check floating point regs if
5226         TARGET_SOFT_FLOAT.
5227         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
5228         the code of value stored in the minipool array.
5229         (arm_add_minipool_constant): Likewise.
5230
5231 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5232
5233         * basic-block.h (conflict_graph_enum_fn): K&R fix.
5234
5235 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5236
5237         * tree.c (tree_expr_nonnegative_p): New function.
5238
5239         * tree.h (tree_expr_nonnegative_p): Declare.
5240
5241         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
5242         elide some sign_compare warnings.
5243         (build_conditional_expr): Likewise.
5244
5245 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
5246
5247         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
5248
5249         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
5250         * i386.c (print_operand): Use the proper suffix for a 387 HImode
5251         operand.  Abort if a 387 operand has an unsupported size.
5252
5253 2000-04-08  Neil Booth  <NeilB@earthling.net>
5254
5255         * cppexp.c (parse_charconst): Null does not end character
5256         constants.
5257         * cppinit.c (ISTABLE): Null character handled as whitespace.
5258         * cpplex.c (null_warning):  new function.
5259         (skip_string): Emit warning if nulls encountered.
5260         (_cpp_skip_hspace): Emit warning if nulls encountered.
5261         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
5262         them.
5263         * cpp.texi: Update.
5264
5265 2000-04-07  Richard Henderson  <rth@cygnus.com>
5266
5267         * flow.c (loop_depth): Remove.
5268         (reg_next_use, cc0_live, mem_set_list): Replace with ...
5269         (struct propagate_block_info): New.
5270         (life_analysis): Don't allocate reg_next_use.
5271         (propagate_block_delete_insn): Break out of propagate_block.
5272         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
5273         (propagate_block_delete_libcall): Likewise.
5274         (propagate_block): Create a propagate_block_info struct to pass
5275         to subroutines.  Allocate one not two temporary regsets.  Don't
5276         clobber memory for const calls.  Look for clobbers in
5277         CALL_INSN_FUNCTION_USAGE.
5278         (mark_set_regs): Recognize COND_EXEC.
5279         (mark_set_reg): Break out of mark_set_1.
5280         (mark_used_reg): Break out of mark_used_regs.
5281         (mark_used_regs): Recognize COND_EXEC.
5282         (insn_dead_p): Use propagate_block_info struct.
5283         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
5284         (find_auto_inc, try_pre_increment_1): Likewise.
5285         (print_rtl_with_bb): Dump regs live at end too.
5286         (count_reg_sets_1): Pass in loop_depth.
5287         (count_reg_sets, count_reg_references): Likewise.
5288         (recompute_reg_usage): Provide it.
5289
5290 2000-04-07  Richard Henderson  <rth@cygnus.com>
5291
5292         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
5293         not the raw files.
5294
5295 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
5296
5297         * cpplib.c (do_elif): Skip the rest of the line if we're
5298         not going to bother evaluating it.
5299         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
5300         to avoid pointless calls to the lexer.
5301
5302 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
5303
5304         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
5305
5306 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
5307
5308         * calls.c (expand_call): emit_queue if we're trying a sibcall.
5309
5310 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
5311
5312         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
5313
5314 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
5315
5316         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
5317         crtend so they can be multilibbed.
5318         (STAGESTUFF): Remove s-crt and s-crtS.
5319
5320 2000-04-07  Richard Henderson  <rth@cygnus.com>
5321
5322         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
5323         if we discover we need a pseudo and no_new_pseudos is true.
5324         * config/alpha/alpha.md (ne:DI insn): New.
5325         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
5326
5327 2000-04-07  Richard Henderson  <rth@cygnus.com>
5328
5329         * rtl.def (COND_EXEC): New.
5330         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
5331         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
5332
5333         * genconfig.c (have_cond_arith_flag): Remove.
5334         (have_cond_exec_flag): New.
5335         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
5336         (main): Print HAVE_conditional_execution.
5337
5338         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
5339         (sched_analyze_insn, print_pattern): Likewise.
5340         * reload.c (find_equiv_reg): Likewise.
5341         * rtlanal.c (reg_referenced_p): Likewise.
5342         (note_stores, dead_or_set_regno_p): Likewise.
5343         (reg_overlap_mentioned_p): Rewrite to use a switch.
5344
5345         * ggc.h (struct rtx_def): Forward declare.
5346
5347         * print-rtl.c (debug_rtx_range): New.
5348         * rtl.h (debug_rtx_range): Declare.
5349
5350         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
5351
5352         * gcse.c (gcse_main): Don't rebuild the CFG here.
5353         (delete_null_pointer_checks): Likewise.
5354         * ssa.c (convert_to_ssa): Likewise.
5355         * toplev.c (rest_of_compilation): Do it here instead.  Combine
5356         sequential calls to TIMEVAR.  Consistently use `insns' instead of
5357         `get_insns()'.  Always split insns after reload when optimizing.
5358
5359         * basic-block.h (merge_blocks_nomove): Declare.
5360         (tidy_fallthru_edge): Declare.
5361         * flow.c (merge_blocks_nomove): Document as merging into previous
5362         blocks.  Remove cruft from between blocks; remove all edges out of A.
5363         (tidy_fallthru_edge): Export.
5364
5365 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
5366
5367         * ssa.c (compute_conservative_reg_partition): Declare with
5368         void arguments.
5369         * toplev.c (clean_dump_file): Remove previously-deleted function
5370         inadvertantly merged back in.
5371         * conflict.c (conflict_graph_add): Use a single call to
5372         htab_find_slot to look up and insert.
5373
5374 2000-04-06  Richard Henderson  <rth@cygnus.com>
5375
5376         * genrecog.c (*): Rename _last_insn to last_insn.
5377         (make_insn_sequence): Set the position of the peephole2 C test
5378         to be at the last insn.
5379
5380 2000-04-06  Richard Henderson  <rth@cygnus.com>
5381
5382         * flow.c (compute_flow_dominators): Free worklist.
5383
5384 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
5385
5386         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
5387
5388 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
5389
5390         * rtl.h (INSN_P): New macro.
5391         (successor_phi_fn): New typedef.
5392         (for_each_successor_phi): New prototype.
5393         (in_ssa_form): New variable.
5394         (PHI_NODE_P): Likewise.
5395         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
5396         phi nodes in successors.
5397         (mark_used_regs): Add PHI case.
5398         (set_phi_alternative_reg): New function.
5399         (life_analysis): Assert that dead code elimination is not selected
5400         when in SSA form.
5401         * toplev.c (to_ssa_time): New variable.
5402         (from_ssa_time): Likewise.
5403         (compile_file): Zero to_ssa_time and from_ssa_time.
5404         Print time to convert to and from SSA.
5405         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
5406         (print_time): Compute percent fraction as integer.
5407         * ssa.c (PHI_NODE_P): Moved to rtl.h.
5408         (convert_to_ssa): Check if we're already in SSA.
5409         Don't eliminate dead code in life_analysis.
5410         Rerun flow and life analysis at bottom.
5411         (eliminate_phi): Use canonical regnos when adding nodes.
5412         (mark_reg_in_phi): New function.
5413         (mark_phi_and_copy_regs): Likewise.
5414         (convert_from_ssa): Rerun life analysis at top.
5415         Use coalesced partition.
5416         Check for removing a phi node at the end of the block.
5417         (compute_coalesced_reg_partition): New function.
5418         (coalesce_regs_in_copies): Likewise.
5419         (coalesce_reg_in_phi): Likewise.
5420         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
5421         (for_each_successor_phi): Likewise.
5422         (rename_context): New struct.
5423         (rename_block): Use a rename_context with rename_insn_1.  When
5424         renaming sets of a subreg, emit a copy of the entire reg first.
5425         (rename_insn_1): Treat data as a rename_context *.  Save current
5426         insn in set_data.
5427         (rename_set_data): Add field set_insn.
5428         * Makefile.in (HASHTAB_H): Move up in file.
5429         (OBSTACK_H): New macro.
5430         (collect2.o): Use OBSTACK_H in dependencies.
5431         (sdbout.o): Likewise.
5432         (emit-rtl.o): Likewise.
5433         (simplify-rtx.o): Likewise.
5434         (fix-header.o): Likewise.
5435         (OBJS): Add conflict.o.
5436         (conflict.o): New rule.
5437         * basic-block.h: Include partition.h.
5438         (conflict_graph): New typedef.
5439         (conflict_graph_enum_fn): Likewise.
5440         (conflict_graph_new): New prototype.
5441         (conflict_graph_delete): Likewise.
5442         (conflict_graph_add): Likewise.
5443         (conflict_graph_conflict_p): Likewise.
5444         (conflict_graph_enum): Likewise.
5445         (conflict_graph_merge_regs): Likewise.
5446         (conflict_graph_print): Likewise.
5447         (conflict_graph_compute): Likewise.
5448         * conflict.c: New file.
5449
5450 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
5451
5452         * tlink.c (read_repo_files): Don't look for .rpo info for
5453         linker flags.
5454
5455 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5456
5457         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
5458
5459 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5460
5461         * config/sh/lib1funcs.asm (___udivsi3_i4):
5462         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
5463         only depends on FMOVD_WORKS.
5464
5465 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5466
5467         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
5468         make double constant 8-byte aligned.
5469
5470 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
5471
5472         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
5473         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
5474         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
5475         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
5476         Accept storing GENERAL_REGS into offsetable memory.
5477         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
5478         building a TFmode constant other than 0.0L into GENERAL_REGS.
5479
5480 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
5481
5482         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
5483
5484 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
5485
5486         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
5487         (macro_cleanup): No need to cast pbuf->macro.
5488         (collect_expansion): Use _cpp_get_define_token.  Goto done if
5489         it returns VSPACE.  Remove check for trailing space after
5490         CPP_COMMENT.
5491         (_cpp_create_definition): Don't diddle flags here.  Return
5492         directly on error.
5493         (unsafe_chars): Handle c1 being EOF.
5494         (push_macro_expansion): Use unsafe_chars for both accidental-paste
5495         checks.  Don't push the buffer till after we're done with
5496         them.
5497         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
5498         (PEEKN, FORWARD, GETC, PEEKC): Use them.
5499         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
5500         appropriately.
5501         (_cpp_parse_assertion): Don't NUL terminate.
5502         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
5503         hspace before calling _cpp_parse_assertion.  Remove all sets
5504         of only_seen_white. Treat '\f' as hspace.  Don't do anything
5505         special with '\n' here.
5506         (maybe_macroexpand): Handle T_EMPTY hash entries without
5507         pushing a buffer at all.
5508         (cpp_get_token): Handle clearing only_seen_white here.  Handle
5509         incrementing the line number here.  Clear
5510         potential_control_macro as well as only_seen_white, if
5511         appropriate.
5512         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
5513         (_cpp_get_define_token): New function, basically like
5514         _cpp_get_directive_token was but doesn't eat horizontal space.
5515         Don't do anything with only_seen_white here.
5516         (_cpp_get_directive_token): Just call _cpp_get_define_token
5517         repeatedly till it returns non-hspace.
5518
5519         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
5520         (conditional_skip, skip_if_group): Return int.
5521         (DIRECTIVE_TABLE): Change origin of all conditional directives
5522         to "COND".
5523         (TRAD_DIRECT_P): New macro.
5524         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
5525         an error for a bogus directive, unless -lang-asm.  Use
5526         TRAD_DIRECT_P. Loop calling handler functions till one returns
5527         zero.
5528         (get_macro_name): Don't diddle flags here.
5529         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
5530         Create T_EMPTY nodes for #define macro /* nothing */.
5531         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
5532         Use hp->name when calling pass_thru_directive.
5533         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
5534         Return the result of conditional_skip and/or skip_if_group.
5535         Don't call _cpp_output_line_command.
5536         (consider_directive_while_skipping): Use _cpp_get_directive_token.
5537         Issue -Wtraditional warnings as appropriate.  Don't complain
5538         about unrecognized directives.  If we are to stop skipping,
5539         return the number of the directive that ended the skip.
5540         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
5541         expansion and line commands while skipping.  Return the result
5542         of consider_directive_while_skipping, if nonzero.
5543         (do_endif): Just set potential_control_macro here.
5544         (validate_else): Use _cpp_get_directive_token.
5545         (do_assert, do_unassert): Don't save pointers into the
5546         token_buffer across calls to the lexer.  Use
5547         _cpp_get_directive_token.
5548
5549         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
5550         pointer, not an offset.  Replace 'data', which was a generic
5551         pointer, with 'macro', which points to a struct hashnode.
5552         (cpp_reader): Add 'potential_control_macro' pointer.
5553         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
5554         (CPP_BUF_GET, CPP_FORWARD): Delete.
5555         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
5556         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
5557         ACTIVE_MARK_P): Update.
5558         (_cpp_get_define_token): New internal function.
5559         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
5560
5561 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
5562
5563         * configure.in: And here.
5564         * configure: Regenerate.
5565         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
5566         --enable-libstdcxx-v3 is passed at configure time.
5567         * config.h.in: Regenerate.
5568
5569 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
5570
5571         * final.c (final): Use xcalloc to allocate line_note_exists.
5572         * function.c (free_after_compilation): Free the temp_slots.
5573         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
5574         (combine_temp_slot): Free temp_slots when they get combined.
5575         (purge_addressof): Fix typo in comment.
5576         * stmt.c (mark_goto_fixup): Mark the fixup itself.
5577         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
5578
5579         * ggc.h: Include varray.h.
5580         (ggc_pending_trees): Declare.
5581         (ggc_mark_tree_children): Remove declaration.
5582         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
5583         * ggc-common.c (ggc_pending_trees): New variable.
5584         (ggc_mark_roots): Call ggc_mark_trees.
5585         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
5586         the ggc_pending_trees.
5587         * Makefile.in (GGC_H): New variable.  Use it throughout in place
5588         of ggc.h.
5589
5590 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5591
5592         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
5593         GET_MODE_SIZE.
5594
5595 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5596
5597         * sh.c (sh_insn_length_adjustment): New function.
5598         * sh-protos.h (sh_insn_length_adjustment): Declare.
5599         * sh.h (ADJUST_INSN_LENGTH): Use it.
5600
5601 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
5602
5603         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
5604         from the insn where REG_RETVAL is added.
5605         (emit_no_conflict_block): Ditto.
5606
5607         * md.texi (Standard Names): Clarify when movX is needed.
5608
5609         * combine.c (simplify_comparison) [MINUS]: Do not replace
5610         all (op (minus A B) 0) with (op A B).
5611
5612 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
5613                           J"orn Rennecke <amylaar@cygnus.co.uk>
5614
5615         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
5616         (block_lump_real): Likewise.
5617
5618 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
5619
5620         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
5621         remaining non-zero debugging masks.
5622
5623 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
5624
5625         * basic-block.h (verify_flow_info): Declare.
5626         (flow_loop_outside_edge_p): Declare.
5627         * flow.c (verify_flow_info): Remove declaration.
5628         (clear_log_links, flow_loop_outside_edge_p): Likewise.
5629
5630 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
5631
5632         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
5633         not C++ comments.
5634
5635 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
5636
5637         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
5638         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
5639         seqdi_zero_trunc+1): Allow splits only if registers are
5640         different.
5641
5642 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
5643
5644         * acconfig.h: Add HAVE_GAS_HIDDEN.
5645         * config.in: Regenerated.
5646         * configure.in: Add test for .hidden pseudo-op in gas.
5647         * configure: Regenerated.
5648         * crtstuff.c: Include auto-host.h.
5649         Emit additional .hidden pseudo-op for __dso_handle if the
5650         assembler knows about it.
5651
5652 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
5653
5654         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
5655         before freeing argnames.
5656         * cpplib.c (do_ifndef): Cast return value of xstrdup.
5657
5658 2000-04-05  Michael Meissner  <meissner@redhat.com>
5659
5660         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
5661         Walton <jonboy@gordian.com> to make memory references with update
5662         work wtih -mregnames.
5663
5664 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5665
5666         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
5667         (regrename_optimize): Rename variables `def_uses' and
5668         `ext_basic_blocks' to avoid conflicts with similarly named
5669         typedefs in traditional C.
5670
5671         * calls.c (initialize_argument_information): Fix typo in previous
5672         change.
5673
5674 2000-04-04  Richard Henderson  <rth@cygnus.com>
5675
5676         * regrename.c (consider_available): Test fixed_regs not
5677         PIC_OFFSET_TABLE_REGNUM.
5678
5679 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
5680
5681         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
5682         crtend.
5683         (CRTSTUFF_T_CFLAGS_S): Delete definition.
5684         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
5685         (ENDFILE_LINUX_SPEC): Always use crtend.
5686         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
5687         (powerpc-*-linux-gnu): Likewise.
5688         * configure: Regenerate.
5689
5690         * config/rs6000/eabi.h: Don't include sysv4.h.
5691         (MULTILIB_DEFAULTS): Don't define.
5692         * config/rs6000/eabiaix.h: Don't include eabi.h.
5693         * config/rs6000/eabile.h: Delete.
5694         * config/rs6000/eabilesim.h: Delete.
5695         * config/rs6000/eabisim.h: Don't include eabi.h.
5696         * config/rs6000/linux.h: Don't include sysv4.h.
5697         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
5698         (MULTILIB_DEFAULTS): Don't redefine.
5699         * config/rs6000/rtems.h: Don't include eabi.h.
5700         * config/rs6000/sol2.h: Don't include sysv4le.h.
5701         * config/rs6000/sysv4le.h: Don't include sysv4.h.
5702         * config/rs6000/t-ppc: Delete.
5703         * config/rs6000/t-ppcgas: Correct comment.
5704         * config/rs6000/t-ppcos: Correct comment.  Don't build
5705         multilibs for -fPIC, rather use -fPIC -mstrict-align
5706         as default.
5707         * config/rs6000/t-ppc: Delete.
5708         * config/rs6000/vxppc.h: Don't include sysv4.h.
5709         * config/rs6000/vxppcle.h: Delete.
5710         * configure.in: Use multiple header files for p2pc ELF targets
5711         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
5712         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
5713         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
5714         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
5715         always available for these platforms.
5716
5717 2000-04-04  Richard Henderson  <rth@cygnus.com>
5718
5719         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
5720
5721 2000-04-04  Stan Cox  <scox@cygnus.com>
5722
5723         * Makefile.in: Add rules for regrename.o
5724         * regrename.c: New file.
5725         * rtl.h (regrename_optimize): Add prototype.
5726         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
5727         (compile_file, decode_d_option): Add support for -frename-registers.
5728         (rest_of_compilation): Call regrename_optimize.
5729         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
5730         New macros.
5731
5732 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5733
5734         * Makefile (gccbug): New target.
5735         (doc): Depend on it.
5736         * gcc.texi (Bugs): Link subnodes.
5737         (gccbug): New node.
5738         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
5739         Document severities, priorities, and classes in bug form.
5740
5741 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
5742
5743         * cpplex.c (trigraph_map, speccase): Combine into single
5744         table, chartab.
5745         (NORMAL, NONTRI): New macros.
5746         (_cpp_read_and_prescan): Change to use unified table.  Use
5747         is_hspace to test for whitespace.
5748
5749         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
5750         definition that doesn't provoke the "empty body in an
5751         if-statement" warning.
5752
5753 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
5754
5755         * builtins.c (expand_builtin_strlen): Force the source to
5756         be a memory address.
5757
5758 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5759
5760         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
5761
5762 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5763
5764         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
5765          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
5766         (ECF_IS_CONST): Rename to ECF_CONST.
5767         (special_function_p): Make static, change interface.
5768         (flags_from_decl_or_type, try_to_integrate): Break out from ...
5769         (expand_call) ... here; convert number of variables to flags.
5770         (emit_library_call_vlue_1): Likewise.
5771         (setjmp_call_p): New function.
5772         (initialize_argument_information): Accepts flags as argument;
5773         return flags.
5774         (precompute_arguments): Likewise.
5775         * tree.h (special_function_p): Remove.
5776         (setjmp_call_p): Add prototype.
5777
5778 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
5779
5780         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
5781         so that addresses are offsetable by up to 16 bytes.
5782         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
5783         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
5784         offsetable.
5785
5786         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
5787         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
5788         (movsf): Don't force any constant to memory if target is integer
5789         hard register.
5790         Move fp_zero_operand check below the const0_rtx check.
5791         (movtf): Likewise. Also allow fp_zero_operand for stores into
5792         memory.
5793         (movdf): Likewise. Also allow fp_zero_operand for stores into
5794         memory and into integer hard registers.
5795         (clear_df, clear_dfp, movdf_const_intreg_sp32,
5796         movdf_const_intreg_sp64): Remove.
5797         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
5798         conditions.
5799         (movdf_no_e_insn_v9_sp32): New pattern.
5800         (movdf_insn_v9only): Remove.
5801         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
5802         (movdf_insn_sp64): Remove.
5803         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
5804         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
5805         (following splits): Rewrite conditions. Add two new splits
5806         for storing 0.0 into memory and registers.
5807         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
5808         (movtf_insn_sp32): Redo constraints and conditions.
5809         (movtf_insn_vis_sp32): New pattern.
5810         (movtf_no_e_insn_sp32): Redo constraints and conditions.
5811         (movtf_insn_hq_sp64): Likewise.
5812         (movtf_insn_hq_vis_sp64): New pattern.
5813         (movtf_insn_sp64): Redo constraints and conditions.
5814         (movtf_insn_vis_sp64): New pattern.
5815         (movtf_no_e_insn_sp64): Redo constraints and conditions.
5816         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
5817         or memory.
5818         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
5819         -mvis or -m64 to take down the number of various reload patterns.
5820
5821 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
5822
5823         * pa/pa-64.h: New file.
5824         * pa/pa64-regs.h: New file.
5825         * pa/pa64-start.h: New file.
5826         * pa/t-pa64: New file.
5827         * pa/xm-pa64hpux.h: New file.
5828
5829 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5830
5831         * sparc.c (output_restore_regs): Prototype.
5832         (sparc_emit_float_lib_cmp): Constification.
5833
5834         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
5835
5836         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
5837         Prototype.
5838
5839         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
5840         (get_value_hash, hash_rtx): Likewise.
5841
5842         * ssa.c (compute_conservative_reg_partition): Prototype.
5843
5844         * tree.c (mark_hash_entry): Prototype.
5845
5846 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
5847
5848         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
5849         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
5850         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
5851
5852         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
5853         * objc/lang-specs.h: Likewise.
5854
5855 2000-04-03  Neil Booth  <NeilB@earthling.net>
5856
5857         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
5858         and SYNTAX_ERROR2. Replace `' in messages with ''.
5859         (op_to_str): Make re-entrant.
5860         (_cpp_parse_expr): Implement new error macros. Use | rather
5861         than || to logically or 2 boolean integers.  Simply expression
5862         checking we have a left operand iff needed.
5863
5864 2000-04-03  Nick Clifton  <nickc@cygnus.com>
5865
5866         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
5867
5868 2000-04-03  Philip Blundell  <philb@gnu.org>
5869
5870         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
5871
5872 2000-04-03  Felix Lee  <flee@cygnus.com>
5873
5874         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
5875         (run_shell): Use it.
5876
5877 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
5878
5879         * Makefile.in (stmp-int-hdrs): Make include subdir here...
5880         (stmp-fixproto): ...rather than here.
5881
5882 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
5883
5884         * pa.c (print_operand): Compute 'base' only inside the code paths
5885         that use it.
5886
5887 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
5888
5889         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
5890         CEIL_DIV_EXPR.
5891
5892 2000-04-03  Philipp Thomas  <pthomas@suse.de>
5893
5894         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
5895
5896 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
5897
5898         * Makefile.in (alias.o): Depend on $(TREE_H).
5899
5900 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
5901
5902         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
5903         processing C++.
5904         * cpplib.c (_cpp_handle_directive): Improve warnings for
5905         traditional C and indented directives.
5906
5907         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
5908         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
5909         fixinc/inclhack.def: Indent the # of #include_next one space.
5910         * cp/rtti.c: Un-indent #if and #endif.
5911
5912         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
5913         syntax error, but an error has already been printed.
5914         * cpplex.c (_cpp_parse_assertion): Give a more specific error
5915         message when called with nothing remaining on the line.
5916         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
5917         OTHER token, not an ASSERTION.
5918         * cpplib.c (do_assert): When we create a 'base' node, clear
5919         its aschain pointer.
5920
5921 2000-04-02  Neil Booth <NeilB@earthling.net>
5922
5923         * cppexp.c:  New typedef op_t.  struct operation and struct
5924         token updated to use it.
5925         (op_to_str): New function.
5926         (_cpp_parse_expr): Error messages modified to use op_to_str.
5927
5928 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5929
5930         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
5931         before checking MUST_PASS_IN_STACK.
5932
5933 2000-04-02  Neil Booth <NeilB@earthling.net>
5934
5935         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
5936         flags and initial priority into a single constant.  New
5937         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
5938         (_parse_cpp_expr): Implement new constants.  Take left operand
5939         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
5940         parse indicated by reducing FINISHED token.  Remove new lines
5941         from cpp_error messages.
5942
5943 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
5944
5945         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
5946         permanent obstack.
5947
5948 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
5949
5950         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
5951         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
5952         the strings and function names on the fly.  Take the #sccs
5953         entry out of the table if SCCS_DIRECTIVE is not defined.
5954         (_cpp_handle_directive): Decide if the # was at the beginning
5955         of the line here.  Issue -pedantic warnings for extended
5956         directives here.  Warn about K+R directives with the #
5957         indented, and C89/extended directives with the # not indented,
5958         here.
5959         (do_import, do_include_next, do_warning, do_ident, do_sccs,
5960         do_assert, do_unassert): Don't issue pedantic warning here.
5961
5962         * cpphash.h: Add CPP_WTRADITIONAL macro.
5963         * cpplib.h (struct cpp_options): Rename warn_stringify to
5964         warn_traditional; update comments.
5965         * cppinit.c (handle_option): Set warn_traditional not
5966         warn_stringify.
5967         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
5968         CPP_WTRADITIONAL (pfile).
5969         * cpplex.c (_cpp_lex_token): Don't decide if directives should
5970         be ignored in -traditional mode here.
5971
5972         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
5973         to initialize speccase[] and trigraph_map[].  Delete all
5974         references to pfile->input_speccase.  Always treat '?' as a
5975         special character.  Remove table-initialization code from
5976         _cpp_init_input_buffer.
5977
5978         * cpplib.h (struct cpp_reader): Remove input_speccase field.
5979         * cppinit.c (cpp_cleanup): Don't free input_speccase.
5980
5981 2000-04-01  Richard Henderson  <rth@cygnus.com>
5982
5983         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
5984         (mostlyclean): Likewise.
5985
5986         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
5987         (struct dump_file_info, enum dump_file_index, dump_file): New.
5988         (open_dump_file): Take a dump_file_index not a suffix, and a decl
5989         not a string.  Clean out file if we havn't yet done so.  Do nothing
5990         if the dump isn't enabled.
5991         (close_dump_file): Do nothing if the dump isn't open.  Dump
5992         graph data if requested.
5993         (dump_rtl, clean_dump_file): Remove.
5994         (compile_file): Don't clean the dump files.  Only finalize .bp dump
5995         if flag_test_coverage or flag_branch_probabilities.  Only finalize
5996         .combine dump if optimizing.  Iterate over dump_file to finalize the
5997         graph dumps.
5998         (rest_of_compilation): Update for open_dump_file/close_dump_file.
5999         Convert all uses of dump_rtl.
6000         (decode_d_option): Iterate over dump_file to implement 'a' and to
6001         locate pass-specific dumps.
6002
6003 2000-04-01  Neil Booth <NeilB@earthling.net>
6004
6005         * cppexp.c: Redefine priority constants.
6006         (_cpp_parse_expr): Replace left and right priority scheme with
6007         single priority logic.  Move LOGICAL to same place as COMPARE.
6008         Remove bogus check for multiple unary +/- operators.
6009
6010 2000-04-01  Neil Booth <NeilB@earthling.net>
6011
6012         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
6013         within the switch statement.  Binary operations break out of
6014         the switch naturally.  '(' tokens handled by forcing
6015         immediate shift.  ')' handled by forcing immediate reduce to
6016         the previous '('.  New error messages.
6017
6018 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
6019
6020         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
6021         part', it's already in use.  Use %K instead.  Add a return at the
6022         end of what is now %K.
6023         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
6024
6025 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6026
6027         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
6028         allocate_dynamic_stack_space.
6029         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
6030         update stack_pointer_delta; do not update arg_size_so_far.
6031         (compute_argument_block_size): Use stack_delta instead of
6032         stack_pointer_pending and arg_size_so_far.
6033         (expand_call): Add sanity checking for stack_pointer_delta;
6034         save and restore stack_pointer_delta for SIB, use
6035         stack_pointer_delta for alignment; do not update arg_space_so_far.
6036         (emit_library_call_value): Use stack_pointer_delta for alignment.
6037         (store_one_arg): Do not update arg_space_so_far.
6038         * explow.c (adjust_stack, anti_adjust_stack): Update
6039         stack_pointer_delta.
6040         (allocate_dynamic_stack_space): Add sanity checking for
6041         stack_pointer_delta.
6042         * expr.c (init_expr, clear_pending_stack_adjust): Clear
6043         stack_pointer_delta.
6044         (emit_push_insn): Update stack_pointer_delta.
6045         * function.h (struct expr_status): Add x_stack_pointer_delta;
6046         remove x_arg_space_so_far.
6047         (arg_space_so_far): Remove.
6048         (stack_pointer_delta): New macro.
6049
6050 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
6051
6052         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
6053         Reorder struct cpp_options and struct cpp_reader for better
6054         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
6055         takes two args.  Change all 'char' flags to 'unsigned char'.
6056         Move show_column flag into struct cpp_options.  Don't
6057         prototype cpp_options_init.
6058         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
6059         cppinit.c, cpplex.c, cpplib.c:
6060         Replace CPP_OPTIONS (pfile)->whatever with
6061         CPP_OPTION (pfile, whatever), and likewise for
6062         opts = CPP_OPTIONS (pfile); ... opts->whatever;
6063
6064         * cppinit.c (merge_include_chains): Take a cpp_reader *.
6065         Extract CPP_OPTION (pfile, pending) and work with that
6066         directly.
6067         (cpp_options_init): Delete.
6068         (cpp_reader_init): Turn on on-by-default options here.
6069         Allocate the pending structure here.
6070         (cl_options, enum opt_code): Define these from the same table,
6071         kept in a large macro.  Add -fshow-column and -fno-show-column
6072         options.
6073
6074         * cpperror.c (v_message): If show_column is off, don't print
6075         the column number.
6076
6077         * cppmain.c: Update for new interface.
6078         * fix-header.c: Likewise.
6079
6080 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
6081
6082         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
6083         definition.
6084         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
6085         are passed to any invocation of AR_FOR_TARGET.
6086         (AR_CREATE_FOR_TARGET): New macro.
6087         (AR_EXTRACT_FOR_TARGET): New macro.
6088         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
6089         AR_EXTRACT_FOR_TARGET.
6090         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
6091         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
6092         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
6093         AR_EXTRACT_FOR_TARGET to sub-makes.
6094
6095 2000-03-31  Neil Booth <NeilB@earthling.net>
6096
6097         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
6098         PAREN_INNER_PRIO.
6099         (_cpp_parse_expr): Check for multiple unary +/- operators.
6100         Correct priorities of ':' and '?'.  Treat ')' as having a
6101         value.  Ensure conditional expression is not void.
6102
6103 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
6104
6105         * alias.c (canon_rtx): Make it global.
6106         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
6107         equality.
6108         * cse.c (struct table_elt): Add canon_exp.
6109         (insert): Clear it.
6110         (invalidate): Canonicalize expressions only once.
6111         * rtl.h (canon_rtx): Declare.
6112
6113 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
6114
6115         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
6116         * alias.c (reg_known_value): Add comments.
6117         (init_alias_analysis): Likewise.
6118         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
6119         address.
6120         (cse_basic_block): Fix typo in comment.
6121         * emit-rtl.c: Include hashtab.h.
6122         (const_int_htab): New variable.
6123         (const_int_htab_hash): New function.
6124         (const_int_htab_eq): Likewise.
6125         (rtx_htab_mark_1): Likewise.
6126         (rtx_htab_mark): Likewise.
6127         (gen_rtx_CONST_INT): Cache all CONST_INTs.
6128         (unshare_all_rtx): Fix formatting.
6129         (init_emit_once): Initialize const_int_htab.
6130         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
6131         address.
6132         * rtl.texi: Document the fact that all CONST_INTs with the same
6133         value are shared.
6134
6135 2000-03-30  Richard Henderson  <rth@cygnus.com>
6136
6137         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
6138
6139 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
6140
6141         * configure.in: Comment out --enable-c-cpplib stanza.
6142         * configure: Regenerate.
6143
6144 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6145
6146         * expr.c (store_constructor): Properly compute displacement and
6147         alignment when offset is variable.
6148
6149         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
6150         cases of alignment in bytes.
6151
6152 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
6153
6154         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
6155         since it is used to generate c-parse.y.
6156         * objc-parse.c, objc-parse.y: Regenerated.
6157
6158         * function.c (expand_function_end): Pass alignment argument to
6159         emit_block_move in bits, not bytes.
6160
6161 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6162
6163         * expr.c (move_by_pieces_ninsns): Fix one more missing align
6164         correction.
6165
6166         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
6167
6168         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
6169         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
6170         * function.c (assign_parms): Likewise.
6171         * integrate.c (expand_inline_function): Likewise.
6172         * stmt.c (expand_decl): Likewise.
6173         (copy_rtx_and_substitute): Likewise.
6174         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
6175         (clear_by_pieces): Fix error in last change.
6176         * emit-rtl.c (init_emit): Set known registers alignment in bits.
6177         * function.h (regno_pointer_align): Now unsigned.
6178         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
6179         is in bits.
6180         * config/i386/i386.c (aligned_operand): Likewise.
6181         * config/sparc/sparc.c (mem_min_alignment): Likewise.
6182         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
6183         (unaligned_memory_operand): Likewise.
6184         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
6185         Also make alignments and sizes unsigned and some whitespace cleanup.
6186         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
6187
6188         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
6189         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
6190         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
6191         (expand_builtin_memset): Likewise, but to clear_storage.
6192         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
6193         (restore_fixed_argument_area): Likewise.
6194         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
6195         (load_register_parameters): Likewise, to emit_group_load.
6196         (expand_call): Likewise, to emit_group_store and emit_block_move.
6197         (emit_library_call_value_1): Likewise, to emit_block_move.
6198         (store_one_arg): Likewise, and to emit_push_insn.
6199         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
6200         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
6201         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
6202         (emit_block_move, emit_group_load, emit_group_store): Likewise.
6203         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
6204         (expand_assigment, store_expr, store_constructor_field): Likewise.
6205         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
6206         (store_constructor, store_field, get_inner_reference): Likewise.
6207         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
6208         (expand_expr, case COMPONENT_REF): Likewise.
6209         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
6210         and positions; reindent code.
6211         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
6212         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
6213         (assign_parms): Likewise to emit_group_store.
6214         * optabs.c (prepare_cmp_insn): Alignment is in bits.
6215         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
6216         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
6217         (expand_return): Likewise to {extract,store}_bit_field.
6218         * stor-layout.c (get_mode_alignment): Minor cleanup.
6219         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
6220         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
6221
6222 2000-03-29  Nick Clifton  <nickc@cygnus.com>
6223
6224         * config/arm/arm.h: Undo effects of previous delta:
6225         (ASM_SPEC): Do not define.
6226         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
6227
6228         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
6229         typo.
6230
6231 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
6232
6233         * cppinit.c (cpp_start_read): Call initialize_dependency_output
6234         only after reading in the primary source file.
6235
6236 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
6237
6238         * c-common.c (c_common_nodes_and_builtins): The first parameter to
6239         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
6240         or a reference to a va_list.
6241         * builtins.c (stabilize_va_list): Simplify now we don't have to
6242         work around C array address decay.
6243         * c-typeck.c (convert_for_assignment): Handle assignment to
6244         a reference parameter by taking the address of the RHS.
6245         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
6246         (va_copy): Likewise.
6247         (__va_copy): Likewise.
6248         * ginclude/varargs.h (va_start): Likewise.
6249         (__va_copy): Likewise.
6250
6251 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
6252
6253         * i386/djgpp.h: Remove extraneous "+".
6254
6255         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
6256
6257         * calls.c (expand_call): Fix typo in last change.
6258
6259 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
6260
6261         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
6262         been expanded.
6263
6264 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6265
6266         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
6267         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
6268         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
6269         * tree.c (bit_position, byte_position): Likewise.
6270         * tree.h: Declare new functions.
6271
6272 2000-03-29  Nick Clifton  <nickc@cygnus.com>
6273
6274         * config/arm/arm.c: Minor formatting changes/
6275         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
6276         already defined.
6277         (ASM_SPEC): Define if not already defined.
6278
6279 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
6280
6281         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
6282         _cpp_calc_hash.
6283
6284 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
6285
6286         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
6287         value, don't output it as unsigned.
6288
6289 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
6290
6291         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
6292
6293 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6294
6295         * c-common.c (c_common_nodes_and_builtins): Don't special case
6296         cplus_mode when declaring builtin bzero/bcmp, always avoid
6297         prototype arguments.
6298
6299 2000-03-29  Bruce Korb  <bkorb@gnu.org>
6300
6301         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
6302         to a non-file
6303
6304 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6305
6306         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
6307         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
6308         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
6309         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
6310         (save_fixed_argument_area, restore_fixed_argument_area):
6311         conditionize by #ifdef REG_PARM_STACK_SPACE only.
6312         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
6313         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
6314         (precompute_register_parameters): Avoid #ifdefs on
6315         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
6316         (stire_one_args): Likewise.
6317         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
6318         (emit_library_call_value_1): Likewise.
6319         (compute_argument_block_size): Align to STACK_BOUNDARY only for
6320         ACCUMULATE_OUTGOING_ARGS.
6321         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
6322         value.
6323         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
6324         (use_crosses_set_p): Likewise.
6325         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
6326         #define ACCUMULATE_OUTGOING_ARGS 1.
6327         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
6328         frames.
6329         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
6330         constants.
6331         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
6332         (TARGET_SWITCHES): Add push-args, no-push-args,
6333         accumulate-outgoing-args and no-accumulate-outgoing-args.
6334         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
6335         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
6336         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
6337         and PUSH_ROUNDING.
6338         (emit_push_insn): Likewise.
6339         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
6340         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
6341         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
6342         (STACK_DYNAMIC_OFFSET): Define correctly for both
6343         ACCUMULATE_OUTGOING_ARGS and normal mode.
6344         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
6345         * tm.texi (PUSH_ARGS): Document.
6346         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
6347
6348 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6349
6350         * flags.h (flag_optimize_sibling_calls): Declare.
6351         * calls.c (expand_call): Fail sibcall when
6352         !flag_optimize_sibling_calls
6353         * invoke.texi (flag_optimize_sibling_calls): Document.
6354         * toplev.c (flag_optimize_sibling_calls): New global variable.
6355         (f_options): Add flag_optimize_sibling_calls.
6356         (rest_of_compilation): Conditionize
6357         optimize_sibling_and_tail_recursive_calls by
6358         flag_optimize_sibling_calls.
6359         (main): Set flag_optimize_sibling_calls for -O2.
6360         * stmt.c (expand_return): Conditionize tail recursion by
6361         flag_optimize_sibling_calls.
6362
6363 2000-03-29  Richard Henderson  <rth@cygnus.com>
6364
6365         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
6366         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
6367
6368 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
6369
6370         * except.c (add_eh_table_entry): Mark type_info's as referenced.
6371
6372 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6373
6374         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
6375         is given.
6376         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
6377         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
6378         * config/rs6000/aix.h: then modified likewise.
6379
6380 2000-03-28  Richard Henderson  <rth@cygnus.com>
6381
6382         * rtl.h: Redistribute enum reg_note documentation.
6383         Kill trailing whitespace.
6384         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
6385         Kill trailing whitespace.
6386
6387 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
6388
6389         * cppfiles.c (hash_IHASH): Just return i->hash.
6390         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
6391         htab_find_with_hash.
6392         (cpp_read_file): Likewise.
6393         (find_include_file): Likewise.  Properly initialize
6394         ih->nshort.  Share ih->name and ih->nshort if possible.
6395         * cpphash.c (_cpp_calc_hash): New function.
6396         (hash_HASHNODE): Just return h->hash.
6397         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
6398         htab_find_with_hash.
6399         * cpphash.h: Prototype _cpp_calc_hash.
6400         * cppinit.c (initialize_builtins): Provide a valid hash
6401         to _cpp_make_hashnode, using _cpp_calc_hash.
6402
6403         * cpphash.c (collect_expansion): # is not a special character
6404         in object-like macros.  In -traditional mode, /**/ is not
6405         token paste at the beginning or end of the line.
6406         * cpplib.c (do_include, do_import, do_include_next): If
6407         parse_include fails, return immediately.
6408
6409 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
6410
6411         * config/arm/arm.md (return peepholes): Update to reflect the new
6412         call insn patterns.
6413         * config/arm/arm.c (arm_volatile_func): Also check
6414         current_function_nothrow.
6415         (output_return_instruction, output_func_prologue): Use it.
6416         (arm_output_epilogue, arm_expand_prologue): Likewise.
6417
6418 2000-03-27  Tom Tromey  <tromey@cygnus.com>
6419
6420         * gcc.c (handle_braces): In {x*...} case, break out of loop if
6421         switch is found.
6422
6423 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6424
6425         * expr.c (store_constructor): SIZE now signed.
6426         For EXPR_SIZE, don't evaluate size; just needed if constant.
6427         * fold-const.c (fold): Fix a number of cases when folded tree is
6428         wrong type.
6429         * function.c (flush_addressof): Reenable.
6430         * tree.h (flush_addressof): Likewise.
6431         * toplev.c (independent_decode_option): Look at strings_processed.
6432         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
6433
6434 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
6435
6436         * sibcall.c (indentify_call_return_value): Find last call in the chain;
6437         Allow stack adjustment after function call.
6438
6439         * regmove.c (struct csa_memlist): Make mem field rtx *.
6440         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
6441         (try_apply_stack_adjustment): Replace whole MEM rtx.
6442         (combine_stack_adjustments_for_block): Update calls
6443         to record_one_stack_ref.
6444
6445 2000-03-28  Neil Booth  <NeilB@earthling.net>
6446
6447         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
6448         '\\' rather than a null character, so nulls are not special.  Fix
6449         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
6450         speed trigraph conversion.
6451         (_cpp_init_input_buffer): Initialize trigraph map.
6452
6453 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
6454
6455         * config/i386/i386.c (output_387_binary_op): Correct intel
6456         mode assembly output, and add spaces after commas in AT&T
6457         output.  Correct Unixware assembler comment.  Document input
6458         constraints.  Comment fp operations.  Reduce profligate buffer
6459         size.  Remove extraneous abort.  Localize temp var.
6460         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
6461         (output_fix_trunc): Add spaces after commas in assembly output.
6462
6463 2000-03-27  Richard Henderson  <rth@cygnus.com>
6464
6465         * i386-protos.h (ix86_match_ccmode): Declare.
6466         * i386.c (ix86_match_ccmode): New.
6467         (ix86_expand_fp_compare): Update for pattern renames.
6468         (ix86_expand_strlensi_unroll_1): Likewise.
6469         * i386.h (EXTRA_CC_MODES): Add CCZ.
6470         (SELECT_CC_MODE): Use it for EQ/NE zero.
6471         * i386.md (cmpsi_ccz_1): New.
6472         (cmpqi_ccz_1): New.
6473         (*testsi_ccz_1): New.
6474         (testqi_ccz_1): New.
6475         (cmpsi_ccno_1): Rename from cmpsi_0.
6476         (testsi_ccno_1): Rename from testsi_1.
6477         (testqi_ccno_1): Rename from testqi_1.
6478         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
6479         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
6480         (*cmphi_0): Use ix86_match_ccmode.
6481         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
6482         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
6483         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
6484         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
6485         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
6486         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
6487         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
6488         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
6489         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
6490         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
6491         (appropriate peepholes): Likewise.
6492         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
6493         (*subsi_3, *subhi_3, *subqi_3): Remove.
6494         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
6495         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
6496         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
6497         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
6498         (x86_shift_adj_1): Use CCZ.
6499         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
6500
6501 2000-03-27  Stan Cox  <scox@cygnus.com>
6502
6503         * resource.h (mark_resource_type): New.
6504         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
6505         find_free_register): Use mark_resource_type.
6506         (mark_set_resources): Change include_delayed_effects
6507         to mark_resource_type.
6508         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
6509         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
6510         Use mark_resource_type.
6511
6512 2000-03-27  Richard Henderson  <rth@cygnus.com>
6513
6514         * i386.md (call_pop_0, call_value_pop_0): New.
6515         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
6516         (call_value_pop_1): Likewise.
6517         (call_0, call_value_0): New.
6518         (call_1, call_value_1): Remove constraint from unused arg.
6519
6520 2000-03-27  Nick Clifton  <nickc@cygnus.com>
6521
6522         * invoke.texi (Spec Files): Document new spec % command created by
6523         Tom Tromey's recent patch.
6524
6525 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
6526
6527         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
6528         if not defined.
6529
6530 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6531
6532         * expr.c (expand_assignment): Fix typo in last change.
6533
6534         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
6535
6536 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6537
6538         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
6539         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
6540         and DECL_INLINE if FUNCTION_DECL.
6541         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
6542         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
6543         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
6544         (combine_parm_decls): Likewise.
6545         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
6546         * print-tree.c (print_node): Likewise.
6547         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
6548         DECL_TRANSPARENT_UNION on proper decl types.
6549         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
6550         * stor-layout.c (layout_decl): Only check DECL_PACKED and
6551         DECL_BIT_FIELD of FIELD_DECL.
6552         * tree.h (DECL_RESULT_FLD): New macro.
6553
6554         * expr.c (expand_assignment): Add code to handle variable-sized
6555         BLKmode case.
6556
6557 2000-03-26  Richard Henderson  <rth@cygnus.com>
6558
6559         * calls.c (expand_call): Pass parms not original exp to
6560         optimize_tail_recursion.  Mind return value instead of looking
6561         for a barrier.
6562         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
6563         call_expr.  Move checks for call_expr and current_function_decl ...
6564         (expand_return): ... here.
6565
6566 2000-03-26  Tom Tromey  <tromey@cygnus.com>
6567
6568         * gcc.c (handle_braces): Recognize `%{<S}' construct.
6569         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
6570         defines.
6571         (process_command): Use them.
6572         (check_live_switch): Likewise.
6573         (give_switch): Skip ignored switches.
6574
6575 2000-03-26  Jan Hubicka  <jh@suse.cz>
6576
6577         * jump.c (jump_optimize_1): Fix typo in elide optimizations
6578         for minimal jump pass test.
6579
6580 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
6581
6582         * integrate.c (function_cannot_inline_p): Do inline functions that
6583         return `void'.
6584
6585 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6586
6587         * stor-layout.c (layout_type, set_sizetype): early_type_list is
6588         now a list of TREE_LIST entries, not types.
6589         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
6590
6591         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
6592         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
6593         int_bit_position.
6594         * config/mips/mips.c (function_arg): Likewise; also remove cast
6595         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
6596         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
6597         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
6598         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
6599         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
6600         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
6601         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
6602         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
6603         num_adjusts now unsigned.
6604         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
6605         * config/sparc/sparc.c (struct function_arg_record_value_parms):
6606         NREGS now unsigned.
6607         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
6608         as is BITPOS variable; use host_integerp and int_bit_position.
6609         (function_arg_record_value_2): Likewise.
6610         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
6611         Variable REGNO now unsigned.
6612         (function_arg_record_value): NREGS now unsigned.
6613
6614 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
6615
6616         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
6617
6618 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6619
6620         * Rework fields used to describe positions of bitfields and
6621         modify sizes to be unsigned and use HOST_WIDE_INT.
6622         * alias.c (reg_known_value_size): Now unsigned.
6623         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
6624         (really_start_incremental_init): Use bitsize_zero_node.
6625         (push_init_level, pop_init_level, output_init_element): Likewise.
6626         Use bitsize_unit_node and bitsize_one_node.
6627         (output_pending_init_elements, process_init_element): Likewise.
6628         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
6629         (make_extraction): Position and length HOST_WIDE_INT and unsigned
6630         HOST_WIDE_INT, respectively.
6631         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
6632         (num_sign_bit_copies): Returns unsigned.
6633         BITWIDTH now unsigned; rework arithmetic.
6634         Remove recursive call from arg to MAX.
6635         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
6636         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
6637         REGNO now unsigned.
6638         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
6639         (find_split_point, expand_compound_operation, make_extraction): LEN
6640         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
6641         (make_field_assignment): Likewise.
6642         (combine_simplify_rtx): Add cast.
6643         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
6644         (force_to_mode): WIDTH now unsigned; add cast.
6645         (if_then_else_cond): SIZE now unsigned.
6646         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
6647         (extended_count): Now returns unsigned.
6648         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
6649         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
6650         (simplify_comparison): MODE_WIDTH now unsigned.
6651         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
6652         (mark_used_regs_combine): Likewise; rework arithmetic.
6653         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
6654         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
6655         (record_promoted_value): REGNO now unsigned.
6656         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
6657         (get_last_value): REGNO now unsigned.
6658         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
6659         (reg_dead_regno, reg_dead_endregno): Now unsigned.
6660         (remove_death): Arg REGNO now unsigned.
6661         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
6662         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
6663         now unsigned.
6664         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
6665         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
6666         (struct cse_reg_info): REGNO now unsigned.
6667         (cached_regno): Now unsigned.
6668         (REGNO_QTY_VALID_P): Add cast.
6669         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
6670         (remove_invalid_regs): Likewise.
6671         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
6672         as are variables END and I.
6673         (get_cse_reg_info, insert): Likewise.
6674         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
6675         (canon_hash): Likewise.
6676         (insert_regs, lookup_for_remove): REGNO now unsigned.
6677         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
6678         New variable RN.
6679         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
6680         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
6681         * emit-rtl.c (subreg_realpart_p): Add cast.
6682         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
6683         (operand_subword_force): Arg I is now unsigned.
6684         * except.c (eh_regs): Variable I is now unsigned.
6685         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
6686         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
6687         length is unsigned HOST_WIDE_INT; likewise for internal variables.
6688         (store_split_bit_field, extract_fixed_bit_field): Likewise.
6689         (extract_split_bit_field, store_bit_field, extract_bit_field):
6690         Likewise.
6691         * expr.c (store_constructor_fields, store_constructor, store_field):
6692         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
6693         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
6694         (do_jump): Likewise.
6695         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
6696         MAX_SIZE is now unsigned.
6697         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
6698         (emit_group_store): Likewise.
6699         (emit_move_insn): I now unsigned.
6700         (store_constructor): Use host_integerp, tree_low_cst, and
6701         bitsize_unit_node.
6702         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
6703         Rework all calculations to use trees and new fields.
6704         * expr.h (promoted_input_arg): Regno now unsigned.
6705         (store_bit_field, extract_bit_field): Adjust types of pos and size.
6706         (mark_seen_cases): Arg is HOST_WIDE_INT.
6707         * flow.c (verify_wide_reg_1): REGNO now unsigned.
6708         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
6709         precisions and alignments are unsigned.
6710         (optimize_bit_field_compare, fold_truthop): Likewise.
6711         (int_const_binop): Adjust threshold for size_int_type_wide call.
6712         (fold_convert): Likewise.
6713         (size_int_type_wide): Make table larger and fix thinko that only
6714         had half of table used.
6715         (all_ones_mask_p, fold): Precisions are unsigned.
6716         * function.c (put_reg_info_stack): REGNO is unsigned.
6717         (instantiate_decl): Size is HOST_WIDE_INT.
6718         (instantiate_virtual_regs): I is unsigned.
6719         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
6720         (promoted_input_arg): REGNO is unsigned.
6721         * function.h (struct function): x_max_parm_reg is now unsigned.
6722         * gcse.c (max_gcse_regno): Now unsigned.
6723         (struct null_pointer_info): min_reg and max_reg now unsigned.
6724         (lookup_set, next_set): REGNO arg now unsigned.
6725         (compute_hash_table): REGNO and I now unsigned.
6726         (handle_avail_expr): regnum_for_replacing now unsigned.
6727         (cprop_insn): REGNO now unsigned.
6728         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
6729         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
6730         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
6731         * hard-reg-set.h (reg_class_size): Now unsigned.
6732         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
6733         * jump.c (mark_modified_reg): I now unsigned; add cast.
6734         (rtx_equal_for_thread_p): Add cast.
6735         * loop.c (max_reg_before_loop): Now unsigned.
6736         (struct_movable): REGNO now unsigned.
6737         (try_copy_prop): REGNO arg unsigned.
6738         (regs_match_p): XN and YN now unsigned.
6739         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
6740         (strength_reduce): Likewise; NREGS also unsigned.
6741         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
6742         * loop.h (struct iv_class): REGNO now unsigned.
6743         (max_reg_before_loop, first_increment_giv, last_increment_giv):
6744         Now unsigned.
6745         * machmode.h (mode_size, mode_unit_size): Now unsigned.
6746         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
6747         * optabs.c (expand_binop): I and NWORDS now unsigned.
6748         (expand_unop): I now unsigned.
6749         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
6750         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
6751         * real.c (significand_size): Now returns unsigned.
6752         * real.h (significand_size): Likewise.
6753         * regclass.c (reg_class_size): Now unsigned.
6754         (choose_hard_reg_mode): Both operands now unsigned.
6755         (record_reg_classes): REGNO and NR now unsigned.
6756         (reg_scan): NREGS now unsigned.
6757         (reg_scan_update): old_max_regno now unsigned.
6758         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
6759         * reload.c (find_valid_class): BEST_SIZE now unsigned.
6760         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
6761         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
6762         Likewise for variable R.
6763         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
6764         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
6765         (find_equiv_reg): Add casts.
6766         (regno_clobbered_p): Arg REGNO now unsigned.
6767         * reload.h (struct reload): NREGS now unsigned.
6768         (refers_to_regno_for_reload_p): Regno args are unsigned.
6769         (regno_clobbered_p): Likewise.
6770         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
6771         (compute_use_by_pseudos): REGNO now unsigned.
6772         (find_reg): I and J now unsigned, new variable K, and change loop
6773         variables accordingly; THIS_NREGS now unsigned.
6774         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
6775         (spill_hard_reg): REGNO arg now unsigned; add casts.
6776         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
6777         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
6778         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
6779         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
6780         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
6781         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
6782         (emit_reload_insns): REGNO now unsigned.
6783         (reload_cse_move2add): Add cast.
6784         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
6785         and rework loop.
6786         * resource.c (mark_referenced_resources, mark_set_resources): New
6787         variable R; REGNO and LAST_REGNO now unsigned.
6788         (mark_target_live_regs): J and REGNO now unsigned.
6789         * rtl.c (mode_size, mode_unit_size): Now unsigned.
6790         * rtl.h (union rtunion_def): New field rtuint.
6791         (XCUINT): New macro.
6792         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
6793         (operand_subword, operand_subword_force): Word number is unsigned.
6794         (choose_hard_reg_mode): Operands are unsigned.
6795         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
6796         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
6797         (regno_use_in, combine_instructions, remove_death): Likewise.
6798         (reg_scan, reg_scan_update): Likewise.
6799         (extended_count): Return is unsigned.
6800         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
6801         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
6802         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
6803         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
6804         (reg_reg_last_1): FIRS and LAST now unsigned.
6805         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
6806         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
6807         now unsigned.
6808         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
6809         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
6810         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
6811         (replace_regs): Arg NREGS now unsigned.
6812         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
6813         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
6814         (simplify_binary_operation): Likewise.
6815         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
6816         THIS_LAST now unsigned.
6817         (cselib_record_set): Add cast.
6818         * ssa.c (ssa_max_reg_num): Now unsigned.
6819         (rename_block): REGNO now unsigned.
6820         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
6821         sizes now unsigned.
6822         (all_cases_count): Just return -1 not -2.
6823         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
6824         Rework tests to use trees whenever possible.
6825         Use host_integerp and tree_low_cst.
6826         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
6827         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
6828         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
6829         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
6830         (smallest_mode_for_size): Likewise.
6831         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
6832         KNOWN_ALIGN is now an alignment, so simplify code.
6833         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
6834         (start_record_layout): Renamed from new_record_layout_info.
6835         Update to new fields.
6836         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
6837         New functions.
6838         (place_union_field): Renamed from layout_union_field.
6839         Update to use new fields in rli.
6840         (place_field): Renamed from layout_field.
6841         Major rewrite to use new fields in rli; pass alignment to layout_decl.
6842         (finalize_record_size): Rework to use new fields in rli and handle
6843         union.
6844         (compute_record_mode): Rework to simplify and to use new DECL fields.
6845         (finalize_type_size): Make rounding more consistent.
6846         (finish_union_layout): Deleted.
6847         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
6848         (layout_type, case RECORD_TYPE): Call new function names.
6849         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
6850         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
6851         (get_best_mode): UNIT is now unsigned; remove casts.
6852         * tree.c (bit_position): Compute from new fields.
6853         (byte_position, int_byte_position): New functions.
6854         (print_type_hash_statistics): Cast to remove warning.
6855         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
6856         (build_index_type): Likewise; make subtype of sizetype.
6857         (build_index_2_type): Pass sizetype to build_range_type.
6858         (build_common_tree_nodes): Use size_int and bitsize_int to
6859         initialize nodes; add bitsize_{zero,one,unit}_node.
6860         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
6861         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
6862         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
6863         (DECL_FIELD_BITPOS): Deleted.
6864         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
6865         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
6866         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
6867         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
6868         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
6869         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
6870         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
6871         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
6872         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
6873         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
6874         (DECL_ALIGN): Adjust to new field in union.
6875         (DECL_OFFSET_ALIGN): New field.
6876         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
6877         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
6878         (union tree_decl): Add struct for both aligns.
6879         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
6880         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
6881         (struct record_layout_info): Rework fields to have offset
6882         alignment and byte and bit position.
6883         (start_record_layout, place_field): Renamed from old names.
6884         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
6885         (byte_position, int_byte_position): Likewise.
6886         (get_inner_reference): Change types of position and length.
6887         * unroll.c (unroll_loop): New variable R; use for some loops.
6888         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
6889         (calculate_giv_inc): Arg REGNO now unsigned.
6890         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
6891         * varasm.c (assemble_variable): Clean up handling of size using
6892         host_integerp and tree_low_cst.
6893         (decode_addr_const): Use byte, not bit, position.
6894         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
6895         use tree_low_cst and int_bit_position.
6896         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
6897
6898 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
6899
6900         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
6901         (reorder_block_def): New members eff_head and eff_end.
6902         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
6903         (verify_insn_chain): New function.
6904         (skip_insns_between_block): Add code to skip deleted insns.
6905         Check for note before using.
6906         (chain_reorder_blocks): Replace calls to skip_insns_between_block
6907         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
6908         Check for note before using.
6909         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
6910         (fixup_reorder_chain): Restructure, clean up, defect removal.
6911         (reorder_basic_blocks): Remove last_insn and references to it.
6912         Moved insn chain verification code into a new function (see above).
6913         Delete defective code that sets last insn.
6914         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
6915         all blocks.
6916
6917 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6918
6919         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
6920
6921 2000-03-24  Richard Henderson  <rth@cygnus.com>
6922
6923         * tree.c (lang_safe_for_unsave): Remove.
6924         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
6925         allowing for two levels of unsafeness.  Remove lang hook.
6926         * tree.h: Update declarations.
6927         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
6928         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
6929         Always fail sibcalls when there are pending cleanups.
6930
6931 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
6932
6933         * flow.c (propagate_block): When we delete an ADDR_VEC,
6934         also delete the BARRIER following it if there is one.
6935
6936 2000-03-24  Richard Henderson  <rth@cygnus.com>
6937
6938         * builtins.c (expand_builtin_bzero): Convert `length' argument
6939         to sizetype.
6940
6941 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
6942
6943         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
6944         comparison if regno's are equal.
6945         * calls.c (initialize_argument_informat): Add ecf_flags argument.
6946         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
6947         (expand_call): Update caller.
6948         Avoid making a sibling call if argument size of the callee is larger
6949         than argument size of the caller.
6950         Call hard_function_value with outgoing set if in sibcall pass.
6951         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
6952
6953         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
6954         Change LEAF_REGISTERS from an array initializer to actual array
6955         identifier. Move static global variable into the function.
6956         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
6957         sequences for leaf functions.
6958         * global.c (global_alloc): Likewise.
6959         * tm.texi (LEAF_REGISTERS): Update documentation.
6960
6961         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
6962         TARGET_FLAT leaf disabling hack.
6963         (LEAF_REGISTERS): Changed from an array initializer to actual array
6964         identifier to avoid duplication and remove the above hack.
6965         (FUNCTION_OK_FOR_SIBCALL): Define.
6966         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
6967         always like call attribute.
6968         (eligible_for_sibcall_delay): New attribute.
6969         (sibcall): New delay type.
6970         (sibcall, sibcall_value, sibcall_epilogue): New expands.
6971         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
6972         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
6973         * config/sparc/sparc.c (sparc_leaf_regs): New array.
6974         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
6975         New functions.
6976         (output_function_epilogue): Move part of the code into
6977         output_restore_regs.
6978         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
6979         TYPE_SIBCALL.
6980         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
6981         prototypes.
6982
6983         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
6984         until infrastructure is finished.
6985
6986 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
6987
6988         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
6989         (save_parm_insns): Not here.
6990
6991 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6992
6993         * builtins.c (expand_builtin_bzero): New function.
6994         (expand_builtin): Handle bzero.
6995
6996         * builtins.def: Add BUILT_IN_BZERO.
6997
6998         * c-common.c (c_common_nodes_and_builtins): Provide builtin
6999         prototype & function for bzero.
7000
7001 2000-03-23  Michael Meissner  <meissner@redhat.com>
7002
7003         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
7004         change adding TARGET_FP to the TF floating point insns, except for
7005         trunctfsf2, which generates direct calls to truncdfsf2.
7006
7007 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
7008
7009         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
7010         try to protect against middle-end changes that break binary
7011         compatibility.
7012         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
7013
7014 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7015
7016         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
7017
7018 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7019
7020         * calls.c (expand_call): If TARGET is passed by reference and
7021         is readonly, write a CLOBBER.
7022
7023 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7024
7025         * builtins.c (expand_builtin): Handle bcmp.
7026
7027         * builtins.def: Add BUILT_IN_BCMP.
7028
7029         * c-common.c (c_common_nodes_and_builtins): Provide builtin
7030         prototype & function for bcmp.
7031
7032 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
7033
7034         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
7035         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
7036         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
7037
7038 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
7039
7040         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
7041         alternative when using -fp64 -gp32.
7042
7043 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
7044
7045         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
7046         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
7047         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
7048
7049         * frame.h (frame_state): Revert last change.
7050         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
7051         * libgcc2.c (throw_helper): Revert last change.
7052
7053 2000-03-22  Richard Henderson  <rth@cygnus.com>
7054
7055         * stmt.c (expand_asm_operands): Don't promote the temporary.
7056
7057 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7058
7059         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
7060         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
7061           c_get_alias_set): Likewise.
7062         * c-decl.c (duplicate_decls): Likewise.
7063         * c-typeck.c (default_conversion,build_unary_op): Likewise.
7064         * calls.c (initialize_argument_information): Likewise.
7065         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
7066         Likewise.
7067         * dwarfout.c (decl_class_context,output_type): Likewise.
7068         * expr.c (get_inner_reference): Likewise.
7069         * fold-const.c (simple_operand_p,fold): Likewise.
7070         * function.c (aggregate_value_p): Likewise.
7071         * stmt.c (expand_asm_operands): Likewise.
7072         * varasm.c (named_section): Likewise.
7073
7074 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
7075
7076         Implement dwarf2 exception handling for the ARM.
7077         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
7078         (DWARF_FRAME_RETURN_COLUMN): Define.
7079         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
7080         REG_FRAME_RELATED_EXPR note.
7081         (emit_sfm): Likewise.
7082         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
7083         * dwarf2out.c (reg_save): Handle saving a register to itself.
7084         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
7085         * except.c (eh_regs): Don't use the static chain reg if it's
7086         callee-saved.
7087         * frame.h (frame_state): Add cfa_saved field.
7088         * frame.c (execute_cfa_insn): Set it.
7089         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
7090         the epilogue.
7091         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
7092         Now takes a parm.
7093         (instantiate_virtual_regs): Adjust.
7094         * tm.texi: Adjust.
7095         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
7096         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
7097         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
7098
7099         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
7100         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
7101
7102 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7103
7104         * builtins.def: New file.
7105
7106         * Makefile.in (TREE_H): Depend on builtins.def.
7107
7108         * builtins.c (built_in_names): Use builtins.def.
7109
7110         * tree.h (built_in_function): Likewise.
7111
7112 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
7113
7114         * tree.c (size_in_bytes): Return size_zero_node, not
7115         integer_zero_node.
7116
7117 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
7118
7119         * config/fp-bit.c (pack_d): Correct the case when a denormal
7120         is rounded up and stops being denormal.
7121
7122 2000-03-21  Richard Henderson  <rth@cygnus.com>
7123
7124         * config/alpha/alpha.c (function_arg): Check for void_type_node
7125         before using MUST_PASS_IN_STACK.
7126
7127 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
7128
7129         * regmove.c (combine_stack_adjustments_for_block): Check that
7130         the stack pointer is a valid memory address.
7131
7132 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
7133
7134         * calls.c: re-install Mar 16 emit_library_call merge.
7135
7136 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
7137
7138         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
7139         we cannot be sure that if reload_completed base register will
7140         be properly aligned.
7141
7142 2000-03-21  Richard Henderson  <rth@cygnus.com>
7143
7144         * flow.c (delete_block): Fix typo last change.
7145
7146 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
7147
7148         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
7149         not COMPLETE_TYPE_P, to check the type of the expression.
7150
7151 2000-03-21  Michael Meissner  <meissner@redhat.com>
7152
7153         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
7154         all floating point insns that just tested the macro
7155         TARGET_HAS_XFLOATING_LIBS.
7156         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
7157         used to only use the gprs.
7158
7159 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
7160
7161         * tree.h (COMPLETE_TYPE_P): New macro.
7162         (COMPLETE_OR_VOID_TYPE_P): New macro.
7163         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
7164         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
7165         * c-aux-info.c (gen_type): Use them.
7166         * c-common.c (c_expand_expr_stmt): Likewise.
7167         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
7168         grokdeclarator, grokparms, finish_struct, start_function,
7169         store_parm_decls, combine_parm_decls): Likewise.
7170         * c-parse.y (cast_expr): Likewise.
7171         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
7172         c_size_in_bytes, c_alignof, build_component_ref,
7173         build_indirect_ref, build_array_ref, convert_arguments,
7174         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
7175         * calls.c (initialize_argument_information): Likewise.
7176         * convert.c (convert_to_integer): Likewise.
7177         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
7178         * dwarfout.c (location_or_const_value_attribute,
7179         output_enumeration_type_die, output_structure_type_die,
7180         output_union_type_die, output_type): Likewise.
7181         * expr.c (safe_from_p, expand_expr): Likewise.
7182         * function.c (assign_parms): Likewise.
7183         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
7184         * tree.c (build_array_type, build_function_type,
7185         build_method_type, build_offset_type, build_complex_type): Likewise.
7186         * c-parse.c, c-parse.h: Regenerated.
7187
7188 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7189
7190         * config/c4x/rtems.h: Include config/rtems.h.
7191
7192 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
7193
7194         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
7195         decl is a FUNCTION_DECL
7196
7197 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
7198
7199         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
7200         function uses output registers.  Don't save RP for leaf functions.
7201         Do save RP even if no epilogue.
7202         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
7203         (CALL_USED_REGISTERS): Unmark in registers.
7204         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
7205         to near the middle.
7206
7207 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
7208
7209         * config/rs6000/rs6000.md (bunordered): New expander.
7210         (bordered): New expander.
7211         (buneq): New expander.
7212         (bunge): New expander.
7213         (bungt): New expander.
7214         (bunle): New expander.
7215         (bunlt): New expander.
7216         (bltgt): New expander.
7217
7218         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
7219         (ccr_bit_negated_p): New function.
7220         (print_operand): For %C, generate appropriate cror for UNEQ,
7221         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
7222
7223 2000-03-20  Andreas Jaeger  <aj@suse.de>
7224
7225         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
7226         warning.
7227
7228         * tree.h (safe_for_unsave): Prototype.
7229
7230 2000-03-20  Richard Henderson  <rth@cygnus.com>
7231
7232         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
7233         (combine_stack_adjustments_for_block): Don't allow sp references
7234         in the side of a set we're not fixing up.
7235         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
7236         after life_analysis.
7237
7238 2000-03-20  Richard Henderson  <rth@cygnus.com>
7239
7240         * calls.c (expand_call): Don't bother generating tail call
7241         sequences if there are pending cleanups.  Use
7242         expand_start_target_temps/expand_end_target_temps to elide
7243         cleanups created during sibcall expansion.
7244
7245 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
7246
7247         * configure.in: Set $IFS to a value if it doesn't already have one
7248         in the --enable-checking handling.
7249         * configure: Regenerate.
7250
7251 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7252
7253         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
7254         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
7255         Regenerated.
7256
7257 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
7258
7259         * jump.c (delete_noop_moves): Remove code attempting to
7260         combine stack adjustments.
7261
7262 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7263
7264         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
7265         * except.c (emit_cleanup_handler): Use them.
7266         (expand_end_all_catch): Likewise.
7267         * function.c (fixup_var_refs): Likewise.
7268         (expand_function_end): Clear catch_clauses_last.
7269         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
7270         * except.h (struct eh_status): New field x_catch_clauses_last.
7271         (catch_clauses_last): New define.
7272
7273         * Makefile.in (tree.o): Depend on HASHTAB_H.
7274         * tree.c: Include hashtab.h.
7275         (struct type_hash): Remove next field.
7276         (TYPE_HASH_SIZE): Remove.
7277         (TYPE_HASH_INITIAL_SIZE): New define.
7278         (type_hash_table): Change type to htab_t.
7279         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
7280         mark_hash_entry): New functions.
7281         (init_obstacks): Allocate type hash.
7282         (type_hash_lookup): Use htab functions.
7283         (type_hash_add, mark_type_hash): Likewise.
7284         (dump_tree_statistics): Call print_type_hash_statistics.
7285
7286 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7287
7288         * rs6000/t-aix41: New file.
7289
7290         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
7291
7292 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
7293
7294         * tm.texi (Driver): Fix typos and tweak entry for
7295         INCLUDE_DEFAULTS.
7296         Move misplaced STRUCT_FORCE_BLK entry ...
7297         (Storage Layout): ... to here.
7298         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
7299
7300 2000-03-19  Richard Henderson  <rth@cygnus.com>
7301
7302         * flow.c (delete_block): Delete the addr_vec along with the block.
7303         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
7304         reference labels.
7305
7306         * fold-const.c (extract_muldiv): Apply type check for defined
7307         overflow to multiply as well as divide.
7308
7309         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
7310
7311 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
7312
7313         * emit-rtl.c (remove_unncessary_notes): Check that all
7314         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
7315         associated NOTE_BLOCK.
7316         * function.h (identify_blocks): Update comments.
7317         (reorder_blocks): Declare.
7318         * function.c (identify_blocks): Don't take paramters.
7319         (reorder_blocks): Don't take parameters.
7320         * loop.h (find_loop_tree_blocks): Remove.
7321         (unroll_block_trees): Likewise.
7322         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
7323         reorder_blocks instead of unroll_block_trees.h
7324         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
7325         * stmt.c (find_loop_tree_blocks): Remove.
7326         (unroll_block_trees): Likewise.
7327         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
7328         in whole-function mode.
7329         * tree.h (reorder_blocks): Remove declaration.
7330
7331         * expr.c: Include intl.h.
7332         * Makefile.in (expr.o): Depend on intl.h.
7333
7334 2000-03-18  Richard Henderson  <rth@cygnus.com>
7335
7336         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
7337
7338 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
7339
7340         * tree.h (tree_index): Remove enumerals for integer types.
7341         (integer_type_kind): New type.
7342         (integer_types): New variable.
7343         (char_type_node): Adjust.
7344         (signed_char_type_node): Likewise.
7345         (unsigned_char_type_node): Likewise.
7346         (short_integer_type_node): Likewise.
7347         (short_unsigned_type_node): Likewise.
7348         (integer_type_node): Likewise.
7349         (unsigned_type_node): Likewise.
7350         (long_integer_type_node): Likewise.
7351         (long_unsigned_type_node): Likewise.
7352         (long_long_integer_type_node): Likewise.
7353         (long_long_unsigned_type_node): Likewise.
7354         * tree.c (integer_types): New variable.
7355         (init_obstacks): Register it as a root.
7356
7357 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
7358
7359         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
7360         NEXT_INSN. Update last insn in chain.
7361
7362 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
7363
7364         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
7365         with TYPE_DECL_SUPPRESS_DEBUG set.
7366
7367 2000-03-18  Richard Henderson  <rth@cygnus.com>
7368
7369         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
7370
7371 2000-03-18  Richard Henderson  <rth@cygnus.com>
7372
7373         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
7374         care for HALF_PIC_P.
7375         (expander_call_insn_operand): Remove.
7376         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
7377         * i386.h (PREDICATE_CODES): Update.
7378         * i386.md (all call expanders): Remove predicates, remove special
7379         handling for half-pic.
7380         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
7381         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
7382         (sibcall_epilogue): New.
7383
7384 2000-03-17  Richard Henderson  <rth@cygnus.com>
7385
7386         * rtlanal.c (single_set): Reject if the parallel has anything
7387         except SET or USE or CLOBBER.
7388
7389 2000-03-17  Jeff Law  <law@cygnus.com>
7390             Richard Henderson  <rth@cygnus.com>
7391
7392         * Makefile.in (OBJS): Add sibcall.o.
7393         (sibcall.o): New.
7394         * sibcall.c: New file.
7395         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
7396         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
7397         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
7398         Emit sibcall patterns when requested.  Update all callers.
7399         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
7400         elimination seems feasable.
7401         * final.c (leaf_function_p): Sibling calls don't discount being
7402         a leaf function.
7403         * flow.c (HAVE_sibcall_epilogue): Provide default.
7404         (find_basic_blocks_1): Sibling calls don't throw.
7405         (make_edges): Make edge from sibling call to EXIT.
7406         (propagate_block): Don't remove sibcall_epilogue insns.
7407         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
7408         (sibcall_epilogue): New.
7409         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
7410         (identify_blocks_1): Likewise.  Break out from ...
7411         (identify_blocks): ... here.
7412         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
7413         (reorder_blocks): ... here.
7414         (init_function_for_compilation): Zap prologue/epilogue as varrays.
7415         (record_insns): Extend a varray instead of mallocing new memory.
7416         (contains): Read a varray not array of ints.
7417         (sibcall_epilogue_contains): New.
7418         (thread_prologue_and_epilogue_insns): Emit and record
7419         sibcall_epilogue patterns.
7420         (init_function_once): Allocate prologue/epilogue varrays.
7421         * genflags.c (gen_insn): Treat sibcall patterns as calls.
7422         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
7423         Broken out from ...
7424         (save_for_inline_nocopy): ... here.
7425         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
7426         Broken out from ...
7427         (expand_inline_function): ... here.
7428         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
7429         (subst_constants): Handle 'n' formats.
7430         * jump.c (jump_optimize_minimal): New.
7431         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
7432         optimizations if it's set.
7433         * rtl.c (copy_rtx): Do copy jump & call for insns.
7434         * rtl.h (struct rtx_def): Document use of jump and call for insns.
7435         (SIBLING_CALL_P): New.
7436         (sibcall_use_t): New.
7437         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
7438         Invoke optimize_sibling_and_tail_recursive_calls.
7439         * tree.c (lang_safe_for_unsave): New.
7440         (safe_for_unsave): New.
7441         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
7442
7443         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
7444         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
7445         (*sibcall_osf_1, *sibcall_value_osf_1): New.
7446
7447 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
7448
7449         * objc/objc-act.c (encode_method_prototype): Pass types, not
7450         PARM_DECLs, to int_size_in_bytes.
7451
7452 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
7453
7454         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
7455
7456         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
7457         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
7458
7459 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7460
7461         * Clean up usages of TREE_INT_CST_LOW.
7462         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
7463         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
7464         Regenerated.
7465         * c-tree.h (min_precision): Move declaration to here.
7466         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
7467         (build_unary_op, add_pending_init): Use bit_position.
7468         (pending_init_member, process_init_element): Likewise.
7469         (really_start_incremental_init, push_init_level, pop_init_level):
7470         Don't make copies of nodes or modify them in place, use consistent
7471         types when tracking positions, and use tree routines computations.
7472         (set_init_index, output_init_element): Likewise.
7473         (output_pending_init_elements, process_init_element): Likewise.
7474         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
7475         tree_low_cst and int_bit_position; also minor cleanup.
7476         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
7477         (print_cst_octal): Precision is unsigned.
7478         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
7479         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
7480         (simple_type_align_in_bits): Result is unsigned int.
7481         Use tree_int_low_cst and host_integerp.
7482         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
7483         (field_byte_offset): Result is HOST_WIDE_INT.
7484         Change types of internal variables so alignments are unsigned int,
7485         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
7486         Use host_integerp, tree_low_cst, and int_bit_position.
7487         (add_bit_offset_attribute): Likewise.
7488         (add_data_member_location_attribute): Use tree_cst_low.
7489         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
7490         (add_bit_size_attribute): Use tree_low_cst.
7491         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
7492         * dwarfout.c: Similar changes to dwarf2out.c.
7493         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
7494         * genoutput.c (n_occurences): Return -1 for null string.
7495         (strip_whitespace): Accept null string and make into function.
7496         (scan_operands): Reflect above changes.
7497         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
7498         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
7499         * ssa.c (rename_registers): Add missing cast of arg to bzero.
7500         * tree.c (int_size_in_bytes): Check for too big to represent.
7501         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
7502         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
7503         New declarations.
7504         (min_precision): Delete from here.
7505         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
7506         and int_bit_position.
7507         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
7508         (encode_method_def): Likewise.
7509         (build_ivar_list_initializer): Use int_bit_position.
7510         (generate_shared_structures): Convert size.
7511         (encode_type, encode_complete_bitfield): Use integer_zerop.
7512         (encode_bitfield): Use tree_low_cst and int_bit_position.
7513
7514 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7515
7516         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
7517
7518 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7519
7520         * call.c (special_function_p): It is only malloc if it returns
7521         Pmode.
7522
7523 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7524
7525         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
7526         (C33_FLAG, TARGET_C3X): Add macros.
7527         (TARGET_SWITCHES): Add -m33 option.
7528         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
7529
7530 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7531
7532         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
7533         (PARALLEL_PACK_FLAG): Delete.
7534         (TARGET_SWITCHES): Update.
7535         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
7536
7537 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7538
7539         * fold-const.c (fold): Fix a few cases when the returned result
7540         is not of the same type as the input.
7541
7542 2000-03-16  Nick Clifton  <nickc@cygnus.com>
7543
7544         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
7545         warning.
7546
7547 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7548
7549         * libgcc2.h: Move prototypes above macros with the same name.
7550         Wrap some function prototypes in the conditional which indicates
7551         whether they are supported, i.e. "BITS_PER_UNIT == 8".
7552
7553 2000-03-16  Richard Henderson  <rth@cygnus.com>
7554
7555         * calls.c: Revert last two changes.
7556
7557 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
7558
7559         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
7560         has exponent 0 is a zero.
7561
7562         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
7563         HASH may already be nonzero.  Add code/mode into hash value
7564         immediately after repeat label.
7565         (cselib_lookup): Don't leave the hash table in an inconsistent
7566         state before a hash lookup operation.
7567
7568 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
7569
7570         * i386.md (all HI and QI mode non-move patterns):  Conditionize
7571         by TARGET_[HQ]IMODE_MATH.
7572         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
7573         x86_promote_qi_regs): Declare.
7574         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
7575         TARGET_PROMOTE_QI_REGS): New macros.
7576         (PROMOTE_MODE): New macro.
7577         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
7578         x86_promote_qi_regs): New global variables.
7579
7580 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
7581
7582         * calls.c (emit_library_call_value_1): Break out from ...; handle
7583         VOIDmode function calls too.
7584         (emit_library_call_value): ... here.
7585         (emit_library_call): Implement by calling emit_library_call_value_1.
7586
7587 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
7588
7589         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
7590         Update arg_space_so_far on stack adjustments.
7591         (emit_library_call, emit_library_call_value): Likewise; take into
7592         account arg_space_so_far and pending_stack_adjust when calculcating
7593         the boundary.
7594
7595 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
7596
7597         * flow.c: Move all basic block reordering code into its own file.
7598         (create_basic_block): Externalize.
7599         * bb-reorder.c: New file. Copy all basic block reordering code from
7600         flow.c to this file.
7601         (reorder_basic_blocks): Fix fencepost error in for-loop.
7602         (reorder_basic_blocks): Remove braces from single statement for-loops.
7603         * basic-block.h: Add declaration for create_basic_block.
7604         * Makefile.in: Add rules for bb-reorder.o.
7605
7606 2000-03-16  Neil Booth  <NeilB@earthling.net>
7607
7608         * cppinit.c (handle_option):  Implement #unassert directive
7609         as -A- command line option.
7610         (print_help):  Update.
7611         * cpptexi.c:  Update.
7612
7613 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
7614
7615         * md.texi (Standard Names): Document `jump'.
7616
7617 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
7618
7619         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
7620         gotos.
7621
7622 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
7623
7624         Merge changes from newppc-branch onto trunk.
7625
7626         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
7627
7628         * rs6000.c (toc_hash_table): Update for new hash table functions.
7629         (toc_hash_function): Likewise.
7630         (toc_hash_eq): Likewise.
7631         (toc_hash_mark_entry): Likewise.
7632         (toc_hash_mark_table): Likewise.
7633         (output_toc): Likewise.
7634         (rs6000_add_gc_roots): Likewise.
7635
7636         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7637
7638         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
7639         (AR_FLAGS_FOR_TARGET): here.  New macro.
7640
7641         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
7642
7643         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
7644         fpmem_operand) Delete.
7645         (xer_operand) New.
7646         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
7647         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
7648         (rs6000_save_machine_status, rs6000_restore_machine_status,
7649         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
7650         references to above variables.
7651         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
7652         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
7653         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
7654         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
7655         (XER_REGNO_P, XER_REGNO): New.
7656         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
7657         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
7658         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
7659         XER_REGNO_P.
7660         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
7661         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
7662         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
7663
7664         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7665
7666         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
7667         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
7668         * rs6000.h: from here.
7669
7670         * rs6000-protos.h (rs6000_select_section): Provide prototype.
7671         (rs6000_select_rtx_section): Likewise.
7672         (rs6000_encode_section_info): Likewise.
7673         (sdata_section): Likewise.
7674         (sdata2_section): Likewise.
7675         (sbss_section): Likewise.
7676         * sysv4.h (rs6000_select_section): Delete prototype.
7677         (rs6000_select_rtx_section): Likewise.
7678         (rs6000_encode_section_info): Likewise.
7679         (sdata_section): Likewise.
7680         (sdata2_section): Likewise.
7681         (sbss_section): Likewise.
7682         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
7683
7684         * sysv4.h: Delete various unnecessary #undef's and put a comment
7685         on the remaining ones.
7686         Change various comments according to coding standard.
7687
7688         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
7689
7690         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
7691         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
7692         (CR0_REGNO_P) Remove.
7693         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
7694         setup_incoming_varargs, mtcrf_operation, print_operand,
7695         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
7696         Use the above macros.
7697
7698         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
7699
7700         * config/rs6000/rs6000.md: Added a new alternative for each
7701         pattern that had a 'x' alternative but no 'y' alternative.
7702         Added a new split for each of the above patterns.
7703
7704         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
7705
7706         * aix41.h (ASM_CPU_SPEC): Delete.
7707         (CPP_CPU_SPEC): Delete.
7708
7709         * aix.h (RS6000_OUTPUT_BASENAME): Define.
7710         (ASM_OUTPUT_LABEL): Define.
7711         (ASM_GLOBALIZE_LABEL): Define.
7712         (STRIP_NAME_ENCODING): Define.
7713         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
7714         (STRIP_NAME_ENCODING): Don't define.
7715         (ASM_OUTPUT_LABEL): Don't define.
7716         (ASM_GLOBALIZE_LABEL): Don't define.
7717         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
7718         names, and ASM_OUTPUT_LABEL to output labels, rather than
7719         asm_fprintf.
7720         (ASM_OUTPUT_LABEL): Define.
7721         (ASM_OUTPUT_INT): Use assemble_name.
7722         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
7723         (STRIP_NAME_ENCODING): Don't undefine first.
7724         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
7725         ELF.
7726         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
7727         specified with 'asm' even with -fleading-underscore.
7728         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
7729         (output_epilog): Likewise.
7730         (output_toc): Likewise.
7731         * tramp.asm: Handle -fleading-underscore correctly.
7732
7733         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
7734         -mminimal-toc.
7735         (nonlocal_goto_receiver): Delete.
7736         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
7737
7738         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
7739         (SET_ASM_OP): Define.
7740         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
7741
7742         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
7743         (ASM_LONG): Define.
7744
7745         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
7746         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
7747
7748         * rs6000.h: Add 'u' to more constants.
7749
7750         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
7751
7752         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
7753
7754         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
7755
7756         * rs6000.c (reg_or_u_cint_operand): New function.
7757         (logical_operand): Handle 64-bit hosts.
7758         (logical_u_operand): New function.
7759         (non_logical_cint_operand): Handle 64-bit hosts.
7760         (non_logical_u_cint_operand): New function.
7761         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
7762         (PREDICATE_CODES): Define new functions.
7763         * rs6000-protos.h: Declare new functions.
7764         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
7765         (movdi_64): Bracket code intended for 64-bit hosts.  Create
7766         CONST_DOUBLE for 32-bit values.
7767         (scc insns): Generate DImode compares.
7768         (mfcr insns): Create DImode versions.
7769         (sge matchers): New patterns.
7770
7771         2000-02-15  Gabriel Paubert  <paubert@iram.es>
7772
7773         * rs6000.md: Correct instructions length attributes and
7774         constraints on unsigned compare instructions.
7775         (*ne0): Disable for PowerPC64.
7776
7777         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
7778
7779         * rs6000.c (output_function_profiler): Use .long for a 32-bit
7780         quantity, fix profile1.C test failure under -fPIC.
7781
7782         * rs6000.c: Add 'u' to many constants to suppress warnings.
7783         (constant_pool_expr_1): Make static.
7784         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
7785         * rs6000.h: Add 'u' to many constants to suppress warnings.
7786
7787         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
7788         for the start of the TOC, instead of LCTOC..0.
7789         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
7790         of the TOC.
7791         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
7792         (load_toc_aix_di): Use LCTOC..1.
7793
7794         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
7795         * rs6000.c (rs6000_legitimize_address): New function from
7796         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
7797         symbols in the constant pool that really are TOC references.
7798         (print_operand_address): For ELF, write TOC offsets under
7799         -fPIC as subtractions in the insn.
7800         (output_toc): For ELF, define symbols in TOC as normal labels,
7801         to match RTL.
7802         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
7803         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
7804         (create_TOC_reference): Prototype only when RTX_CODE is defined.
7805         * rs6000.md (movsi): Only use create_TOC_reference on
7806         symbols in the constant pool that really are TOC references.
7807
7808         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
7809         * rs6000.c (rs6000_reorg): Delete.
7810         * rs6000-protos.h (rs6000_reorg): Delete.
7811
7812         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
7813
7814         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
7815
7816         * aix.h (SETUP_FRAME_ADDRESSES): Define.
7817         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
7818         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
7819         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
7820         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
7821         rs6000_aix_emit_builtin_unwind_init.
7822         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
7823         rs6000_emit_eh_toc_restore on AIX.
7824         (return_eh_si): Use r2.
7825         (return_eh_di): Use r2.
7826
7827         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
7828         since we're breaking binary compatibility anyway.
7829
7830         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
7831
7832         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
7833         constant_pool_expr_p): Declare them.
7834         (constant_pool_expr_p): Declare it.
7835         * config/rs6000/rs6000.c (toc_label_name): Define.
7836         (rs6000_override_options): Set toc_label_name.
7837         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
7838         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
7839         uses_TOC): New functions.
7840         (print_operand): Delete old '*' case.
7841         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
7842         and strip off rtl for TOC before calling output_addr_const.
7843         (rs6000_emit_load_toc_table): Use toc_label_name.
7844         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
7845         the default.
7846         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
7847         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
7848         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
7849         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
7850         into explicit TOC_REGISTER offsets.
7851         (TOC_REGISTER): New macro.
7852         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
7853         TARGET_TOC to reference TOC_REGISTER.
7854         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
7855         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
7856         uses_TOC before emitting label references.
7857
7858         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
7859
7860         * rs6000.md (stack_tie): Fix warning.
7861
7862         * eabi-ctors.c: Use 'asm' names for the start/end variables,
7863         to handle -fleading-underscore.
7864         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
7865         (USER_LABEL_PREFIX): New macro.
7866         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
7867         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
7868         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
7869         call-linux can use the same multilibs.
7870         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
7871         and call-linux multilibs.  Do multilib with -fleading-underscore.
7872         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
7873         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
7874         to call-aix.
7875
7876         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
7877         have MASK_SOFT_FLOAT set.
7878         (CPP_FLOAT_DEFAULT_SPEC): New macro.
7879         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
7880         CPP_FLOAT_DEFAULT_SPEC.
7881
7882         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
7883         * rs6000.md: Whitespace change.
7884         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
7885         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
7886
7887         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
7888
7889         * rs6000.md (eh_epilogue): New expander.
7890         (eh_reg_restore): New expand/split/insn combination.
7891         (return_eh_si): New insn.
7892         (return_eh_di): New insn.
7893
7894         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
7895         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
7896         * eabi-ctors.c (__do_global_ctors): Register this object's
7897         frame.  Clean up.  Call atexit() after the constructors.
7898         (__do_global_dtors): Deregister this object's frame.  Clean up.
7899         Allow for recursive calls to exit().
7900         * rs6000.c (fixuplabelno): New variable.
7901         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
7902         TARGET_RELOCATABLE, it slows down exec() under linux.
7903         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
7904
7905         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
7906         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
7907         (ASM_OUTPUT_DWARF_DELTA2): New macro.
7908         (ASM_OUTPUT_DWARF_DELTA4): New macro.
7909         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
7910         (ASM_OUTPUT_DWARF_ADDR): New macro.
7911         (ASM_OUTPUT_DWARF_DATA4): New macro.
7912         (ASM_OUTPUT_DWARF_DATA2): New macro.
7913         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
7914         (ASM_OUTPUT_DWARF_OFFSET): New macro.
7915         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
7916
7917         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
7918
7919         * rs6000.c (rs6000_sr_alias_set): New variable.
7920         (rs6000_override_options): Initialise rs6000_sr_alias_set.
7921         (rs6000_emit_stack_tie): New function.
7922         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
7923         in a way that dwarf2out can understand.
7924         (rs6000_frame_related): New function.
7925         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
7926         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
7927         Use rs6000_emit_stack_tie when needed.
7928         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
7929         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
7930         * rs6000.md (stack_tie): New insn.
7931         (return_internal_si): Allow return value to be in the count
7932         register.
7933         (return_internal_di): Likewise.
7934
7935         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
7936
7937         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
7938
7939         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
7940
7941         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
7942
7943         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
7944
7945         * rs6000.md (stmw): Use the right POWER opcode.
7946         (lmw): Likewise.
7947
7948         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7949
7950         * rs6000-protos.h: New file.
7951
7952         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
7953
7954         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
7955         warnings.
7956
7957         * sysv4.h: Likewise.
7958
7959         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
7960
7961         * ../../configure.in: Delete powerpcle-*-winnt*
7962         and powerpcle-*-pe|powerpcle-*-cygwin*.
7963         * ../../configure: Regenerated.
7964         * cygwin.h: Delete.
7965         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
7966         (TARGET_WINDOWS_NT): Delete.
7967         (ABI_NT): Delete.
7968         (CALL_NT_DLLIMPORT): Delete.
7969         Delete NT-specific code.
7970         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
7971         * win-nt.h: Delete.
7972         * t-winnt: Delete.
7973         * nt-ci.asm: Delete.
7974         * nt-cn.asm: Delete.
7975         * ntstack.asm: Delete.
7976
7977         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7978
7979         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
7980         (ASM_FILE_START): Likewise.
7981         (ASM_DECLARE_FUNCTION_NAME): Likewise.
7982         (ASM_OUTPUT_LABELREF): Likewise.
7983         (ASM_OUTPUT_SKIP): Likewise.
7984         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
7985         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
7986         (ASM_OUTPUT_CASE_LABEL): Likewise.
7987         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
7988         (ASM_OUTPUT_ASCII): Likewise.
7989
7990         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
7991
7992         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
7993         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
7994         increment rs6000_pic_labelno here.
7995         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
7996         and increment rs6000_pic_labelno here.
7997
7998         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
7999
8000         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
8001         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
8002         allocation knows (reg) is dead before the insn.
8003
8004         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
8005
8006         * rs6000.md (movsi_to_cr): Correct typo in output template.
8007
8008         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
8009
8010         * rs6000.c (rs6000_pic_labelno): Always define.
8011         (rs6000_pic_func_labelno): Delete.
8012         (lmw_operation): Check for a zero base register,
8013         which doesn't mean what we want.
8014         (stmw_operation): New function.
8015         (print_operand): Define new 'l' modifier.
8016         (rs6000_stack_info): We must save all 64 bits of the registers
8017         if TARGET_POWERPC64.
8018         (rs6000_output_load_toc_table): Delete.
8019         (rs6000_emit_load_toc_table): New function.
8020         (rs6000_allocate_stack_space): Delete.
8021         (rs6000_emit_allocate_stack): New function.
8022         (rs6000_emit_prologue): New function.
8023         (output_prolog): Use rs6000_emit_prologue.
8024         (rs6000_emit_epilogue): Change a few variable names to be
8025         more accurate.  Restore all 64 bits of the registers if
8026         TARGET_POWERPC64.  Only restore the FP registers which were used
8027         if they are being saved/restored one-at-a-time.
8028         (output_mi_thunk): Delete inefficient code generation.
8029         (output_function_profiler): Don't use rs6000_output_load_toc_table.
8030         * rs6000.h: Declare rs6000_emit_load_toc_table,
8031         rs6000_allocate_stack_space, stmw_operation.  Don't declare
8032         rs6000_output_load_toc_table.
8033         * rs6000.md (elf_high): Allow register 0, but discourage it
8034         heavily.
8035         (elf_low): Support loading into register 0.
8036         (load_toc_aix_si): New pattern.
8037         (load_toc_aix_di): New pattern.
8038         (load_toc_v4_pic_si): New pattern.
8039         (load_toc_v4_pic_di): New pattern.
8040         (load_toc_v4_PIC_1): New pattern.
8041         (load_toc_v4_PIC_1b): New pattern.
8042         (load_toc_v4_PIC_2): New pattern.
8043         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
8044         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
8045         (prologue): New expander.
8046         (movesi_from_cr): New pattern.
8047         (stmw): New pattern.
8048         (save_fpregs_si): New pattern.
8049         (save_fpregs_di): New pattern.
8050
8051         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8052
8053         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
8054         (movdi): Likewise.
8055         (movhi): Likewise.
8056         (movqi): Likewise.
8057
8058         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8059
8060         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
8061         at present.
8062         (movsi_got_internal): Likewise.
8063         (movsi_got_internal+1): Likewise.
8064         (set_sp): 'unspec 7' does a SImode clobber.
8065
8066         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8067
8068         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
8069         allocate a stack temporary.
8070         (floatsidf2_internal): Likewise.
8071         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
8072         with unspec.
8073         (floatunssidf2): Don't use the fpmem "register", just
8074         allocate a stack temporary.
8075         (floatunssidf2_internal): Likewise.
8076         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
8077         with unspec.
8078         (floatsidf2_loadaddr): Delete.
8079         (floatsidf2_store1): Delete.
8080         (floatsidf2_store2): Delete.
8081         (floatsidf2_load): Delete.
8082         (fix_truncdfsi2): Don't use the fpmem "register", just
8083         allocate a stack temporary.
8084         (fix_truncdfsi2_internal_si): Delete.
8085         (fix_truncdfsi2_internal_di): Delete.
8086         (fix_truncdfsi2_internal): New insn.
8087         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
8088         (fix_truncdfsi2_store): Delete.
8089         (fix_truncdfsi2_load): Delete.
8090         (fctiwz): Produce gen_fctiwz.
8091
8092         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
8093
8094         * eabi.h (INVOKE__main): Define.
8095         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
8096         specially.
8097         (rs6000_emit_prologue): Likewise.
8098         * rs6000.h (struct rs6000_stack): Don't keep track of whether
8099         this is the main program.
8100
8101         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8102
8103         * rs6000.c (rs6000_va_arg): Delete some unused variables.
8104
8105         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
8106
8107         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
8108         goes after the argument.
8109
8110         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8111
8112         * rs6000.md: Document 'unspec' values used.
8113         (epilogue): New expander.
8114         (movesi_to_cr_one): New expander.
8115         (movesi_to_cr and following): New pattern.
8116         (lmw): New pattern.
8117         (return_internal_si): New pattern.
8118         (return_internal_di): New pattern.
8119         (return_and_restore_fpregs_si): New pattern.
8120         (return_and_restore_fpregs_di): New pattern.
8121         * rs6000.h: Declare new functions.
8122         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
8123         rather than rs6000_calls_p.
8124         (rs6000_makes_calls): Delete.
8125         (lmw_operation): New function.
8126         (mtcrf_operation): New function.
8127         (rs6000_emit_epilogue): New function.
8128         (output_epilog): Call rs6000_emit_epilogue and final if
8129         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
8130
8131         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8132
8133         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
8134         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
8135         * aix.h (SUBTARGET_SWITCHES): Document switches.
8136         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
8137         sched-prolog and sched-epilog the same.  Document all the
8138         switches.
8139         (TARGET_OPTIONS): No longer allow -mdebug-.
8140
8141         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
8142
8143         * rs6000.h (ASM_FILE_END): Move to aix.h.
8144         (EXTRA_SECTIONS): Move to aix.h.
8145         (READONLY_DATA_SECTION): Move to aix.h.
8146         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
8147         (SELECT_SECTION): Move to aix.h.
8148         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
8149         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
8150         (LINK_REGISTER_REGNUM): New definition.
8151         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
8152         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
8153         AIX and SVR4.
8154         * sysv4.h: Delete the code between the inclusion of rs6000.h
8155         and svr4.h.
8156         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
8157         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
8158         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
8159         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
8160         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
8161         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
8162         (fix_truncdfsi2_internal_di): New pattern.
8163         (fix_truncdfsi2_store): The second arg here is Pmode too.
8164         (fix_truncdfsi2_load): The second arg here is Pmode too.
8165         (tablejumpdi): Now that switch tables hold only SImode values,
8166         gcc needs to know how to add them to the pc which is DImode.
8167         * rs6000.c (rs6000_stack_info): Use symbolic name for
8168         LINK_REGISTER_REGNUM.
8169         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
8170         (output_toc): Delete unused variables s1 and s2.
8171         (output_ascii): Use fputs not fprintf on a variable string.
8172
8173         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
8174
8175         * rs6000.c (processor_target_table): Add power3 as alias for 630.
8176         * aix43.h: Revert Aug 2 change.
8177         (HAS_INIT_SECTION): Define, not visible yet.
8178         (LD_INIT_SWITCH): Define, not visible yet.
8179         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
8180
8181         2000-01-04  Joel Sherrill (joel@OARcorp.com>
8182
8183         * config/rs6000/rtems.h: Include config/rtems.h.
8184
8185         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
8186
8187         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
8188         (SLOW_UNALIGNED_ACCESS): Define.
8189         (CASE_VECTOR_MODE): Always use 32-bit offsets.
8190         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
8191         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
8192         (toc_section): Likewise and .toc pseudo-op.
8193         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
8194         64-bit mode.
8195         (TEXT_SECTION_ASM_OP): Likewise.
8196         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
8197         32-bit offsets.
8198
8199         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
8200
8201         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
8202         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
8203         compiling libgcc2.
8204
8205         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8206
8207         * rs6000.h: Move more stuff from here...
8208         * aix.h: to here.
8209         * sysv4.h: Cleanup accordingly.
8210         * netware.h: Likewise
8211
8212         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8213
8214         * rs6000.h: Continue cleanup.
8215         * aix.h: Likewise.
8216         * lynx.h: Likewise.
8217         * netware.h: Likewise.
8218         * sol2.h: Likewise.
8219         * sysv4.h: Likewise.
8220         * win-nt.h: Likewise.
8221
8222         * rs6000.h (TARGET_SWITCHES): Add descriptions.
8223         (TARGET_OPTIONS): Likewise.
8224
8225         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
8226         (SUBTARGET_OPTIONS): Likewise.
8227
8228         * rs6000.md: Fix compile time warnings.
8229
8230         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8231
8232         vxworks patches from the Cygnus tree originally by
8233         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
8234         <vmakarov@cygnus.com>.
8235         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
8236         (ENDFILE_SPEC): Likewise.
8237         (LIB_VXWORKS_SPEC): New macro.
8238         (STARTFILE_VXWORKS_SPEC): New macro.
8239         (ENDFILE_VXWORKS_SPEC): New macro.
8240         (LINK_START_VXWORKS_SPEC): New macro.
8241         (LINK_OS_VXWORKS_SPEC): New macro.
8242         (CPP_OS_VXWORKS_SPEC): New macro.
8243         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
8244         * vxppc.h: Rewrite to use proper configuration method.
8245         * vxppcle.h: New file.
8246         * ../../configure.in: Add powerpcle-wrs-vxworks*.
8247         * ../../configure: Rebuilt.
8248
8249         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8250
8251         Lots of changes to rs6000.h, sysv4.h, aix.h,
8252         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
8253         with the aim that rs6000.h is the first header
8254         included and the others override it.
8255         * aix.h: New file.
8256
8257         * x-aix41-gld: Remove.
8258         * x-aix43: Remove.
8259         * x-aix41: Remove target-specific switches, and don't specify
8260         -Wl,-bbigtoc as we don't need it any more.
8261         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
8262         Use t-aix43 for AIX 4.3 and above.
8263         * ../../configure: Regenerated.
8264
8265         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
8266         options, that don't do anything yet.
8267         (MASK_SCHED_PROLOG): New macro.
8268         (MASK_SCHED_EPILOG): New macro.
8269         (TARGET_SCHED_PROLOG): New macro.
8270         (TARGET_SCHED_EPILOG): New macro.
8271
8272         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
8273
8274         * rs6000.c: Correct comment, the `minimal' TOCs are actually
8275         one per translation unit, not one per function.
8276         (output_toc): Also do duplicate constant elimination
8277         for per-translation-unit TOCs.
8278
8279         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
8280         a comment explaining _exactly_ when this pattern gets used.
8281         (builtin_setjmp_receiver): New pattern for better clarity.
8282         (init_v4_pic): Move it into a section dealing with TOC registers.
8283
8284         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
8285
8286         * rs6000.c (toc_hash_table): New variable.
8287         (rs6000_hash_constant): New function.
8288         (toc_hash_function): New function.
8289         (toc_hash_eq): New function.
8290         (toc_hash_mark_entry): New function.
8291         (toc_hash_mark_table): New function.
8292         (output_toc): Don't output duplicate TOC entries in
8293         a single file.
8294         (rs6000_add_gc_roots): Add the hash table as a GC root.
8295         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
8296         where they clearly shouldn't be.  This may need to be fixed
8297         later when there is a GNU ar for AIX.
8298         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
8299         Don't define BOOT_LDFLAGS as it is now not necessary.
8300
8301         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
8302
8303         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
8304         for va_list on AIX.  Use unsigned_char_type_node rather than
8305         constructing our own version on svr4.
8306
8307         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
8308
8309         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
8310         since patently it's not.
8311
8312         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
8313
8314         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
8315         define_expand/define_insn pair, and handle restore of the
8316         SVR4 -fpic register.
8317
8318 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
8319
8320         * acconfig.h (HAVE_GAS_WEAK): New define.
8321         * configure.in (assembler weak support): Check for .weak support.
8322         * config.in, configure: Rebuilt.
8323         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
8324         HAVE_GAS_WEAK is defined.
8325
8326 2000-03-15  Nick Clifton  <nickc@cygnus.com>
8327
8328         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
8329         asm_fprintf().
8330
8331 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
8332
8333         * cppfiles.c (open_include_file): New function.
8334         (find_include_file, cpp_read_file): Use it.
8335
8336 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
8337
8338         * cpphash.c (dump_hash_helper): Take the slot, not the element.
8339
8340 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
8341
8342         * flow.c (verify_flow_info): Check for unconditional return.
8343
8344 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
8345
8346         * config/ia64/ia64.md (restore_stack_nonlocal): New.
8347         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
8348         (__ia64_restore_stack_nonlocal): New.
8349         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
8350
8351 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8352
8353         * cpphash.c (collect_formal_parameters): Do not complain about
8354         parameter names that just start with `__VA_ARGS__'.
8355
8356 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
8357
8358         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
8359         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
8360         * i386.c (pentiumpro_cost): Set mul cost to 4.
8361         (x86_use_movx): Set for PPro.
8362
8363 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
8364
8365         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
8366         STACK_BOUNDARY for empty frames now.
8367
8368 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
8369
8370         * stor-layout.c (layout_union): Remove.
8371         (layout_union_field): New function, split out from layout_union.
8372         (finish_union_layout): Likewise.
8373         (layout_field): Handle unions by calling layout_union_field.
8374         (finish_record_layout): Handle unions.
8375         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
8376         QUAL_UNION_TYPE handling.
8377
8378 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
8379
8380         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
8381         end of basic block is jump_insn, not barrier; use create_basic_block
8382         instead of creating basic block by hand.
8383
8384 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
8385
8386         * flow.c (reorder_basic_blocks): Account for barriers when writing
8387         over NEXT_INSN (last_bb->end).
8388         (verify_flow_info): Add check for missing barriers.
8389
8390 2000-03-14  Greg McGary  <gkm@gnu.org>
8391
8392         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
8393         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
8394         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
8395         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
8396         __unbounded, __unbounded__): New keywords.
8397         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
8398         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
8399         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
8400
8401 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
8402
8403         * cselib.h: New file.
8404         * alias.c: Include "cselib.h".
8405         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
8406         MEMs as two new arguments.
8407         (get_addr): New static function.
8408         (find_base_term): Handle VALUEs.
8409         (memrefs_conflict_p): Likewise.
8410         (true_dependence): Call get_addr on the addresses.
8411         Call fixed_scalar_and_varying_struct_p with addresses that have been
8412         passed through get_addr and canon_rtx.
8413         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
8414         with true_dependence.
8415         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
8416         * loop.c: Include "cselib.h".
8417         (load_mems): Process extended basic block that enters the loop with
8418         cselib.  Use that information to change initialization of the shadow
8419         register so that a constant equivalence is seen by later passes.
8420         * reload1.c: Include "cselib.h".
8421         (reload_cse_invalidate_regno): Delete function.
8422         (reload_cse_mem_conflict_p): Likewise.
8423         (reload_cse_invalidate_mem): Likewise.
8424         (reload_cse_invalidate_rtx): Likewise.
8425         (reload_cse_regno_equal_p): Likewise.
8426         (reload_cse_check_clobber): Likewise.
8427         (reload_cse_record_set): Likewise.
8428         (reg_values): Delete static variable.
8429         (invalidate_regno_rtx): Likewise.
8430         (reload_cse_delete_noop_set): New static function.
8431         (reload_cse_simplify): New static function, broken out of
8432         reload_cse_regs_1.
8433         (reload_cse_noop_set_p): Delete unused argument INSN.
8434         Just call rtx_equal_for_cselib_p on set source and destination.
8435         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
8436         reload_cse_delete_noop_set.  Delete code to keep track of values; use
8437         cselib functions instead.  Delete code to push/pop obstacks.
8438         (reload_cse_simplify_set): Use cselib to find equivalent values.
8439         Delete code to push/pop obstacks.
8440         (reload_cse_simplify_operands): Likewise.
8441         * rtl.def (VALUE): New rtx code.
8442         * rtl.h (union rtunion_def): New elt rt_cselib.
8443         (X0CSELIB, CSELIB_VAL_PTR): New macros.
8444         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
8445         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
8446         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
8447         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
8448         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
8449         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
8450         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
8451         cselib_record_set, cselib_record_sets): New static functions.
8452         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
8453         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
8454         references_value_p): New functions.
8455         (MAX_USELESS_VALUES, REG_VALUES): New macros.
8456         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
8457         n_useless_values, reg_values, callmem, cselib_obstack,
8458         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
8459         New static variables.
8460         * varray.h (union varray_data_tag): New elt te.
8461         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
8462         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
8463         dependencies.
8464
8465 2000-03-14  Nick Clifton  <nickc@cygnus.com>
8466
8467         * gcc.c (do_spec_1): Catch the case where %* is used in a
8468         substitution pattern, but it has not been initialised.
8469         Issue a meaningful error message if an unrecognised operator
8470         is encountered in a spec string.
8471
8472 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
8473
8474         * function.c (prepare_function_start): Correctly initialize
8475         cfun->stack_alignment_needed.
8476
8477 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
8478
8479         * cppfiles.c (find_include_file): Don't assume nshort is a
8480         substring of name.
8481
8482 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
8483
8484         * configure.in (hppa configurations): Add pa32-regs.h to the
8485         list of tm files as appropriate.
8486         * configure: Rebuilt.
8487         * pa.c (compute_frame_size): Remove explicit knowledge about FP
8488         register numbering.
8489         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
8490         (fmpyaddoperands, fmpysuboperands): Likewise.
8491         * pa.h: Remove various definitions which depend on knowing
8492         how registers are numbered.
8493         * pa32-regs.h: New file with PA32 register numbering specific
8494         definitions.
8495
8496 2000-03-14  Richard Henderson  <rth@cygnus.com>
8497
8498         * regmove.c (combine_stack_adjustments): New.
8499         (stack_memref_p, single_set_for_csa): New.
8500         (free_csa_memlist, record_one_stack_memref): New.
8501         (try_apply_stack_adjustment): New.
8502         (combine_stack_adjustments_for_block): New.
8503         * rtl.h (combine_stack_adjustments): Declare.
8504         * toplev.c (rest_of_compilation): Call it.
8505
8506         * i386.md: Revert 2000-01-16 change.
8507
8508 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8509
8510         * gccbug.in: Add web category, gcc specific classes.
8511
8512 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
8513
8514         * stor-layout.c (finalize_record_size): Fix typo.
8515
8516 2000-03-14  Stan Shebs  <shebs@apple.com>
8517
8518         * c-typeck.c (c_alignof): Error on incomplete types.
8519         * extend.texi (Alignment): Document this.
8520
8521 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
8522
8523         * cppfiles.c: Include mkdeps.h.
8524         (find_include_file, read_include_file): Remove _cpp_ prefix
8525         from name, make static.
8526         (_cpp_execute_include): New function, broken out of
8527         do_include.
8528
8529         * cpplib.c: Don't include mkdeps.h.
8530         (struct directive): Remove type field. Reorder entries.  The
8531         function takes only one argument.
8532         (struct if_stack): Make type field an int.
8533         (directive_table): Rename to dtable.  Generate it, the
8534         prototypes of the directive handlers, and the enum for the
8535         directive numbers, from a template macro.
8536         (do_ifndef, do_include_next, do_import): New functions.
8537         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
8538         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
8539         do_ident, do_assert, do_unassert, do_sccs): Take only one
8540         argument.
8541         (do_sccs): Define always, but alter behavior based on
8542         SCCS_DIRECTIVE.
8543         (_cpp_handle_directive, consider_directive_while_skipping):
8544         Restructure for new directive table layout.
8545
8546         (pass_thru_directive): Take a directive number, not a pointer
8547         to a struct directive.
8548         (parse_include): New function, broken out of do_include.
8549         (do_include, do_import, do_include_next): Use parse_include
8550         and _cpp_execute_include.
8551         (do_elif, do_else): Test for T_ELSE specifically when checking
8552         for #elif/#else after #else.
8553         (parse_ifdef): New function, broken out of do_ifdef.
8554         (validate_else): Expect a name arg without a leading #.
8555         (if_directive_name): Delete.
8556         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
8557         directive handlers with only one argument.
8558
8559         * cpphash.h: Update prototypes.
8560         (enum node_type): Remove entries for directives.
8561         * Makefile.in: Update dependencies.
8562
8563         * cpphash.c (dump_hash_helper): Only dump nodes of type
8564         T_MACRO.  Emit a newline after each definition.
8565
8566 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8567
8568         * gccbug.in: New file.
8569         * configure.in (all_outputs): Add gccbug.
8570         * Makefile.in (install-common): Install gccbug.
8571         (GCCBUG_INSTALL_NAME): New variable.
8572         * configure: Rebuilt.
8573
8574 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
8575
8576         * function.c (put_var_into_stack): Use type_for_mode to calculate
8577         part_type.  Use MEM_SET_IN_STRUCT_P.
8578         * expr.c (store_field): Handle CONCAT.
8579         (store_constructor): Use fields_length.
8580         * tree.c (fields_length): New fn.
8581         * tree.h: Declare it.
8582
8583 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
8584
8585         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
8586         (cpplex.o): New target.
8587         * po/POTFILES.in: Add cpplex.c.
8588
8589         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
8590         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
8591         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
8592         skip_block_comment, skip_line_comment, skip_comment,
8593         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
8594         _cpp_parse_name, skip_string, parse_string,
8595         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
8596         _cpp_get_directive_token, find_position,
8597         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
8598         (maybe_macroexpand, _cpp_lex_token): New functions.
8599
8600         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
8601         parse_goto_mark): Delete.
8602         (_cpp_handle_eof): New function.
8603         (_cpp_handle_directive): Rename from handle_directive.
8604         (_cpp_output_line_command): Rename from output_line_command.
8605         (do_if, do_elif): Call _cpp_parse_expr directly.
8606         * cppfiles.c (_cpp_read_include_file): Don't call
8607         init_input_buffer here.
8608         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
8609         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
8610         here; pop the token_buffer and skip the rest of the line here.
8611         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
8612         here.
8613
8614         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
8615         Define here.
8616         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
8617         CPP_GOTO_MARK): New macros.
8618         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
8619         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
8620         _cpp_read_and_prescan, _cpp_init_input_buffer,
8621         _cpp_grow_token_buffer, _cpp_get_directive_token,
8622         _cpp_handle_directive, _cpp_handle_eof,
8623         _cpp_output_line_command): Prototype them here.
8624         * cpplib.h (enum cpp_token): Add CPP_MACRO.
8625         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
8626         quote_string, output_line_command): Remove.
8627
8628 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
8629
8630         * stmt.c (expand_end_case): RANGE may be signed, and when checking
8631         whether it is too large we must also verify that it isn't negative.
8632
8633 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
8634
8635         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
8636         (movsi_zero_liveg0): Remove.
8637         (movsf_insn_novis_liveg0): Remove.
8638         (negsi2): Remove.
8639         (negsi2_not_liveg0): Rename to negsi2.
8640         (one_cmplsi2): Remove.
8641         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
8642         (one_cmplsi2_liveg0): Remove.
8643         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
8644         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
8645         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
8646         (PREDICATE_CODES): Remove zero_operand.
8647         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
8648         TARGET_BROKEN_SAVERESTORE.
8649         (zero_operand): Remove.
8650         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
8651         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
8652         options.
8653         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
8654         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
8655         TARGET_BROKEN_SAVERESTORE): Remove.
8656         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
8657         Remove.
8658         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
8659         Remove.
8660         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
8661         Remove.
8662
8663         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
8664
8665 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
8666
8667         * cpplib.c (do_pragma_implementation): Fix off-by-one error
8668         truncating a string.  Don't assume tokens are nul terminated.
8669         Problem noted by Andreas Jaeger <aj@suse.de>
8670
8671 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
8672
8673         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
8674         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
8675         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
8676
8677 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
8678
8679         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
8680         STRUCTURE_SIZE_BOUNDARY.
8681
8682 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
8683
8684         * tree.h (record_layout_info_s): New structure.
8685         (record_layout_info): New type.
8686         (new_record_layout_info): New function.
8687         (layout_field): Likewise.
8688         (finish_record_layout): Likewise.
8689         * stor-layout.c (layout_record): Remove.
8690         (new_record_layout_info): New function.
8691         (layout_field): New function, broken out from layout_record.
8692         (finalize_record_size): Likewise.
8693         (compute_record_mode): Likewise.
8694         (finalize_type_size): New function, broken out from layout_type.
8695         (finish_record_layout): Likewise.
8696         (layout_type): Use them.
8697
8698 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
8699
8700         * cpphash.c: Don't include version.h.
8701         (special_symbol) [case T_VERSION]: Look for the string in
8702         hp->value.cpval; don't use version_string.
8703         * cppinit.c (initialize_builtins): Set hp->value.cpval for
8704         __VERSION__ to version_string.
8705         * Makefile.in (cpphash.o): Update deps.
8706
8707 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
8708
8709         Convert cpplib to use libiberty/hashtab.c.
8710
8711         * cpplib.h (struct cpp_reader): Make hashtab and
8712         all_include_files of type 'struct htab *'.  Delete HASHSIZE
8713         and ALL_INCLUDE_HASHSIZE macros.
8714
8715         * cpphash.h: Update prototypes.
8716         (struct hashnode): Remove next, prev, and bucket_hdr members.
8717         Make length a size_t.  Add hash member.
8718         (struct ihash): Remove next member.  Add hash member.  Make
8719         name a flexible array member.
8720
8721         * cppfiles.c: Include hashtab.h.
8722         (include_hash): Delete.
8723         (IHASHSIZE): New macro.
8724         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
8725         (cpp_included): Do the hash lookup here.
8726         (_cpp_find_include_file): Rewrite.
8727         (cpp_read_file): Put the "fake" hash entry into the hash
8728         table.  Honor the control_macro, if it turns out we've seen
8729         the file before.  Don't push the buffer here.
8730         (_cpp_read_include_file): Push the buffer here.
8731         (OMODES): New macro.  Use it whenever we call open(2).
8732
8733         * cpphash.c: Include hashtab.h.
8734         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
8735         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
8736         _cpp_lookup_slot): New functions.
8737         (HASHSIZE): new macro.
8738         (hashf, _cpp_install, _cpp_delete_macro): Delete.
8739         (_cpp_lookup): Use hashtab.h routines.
8740
8741         * cppinit.c: Include hashtab.h.
8742         (cpp_reader_init): Call _cpp_init_macro_hash and
8743         _cpp_init_include_hash.  Don't allocate hashtab directly.
8744         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
8745         pfile->all_include_files.
8746         (initialize_builtins): Use _cpp_make_hashnode and
8747         htab_find_slot to add hash entries.
8748         (cpp_finish): Just call _cpp_dump_macro_hash.
8749         * cpplib.c: Include hashtab.h.
8750         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
8751         create hash entries.
8752         (do_pragma_poison, do_assert): Likewise.
8753         (do_include): Don't push the buffer here.  Don't increment
8754         system_include_depth unless _cpp_read_include_file succeeds.
8755         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
8756         or htab_remove_elt.
8757         (do_pragma_implementation): Use alloca to create copy.
8758
8759         * Makefile.in: Update dependencies.
8760
8761 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8762
8763         * cppinit.c (cl_directive_handler): More K&R fixing.
8764
8765 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
8766
8767         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
8768         STACK_BOUNDARY.
8769         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
8770
8771 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8772
8773         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
8774         Change from char[] to macros.
8775
8776 2000-03-12  Neil Booth  <NeilB@earthling.net>
8777
8778         * cppinit.c (cpp_start_read): Update indirect function
8779         call to K&R C.
8780
8781 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
8782
8783         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
8784         entry.
8785
8786         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
8787         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
8788
8789 2000-03-11  Neil Booth  <NeilB@earthling.net>
8790
8791         * cppinit.c (struct pending option): Replace undef with a
8792         pointer to a directive handling routine.
8793         (struct cpp_pending): Replace separate assert_ and define_
8794         lists with one directive_ list.
8795         (new_pending_define): Rename new_pending_directive. Extra
8796         argument is the directive's handling routine.
8797         (handle_option): Update to use new_pending_directive.
8798
8799 2000-03-11  Neil Booth  <NeilB@earthling.net>
8800
8801         * cppfiles.c (file_cleanup, _cpp_find_include_file,
8802         remap_filename, _cpp_read_include_file, actual_directory,
8803         hack_vms_include_specification): Replace bcopy(), index() etc
8804         calls.  Add casts to some allocations.  Make some variables
8805         pointers to const [unsigned] char.
8806         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
8807         collect_formal_parameters): Similarly.
8808         * cppinit.c (struct pending_option, append_include_chain,
8809         cpp_options_init, cpp_reader_init, initialize_standard_includes,
8810         cpp_start_read, new_pending_define, handle_option): Similarly.
8811         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
8812         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
8813         do_pragma_implementation, detect_if_not_defined,
8814         do_ifdef, skip_if_group, cpp_get_token, parse_string,
8815         do_assert, do_unassert): Similarly.
8816         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
8817         function prototypes.
8818         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
8819
8820 2000-03-10  Richard Henderson  <rth@cygnus.com>
8821
8822         * builtins.c (expand_builtin_strlen): Revert last change.
8823         Use emit_insn_before if we're at the beginning of a sequence.
8824
8825 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
8826
8827         * builtins.c (expand_builtin_strlen): Make sure that we have something
8828         at the beginning of the sequence.
8829
8830         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
8831         deferred inlines.
8832
8833         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
8834
8835 2000-03-10  Richard Henderson  <rth@cygnus.com>
8836
8837         * except.c (can_throw): Use INTVAL on a CONST_INT.
8838         (reachable_handlers): Likewise.
8839         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
8840
8841 2000-03-10  Andreas Jaeger  <aj@suse.de>
8842
8843         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
8844         MD_STARTFILE_PREFIX since those are not needed on linux.
8845         (ASM_FILE_START): New, from mips/gnu.h.
8846
8847 2000-03-09  Richard Henderson  <rth@cygnus.com>
8848             Alex Samuel  <samuel@codesourcery.com> and others
8849
8850         * Makefile.in (ssa.o): New rule.
8851         (OBJS): Add ssa.o.
8852         (STAGESTUFF): Add *.ssa and *.ussa.
8853         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
8854         * rtl.def (PHI): New RTL expression.
8855         * rtl.h (clear_log_links): New declaration.
8856         (convert_to_ssa): Likewise.
8857         (convert_from_ssa): Likewise.
8858         * flow.c (split_edge): If the entry node falls through to the
8859         split edge's source block, split the entry edge.
8860         (clear_log_links): New function.
8861         * toplev.c (ssa_dump): New variable.
8862         (flag_ssa): Likewise.
8863         (f_options): Add "ssa".
8864         (compile_file): Create SSA dump files.
8865         (rest_of_compilation): Go to and from SSA if enabled.
8866         (decide_d_option): Handle -de for SSA dump files.
8867         * ssa.c: New file.
8868
8869 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
8870
8871         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
8872         same as VAR_DECL.
8873
8874 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
8875
8876         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
8877
8878 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
8879
8880         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
8881         (MD_STARTFILE_PREFIX_1): New macro.
8882
8883 2000-03-09  Robert Lipe  <robertl@sco.com>
8884
8885         * config/ia64/ia64.c: Include system.h.
8886
8887 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
8888
8889         * except.c (nothrow_function_p): If -fno-exceptions, just return.
8890         (init_eh_nesting_info): Likewise.
8891
8892         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
8893         (TREE_NOTHROW): Rename from TREE_RAISES.
8894         * toplev.c (rest_of_compilation): Set it.
8895         * print-tree.c (print_node): Adjust.
8896         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
8897         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
8898         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
8899         REG_EH_REGION note as appropriate.
8900         (libfunc_nothrow): New fn.
8901         (emit_library_call, emit_library_call_value): Use it.
8902         (expand_call): Check TREE_NOTHROW.
8903
8904         * varasm.c (make_decl_rtl): Skip initial '*' when setting
8905         DECL_ASSEMBLER_NAME.
8906
8907 2000-03-09  Andreas Jaeger  <aj@suse.de>
8908
8909         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
8910         (TARGET_MEM_FUNCTIONS): Define.
8911
8912 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
8913
8914         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
8915
8916         * except.c (can_throw): See through a SEQUENCE.
8917         (nothrow_function_p): New fn.
8918         * except.h: Declare it.
8919         * function.c (current_function_nothrow): New var.
8920         (prepare_function_start): Initialize it.
8921         * output.h: Declare it.
8922         * toplev.c (rest_of_compilation): Set it.
8923         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
8924
8925 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
8926
8927         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
8928         match.  (cpp_compare_defs): Count the nul separator when
8929         advancing over argument names.
8930
8931 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
8932
8933         * recog.c (preprocess_constraints): Matching constraints affect
8934         same alternative/different operand, not same operand/different
8935         alternative.
8936
8937         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
8938         register and a constant specially.
8939
8940 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8941
8942         * libgcc2.h: New file.
8943         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
8944
8945 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
8946
8947         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
8948         * configure: Regenerate.
8949         * config/ia64: New.
8950
8951 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
8952
8953         * Makefile.in (LIBCPP_DEPS): New macro.
8954         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
8955         it to declare deps.
8956         * cpperror.c: Include cpphash.h.
8957         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
8958         dingleberry.
8959         (lex): Don't use CPP_WARN_UNDEF.
8960         (_cpp_parse_expr): Return an int, the truth value.
8961         * cppfiles.c: Include cpphash.h.
8962         (_cpp_merge_include_chains): Move to cppinit.c and make static.
8963         * cppinit.c (include_defaults_array): Disentangle.
8964         (cpp_cleanup): Don't free the if stack here.
8965         (cpp_finish): Pop off all buffers, not just one.
8966         * cpplib.c (eval_if_expr): Return int.
8967         (do_xifdef): Rename do_ifdef.
8968         (handle_directive): Don't use CPP_PREPROCESSED.
8969         (cpp_get_token): Don't use CPP_C89.
8970         * fix-header.c: Don't use CPP_OPTIONS.
8971
8972         * cpplib.h: Move U_CHAR, enum node_type, struct
8973         file_name_list, struct ihash, is_idchar, is_idstart,
8974         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
8975         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
8976         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
8977         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
8978         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
8979         of _cpp_simplify_pathname, _cpp_find_include_file,
8980         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
8981         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
8982         cppinit.c.
8983         Change all uses of U_CHAR to be unsigned char instead.
8984         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
8985
8986 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
8987
8988         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
8989         (dwarf2out_begin_prologue): Set it.
8990         (output_call_frame_info): Don't emit EH unwind info for leaves.
8991
8992         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
8993         can occur outside of an EH region.
8994         * except.c: Correct comments about rethrow behavior.
8995         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
8996
8997 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
8998
8999         * flow.c (make_edges): Always call make_eh_edge for calls.
9000
9001 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
9002
9003         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
9004         (struct cpp_buffer): Remove fname and underflow fields.
9005         (struct cpp_reader): Remove get_token field.
9006         (struct include_hash): Rename to struct ihash.  Add typedef to
9007         IHASH.
9008         (struct if_stack): Remove fname field.
9009         (IF_STACK_FRAME): Rename to IF_STACK.
9010
9011         * cpperror.c (print_containing_files): Trust that there are no
9012         macro buffers below the top file buffer.
9013         * cppfiles.c: Replace all references to 'struct include_hash'
9014         with 'IHASH'.  Rename initialize_input_buffer to
9015         init_input_buffer.  Don't set or reference cpp_buffer->fname,
9016         use buffer->ihash->name instead.
9017         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
9018         not CPP_NULL_BUFFER.
9019         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
9020         IF_STACK_FRAME, IHASH not struct include_hash.
9021         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
9022         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
9023         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
9024         references to cpp_buffer->fname (delete entirely, or use
9025         ->ihash->name instead) and IF_STACK->fname.
9026         (cpp_push_buffer): Don't set new->underflow.
9027         (do_include): Use cpp_file_buffer.
9028
9029         * cpphash.c (collect_formal_parameters): Remove duplicate
9030         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
9031         used as a macro argument name.  Don't append "..." to namebuf
9032         for varargs macros.  After we're done scanning, go through
9033         namebuf and make it NUL separated, not comma separated.
9034         (_cpp_compare_defs): Remove register tag from variables.
9035         Expect defn->argnames to be NUL separated.
9036         (_cpp_dump_definition): Expect defn->argnames to be NUL
9037         separated and in forward order.
9038         * cpphash.h: Update documentation of argnames field.
9039
9040 2000-03-08  Richard Henderson  <rth@cygnus.com>
9041
9042         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
9043         to fail.  Don't pre-expand the source operand.
9044
9045         * i386.md (strlensi): Initialize eoschar and align before use.
9046
9047 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
9048
9049         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
9050         CONSTRUCTOR element.
9051
9052 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
9053
9054         * mips.c (mips_expand_prologue): If the last
9055         named argument is the vararg marker "va_list", treat it as
9056         an unnamed argument.
9057
9058 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
9059
9060         * dbxout.c (dbxout_parms): When correcting for promoted
9061         big-endian parameters, use the mode of the DECL_RTL rather
9062         than UNITS_PER_WORD.
9063
9064 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
9065
9066         * c-common.h (make_fname_decl): Declare.
9067         * c-common.c (make_fname_decl): Define.
9068         (declare_hidden_char_array): Remove.
9069         (declare_function_name): Use make_fname_decl.
9070         * c-decl.c (c_make_fname_decl): New function.
9071         (init_decl_processing): Set make_fname_decl.
9072
9073 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
9074
9075         * cccp.c (handle_directive): Initialize backslash_newlines_p.
9076
9077 2000-03-07  Philipp Thomas  <pthomas@suse.de>
9078
9079         * po/POTFILES.in: Remove cppalloc.c from file list.
9080
9081 2000-03-07  Steve Chamberlain  <sac@pobox.com>
9082
9083         * pj.c (pj_expand_prologue): current_function->args_info is
9084         now current_function_args_info.
9085
9086         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
9087         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
9088         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
9089
9090 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9091
9092         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
9093         output as hexadecimal rather than the default octal.
9094
9095 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
9096
9097         * cpphash.c (special_symbol): Fix thinko in previous commit.
9098
9099 2000-03-07  Neil Booth  <NeilB@earthling.net>
9100
9101         * cppexp.c (struct operation, left_shift, right_shift,
9102         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
9103         "int"s to "unsigned int"s.
9104         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
9105         Similarly.
9106         * cpplib.h: Update for above.
9107         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
9108         returned from allocations.
9109
9110         * cppinit.c (opt_comp, parse_options): New functions.
9111         (handle_option): Use parse_option to parse a single command
9112         line option, that possibly takes an argument.
9113         (cpp_handle_options): Sort the array of command line options on
9114         first invocation (non-ASCII hosts only).
9115         (print_help): Update.
9116
9117 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
9118
9119         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
9120         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
9121
9122         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
9123         initialized.
9124         * cppinit.c (cpp_cleanup): Free imp->nshort also.
9125
9126         * cpperror.c (cpp_print_containing_files,
9127         cpp_print_file_and_line, v_cpp_message): Rename to
9128         print_containing_files, print_file_and_line, and v_message.
9129         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
9130         to _cpp_parse_expr, parse_escape, and lex.
9131         (parse_charconst): Remove broken multibyte support.
9132         * cppfiles.c (include_hash): Make static.
9133         (cpp_included): New function.
9134         (merge_include_chains, find_include_file, finclude,
9135         simplify_pathname): Rename to _cpp_merge_include_chains,
9136         _cpp_find_include_file, _cpp_read_include_file, and
9137         _cpp_simplify_pathname.
9138         * cpphash.c (cpp_lookup, free_definition, delete_macro,
9139         cpp_install, create_definition, macroexpand, compare_defs,
9140         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
9141         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
9142         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
9143         * cppinit.c (cpp_handle_option): Rename to handle_option, make
9144         static.
9145         * cpplib.c: Remove extern prototype of cpp_parse_expr.
9146
9147         * cpphash.h: Update prototypes.
9148         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
9149
9150 2000-03-07  Andrew Haley  <aph@cygnus.com>
9151
9152         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
9153         PTRDIFF_TYPE should be based solely on Pmode.
9154         (SIZE_TYPE): ditto.
9155
9156 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9157
9158         * rtl.h (rtunion_def): Constify member `rtstr'.
9159         (emit_line_note_after, emit_line_note, emit_line_note_force,
9160         emit_note, decode_asm_operands): Constify.
9161
9162         * cse.c (canon_hash): Likewise.
9163
9164         * dbxout.c (dbxout_block): Likewise.
9165
9166         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
9167         v_warning_for_asm): Likewise.
9168
9169         * dwarfout.c (function_start_label): Likewise.
9170
9171         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
9172         emit_line_note_force): Likewise.
9173
9174         * final.c (last_filename, asm_insn_count, final_scan_insn,
9175         output_source_line): Likewise.
9176
9177         * function.h (struct emit_status): Likewise.
9178
9179         * gcse.c (hash_expr_1): Likewise.
9180
9181         * genattr.c (gen_attr, main): Likewise.
9182
9183         * genattrtab.c (struct function_unit, current_alternative_string,
9184         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
9185         attr_numeral, check_attr_test, check_attr_value,
9186         convert_set_attr_alternative, convert_set_attr,
9187         compute_alternative_mask, simplify_by_exploding, gen_attr,
9188         gen_unit): Likewise.
9189
9190         * genflags.c (gen_insn): Likewise.
9191
9192         * gengenrtl.c (type_from_format): Likewise.
9193
9194         * genopinit.c (gen_insn): Likewise.
9195
9196         * genoutput.c (n_occurrences, process_template, process_template):
9197         Likewise.
9198
9199         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
9200         Likewise.
9201
9202         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
9203         Likewise.
9204
9205         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
9206         ggc_set_mark, ggc_get_size): Likewise.
9207
9208         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
9209
9210         * optabs.c (init_one_libfunc): Likewise.
9211
9212         * output.h (assemble_start_function): Likewise.
9213
9214         * recog.c (decode_asm_operands): Likewise.
9215
9216         * toplev.c (rest_of_compilation): Likewise.
9217
9218         * tree.h (emit_line_note_after, emit_line_note,
9219         emit_line_note_force): Likewise.
9220
9221         * varasm.c (asm_output_bss, asm_output_aligned_bss,
9222         asm_emit_uninitialised, assemble_start_function,
9223         assemble_variable, const_hash, compare_constant_1,
9224         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
9225
9226         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
9227
9228         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
9229
9230         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
9231
9232         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
9233
9234         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
9235         arm_dllimport_name_p): Likewise.
9236
9237         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
9238         Likewise.
9239
9240         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
9241
9242         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9243
9244         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
9245         arm_mark_dllexport, arm_mark_dllimport,
9246         arm_pe_encode_section_info): Likewise.
9247
9248         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
9249         ASM_FINISH_DECLARE_OBJECT): Likewise.
9250
9251         * arm/thumb.c (thumb_function_prologue): Likewise.
9252
9253         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
9254
9255         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9256
9257         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
9258
9259         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
9260
9261         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
9262
9263         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9264
9265         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
9266         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
9267
9268         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
9269
9270         * i386/i386.c (asm_output_function_prefix): Likewise.
9271
9272         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
9273
9274         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9275
9276         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
9277
9278         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
9279         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
9280         ASM_OUTPUT_SECTION_NAME): Likewise.
9281
9282         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
9283
9284         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
9285
9286         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
9287
9288         * m32r/m32r.c (m32r_encode_section_info): Likewise.
9289
9290         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9291
9292         * mcore/mcore.c (mcore_encode_section_info): Likewise.
9293
9294         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9295
9296         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9297
9298         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9299
9300         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
9301
9302         * mips/mips.md (movdi, movsi): Likewise.
9303
9304         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9305
9306         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9307
9308         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9309
9310         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
9311         ASM_OUTPUT_ASCII): Likewise.
9312
9313         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
9314         output_mi_thunk, output_toc): Likewise.
9315
9316         * rs6000/rs6000.md (movsi): Likewise.
9317
9318         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
9319
9320         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
9321
9322         * v850/v850.c (print_operand, print_operand_address,
9323         v850_encode_data_area): Likewise.
9324
9325 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
9326
9327         * config/mips/mips.md (zero_extendsidi2): Always force operand
9328         one to memory for mips16.
9329
9330 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9331
9332         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
9333         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
9334         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
9335         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
9336         (min_precision): Result is unsigned.
9337         (add_double, neg_double, mul_double): Low word is unsigned.
9338         (lshift_double, rshift_double, lrotate_double): Likewise.
9339         (rrotate_double, div_and_round_double): Likewise.
9340         (tree_floor_log2, compare_tree_int): New functions.
9341         (preserve_rtl_expr_temps): New declaration.
9342         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
9343         (decl_attributes): Use tree_log2 to find alignment.
9344         Check for TREE_INT_CST_HIGH for format args.
9345         (min_precision): Now unsigned.
9346         Use tree_floor_log2.
9347         (truthvalue_conversion): Delete long-disabled code.
9348         * c-decl.c (finish_struct): Clean up tests on field width.
9349         (finish_function): Use compare_tree_int.
9350         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
9351         * c-typeck.c (comptypes): Use tree_int_cst_equal.
9352         (default_conversion, digest_init): Use compare_tree_int.
9353         (build_binary_op): Use integer_all_onesp and compare_tree_int.
9354         Fix type errors in forming masks.
9355         * calls.c (initialize_argument_information): Use compare_tree_int.
9356         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
9357         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
9358         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
9359         (store_field): Use compare_tree_int.
9360         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
9361         (expand_expr, case ARRAY_REF): Use compare_tree_int.
9362         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
9363         (do_store_flag): Use compare_tree_int.
9364         * fold-const.c (encode, decode): Low part is always unsigned.
9365         (force_fit_type, add_double, neg_double, mul_double): Likewise.
9366         (lshift_double, rshift_double, lrotate_double): Likewise.
9367         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
9368         (fold_convert): Use compare_tree_int.
9369         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
9370         (invert_truthvalue, case INTEGER_CST): Likewise.
9371         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
9372         * mkdeps.c (deps_dummy_targets): Make I unsigned.
9373         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
9374         (lshift_double, rshift_double, lrotate_double, rrotate_double):
9375         Likewise.
9376         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
9377         (expand_end_case): Use compare_tree_int.
9378         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
9379         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
9380         (layout_decl): Likewise.
9381         (layout_record, layout_union): Make sizes unsigned.
9382         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
9383         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
9384         * tree.c (struct type_hash): hashcode is unsigned.
9385         (build_type_attribute_variant, type_hash_list): Likewise.
9386         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
9387         (attribute_hash_list, build_array_type, build_method_type): Likewise.
9388         (build_complex_type): Likewise.
9389         (real_value_from_int_cst): Remove unneeded casts.
9390         (integer_all_onesp): Add casts.
9391         (tree_floor_log2, compare_tree_int): New functions.
9392         (build_index_type): Use tree_int_cst_sgn.
9393         * varasm.c (assemble_variable): Use compare_tree_int.
9394
9395 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
9396
9397         * cpphash.c (collect_expansion): Also catch ## at start of macro.
9398
9399         * varasm.c (make_decl_rtl): Don't add a number to members of
9400         local classes.
9401         (make_function_rtl): Likewise.
9402
9403 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9404
9405         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
9406         patch from 2000-01-28.
9407
9408 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
9409
9410         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
9411         filled with an insn from the jump target.
9412
9413 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9414
9415         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
9416         (c4x_external_ref): Likewise.
9417         * config/c4x/c4x.c (struct name_list): Likewise.
9418
9419 1999-12-16  Ben Collins  <bcollins@debian.org>
9420
9421         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
9422         argument to genmultilib.
9423         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
9424         the contents into the multilib.h header.
9425         * gcc.c: Declare multilib_exclusions for the specs file.
9426         (set_multilib_dir): Use it.
9427         (print_multilib_info): Likewise.
9428         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
9429         to pass to genmultilib.
9430
9431 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9432
9433         * builtins.c (built_in_class_names, built_in_names): Constify a
9434         char*.
9435
9436         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
9437         int.
9438         (_mcleanup): Ensure value matches format specifier in sprintf.
9439
9440         * cpphash.c (special_symbol): Don't needlessly cast away
9441         const-ness.
9442
9443         * cppinit.c (base_name): Delete unused prototype.
9444
9445         * mkdeps.c (deps_init): Make definition K&R safe.
9446
9447         * tree.h (built_in_class_names, built_in_names): Constify a
9448         char*.
9449
9450 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
9451
9452         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
9453         floating point instructions for epilogue delay.
9454
9455         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
9456         to gas if it supports .register pseudo.
9457
9458         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
9459         LONG_DOUBLE_TYPE_SIZE if not defined.
9460         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
9461         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
9462         * real.c: Likewise.
9463         * gengenrtl.c: Likewise.
9464         * print-rtl.c: Likewise.
9465         * rtl.c: Likewise.
9466         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
9467         MASK_LONG_DOUBLE_128.
9468         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
9469         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
9470         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
9471         (SUBTARGET_SWITCHES): Define.
9472         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
9473         with -mlong-double-128.
9474         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
9475         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
9476         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
9477         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
9478         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
9479         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
9480         with -mlong-double-128.
9481         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
9482         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
9483         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
9484         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
9485         TARGET_LONG_DOUBLE_128): Define.
9486         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9487         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
9488         long double on TARGET_ARCH64.
9489
9490 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
9491
9492         * function.c (free_temps_for_rtl_expr): Don't free slots
9493         that have been pushed into a higher level.
9494
9495         Revert this patch:
9496         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
9497
9498 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
9499
9500         * basic-block.h (ALLOCA_REG_SET): Remove.
9501         (INITIALIZE_REG_SET): New macro.
9502         * flow.c (update_life_info): Use it.
9503         (calculate_global_regs_live): Likewise.
9504         (propagate_block): Likewise.
9505         * global.c (build_insn_chain): Likewise.
9506         * haifa-sched.c (schedule_region): Likewise.
9507
9508 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
9509
9510         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
9511         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
9512         (DWARF_ARANGES_PAD_SIZE): New define.
9513         (output_aranges): Use it to pad the address range header.
9514         (DWARF_ROUND): Fix for non power of 2 rounding.
9515
9516 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
9517
9518         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
9519
9520 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
9521
9522         * tree.def (RTL_EXPR): Update documentation.
9523         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
9524         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
9525         * function.c (preserve_rtl_expr_temp): New function.
9526         (preserve_rtl_expr_temps): Likewise.
9527         (preserve_rtl_expr_result): Use it.
9528
9529         Revert this patch:
9530         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
9531
9532 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
9533
9534         * regmove.c (copy_src_to_dest)  Do not create src->dest move
9535         for unchanging destination.
9536
9537 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
9538
9539         * function.h (struct sequence_stack): Remove rtl_expr.
9540         (struct emit_staus): Likewise.
9541         (seq_rtl_expr): Remove.
9542         * tree.h (free_temps_for_rtl_expr): Don't declare.
9543         (start_sequence_for_rtl_expr): Likewise.
9544         * rtl.h (preserve_rtl_expr_result): Likewise.
9545         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
9546         (start_sequence_for_rtl_expr): Remove.
9547         (push_topmost_sequence): Don't save sequence_rtl_expr.
9548         (pop_topmost_sequence): Remove comment about not restoring it.
9549         (end_sequence): Don't set seq_rtl_expr.
9550         (init_emit): Don't initialize it.
9551         (mark_sequence_stack): Don't mark it.
9552         (mark_emit_status): Likewise.
9553         * except.c (protect_with_terminate): Use
9554         start_sequence_for_rtl_expr, not start_sequence.
9555         * expr.c (expand_expr, case RTL_EXPR): Don't call
9556         preserve_rtl_expr_result or free_temps_for_rtl_expr.
9557         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
9558         (preserve_rtl_expr_result): Remove.
9559         (free_temps_for_rtl_expr): Likewise.
9560         (pop_temp_slots): Likewise.
9561         (mark_temp_slot): Don't mark the rtl_expr.
9562         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
9563         start_sequence_for_rtl_expr.
9564
9565 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
9566
9567         * mkdeps.c, mkdeps.h: New files.
9568         * po/POTFILES.in: Add them.
9569         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
9570         (cpplib.o, cppinit.o): Depend on mkdeps.h.
9571         (mkdeps.o): New target.
9572
9573         * cppfiles.c: Delete deps_output.
9574         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
9575         OBJECT_SUFFIX, and base_name.
9576         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
9577         the include hash.
9578         (initialize_dependency_output): Use deps_init,
9579         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
9580         all the unnecessary string bashing.
9581         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
9582         level.
9583         * cpplib.c (do_include): Use deps_add_dep.
9584         * cpplib.h (struct cpp_reader): Replace deps_buffer,
9585         deps_allocated_size, deps_size, deps_column members with
9586         single pointer to a struct deps.  Delete prototype of
9587         deps_output.
9588
9589         * cppinit.c: Fix thinko in previous patch.
9590
9591 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9592
9593         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
9594         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
9595         (mode_for_size_tree): New function.
9596         (layout_decl, layout_type): Call it and clean up BLKmode checks.
9597         * tree.h (mode_for_size_tree): New declaration.
9598
9599         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
9600
9601 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
9602
9603         * stmt.c (is_body_block): Move...
9604         * dwarfout.c, dwarf2out.c: ...from here.
9605         * tree.h: Declare it.
9606         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
9607         * final.c (final_start_function): Do call remove_unnecessary_notes
9608         when scheduling.
9609
9610 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
9611
9612         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
9613
9614         * cpplib.h (_dollar_ok): New macro.
9615         (is_idchar, is_idstart): Use it.
9616         (IStable): Rename to _cpp_IStable.  Declare it const if
9617         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
9618         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
9619         is_space): Update for renamed IStable.
9620
9621         * cppinit.c: Delete all references to FAKE_CONST and CAT
9622         macros. Define init_IStable as empty macro if gcc >=2.7 or
9623         C99. Change TABLE() to ISTABLE and hardcode name of table.
9624         (cpp_start_read): Don't change the IStable based on
9625         dollars_in_ident.
9626
9627         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
9628         changed.  Handle '$' for char1 correctly.
9629         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
9630
9631         * cppexp.c (tokentab2): Make const.
9632         (cpp_lex): Make toktab const.
9633         * cppinit.c (include_defaults_array): Make const.
9634         (initialize_standard_includes): Make default_include const.
9635
9636 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
9637
9638         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
9639         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
9640         (gen_decl_die): Likewise.
9641         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
9642         (output_decl): Likewise.
9643
9644         * varasm.c (make_function_rtl): If we change the name used in the
9645         rtl, update DECL_ASSEMBLER_NAME accordingly.
9646         (make_decl_rtl): Likewise.
9647
9648         * toplev.c (rest_of_compilation): Tweak formatting.
9649
9650         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
9651         remove_unnecessary_notes.
9652         (debug_ignore_block): New fn.
9653         * toplev.h: Declare it.
9654         * emit-rtl.c (remove_unncessary_notes): Call it.
9655         * dwarf2out.c (dwarf2out_ignore_block): New fn.
9656         * dwarf2out.h: Declare it.
9657         * final.c (final_start_function): Don't call remove_unnecessary_notes
9658         if we did insn scheduling.
9659
9660 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
9661
9662         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
9663         * cpplib.h: Delete SET_CPP_PEDANTIC.
9664
9665 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9666
9667         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
9668         result is a RECORD_TYPE.
9669
9670 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
9671
9672         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
9673
9674 2000-03-03  Richard Henderson  <rth@cygnus.com>
9675
9676         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
9677         addition over compliments over shifts.
9678
9679 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9680
9681         * reload1.c (reload_combine_note_use): Handle return register USEs.
9682         REG case: Handle multi-hard-register hard regs.
9683
9684 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9685
9686         * md.texi: Document use of '*' in insn pattern name.
9687
9688 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
9689
9690         * calls.c (special_function_p): operator new may not be malloc-like.
9691
9692         * gcse.c (dump_hash_table): Really fix error in last change.
9693
9694 2000-03-02  Denis Chertykov  <denisc@overta.ru>
9695
9696         * avr.c (print_operand): Use print_operand_address instead of
9697         output_addr_const.
9698         * avr/libgcc.S: Cleanup code.
9699
9700 2000-03-02  Richard Henderson  <rth@cygnus.com>
9701
9702         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
9703
9704 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
9705
9706         * tree.h (TYPE_ALIGN_UNIT): New macro.
9707
9708 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
9709
9710         * i386.c: (constant_call_address_operand): Reject CONST_INT.
9711
9712 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
9713
9714         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
9715         for the buffer.
9716         (SET_CPP_PEDANTIC): New macro.
9717         * cpplib.c (do_include): Don't bother checking system_header_p.
9718         (do_warning, do_ident, do_assert, do_unassert): Likewise.
9719         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
9720
9721         * function.h (struct expr_status): Add x_arg_space_so_far.
9722         (arg_space_so_far): New macro.
9723         * expr.c (init_expr): Initialize it.
9724         * calls.c (emit_call_1): Reset it.
9725         (compute_argument_block_size, expand_call): Use it.
9726         (expand_call, store_one_arg): Increment it.
9727
9728 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9729
9730         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
9731         a UNION_TYPE.
9732
9733 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
9734
9735         * cppfiles.c (cpp_read_file): New function.
9736
9737         * cpphash.c (collect_expansion): Make sure to reset last_token
9738         to NORM when we hit a string.  Handle trailing whitespace
9739         properly when the expansion is empty.
9740         (create_definition): Disable line commands while parsing the
9741         directive line.
9742         (dump_definition): If pfile->lineno == 0, output a line
9743         command ahead of the dump, and add a trailing newline.
9744
9745         * cppinit.c (append_include_chain): Add fifth argument, which
9746         indicates whether or not system headers are C++ aware.
9747         (initialize_standard_includes): New function,
9748         broken out of read_and_prescan.  Pass 'cxx_aware' value from
9749         the include_defaults_array on to append_include_chain.
9750         (dump_special_to_buffer): Const-ify char array.
9751         (builtin_array): Don't dump __BASE_FILE__.
9752         (cpp_start_read): Use cpp_read_file.  Reorder code for
9753         clarity.  Don't output line commands here for -D/-A/-U
9754         switches.  Don't call deps_output for files included with
9755         -include or -imacros.
9756
9757         * cpplib.c (do_define): Don't pay any attention to the second
9758         argument.
9759         (cpp_expand_to_buffer): Disable line commands while scanning.
9760         (output_line_command): Work in the file buffer.
9761         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
9762         Fix formatting of comments.  Prototype cpp_read_file.
9763
9764 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9765
9766         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
9767         reference the language-equivalent of sizetype.
9768         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
9769         * fold-const.c (size_binop, size_diffop): Put back checks.
9770         * gcse.c (dump_hash_table): Fix minor error in last change.
9771         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
9772         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
9773         all sizetypes.
9774
9775 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
9776
9777         * calls.c (expand_call)  Do not attempt to combine stack adjustments
9778         with inhibit_defer_pop set.
9779
9780 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
9781
9782         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
9783         the DECL_SIZE for a FIELD_DECL.
9784
9785 2000-03-01  Bruce Korb  <bkorb@gnu.org>
9786
9787         * fixinc/inclhack.tpl: remove unused symlinks
9788         * fixinc/README: GCC Maintainer info
9789         * fixinc/inclhack.sh: regen
9790         * fixinc/fixincl.sh: regen
9791
9792 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
9793
9794         * cpphash.c (collect_expansion): Trim trailing white space
9795         from macro definitions, but don't go past the last insertion
9796         point.
9797
9798 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
9799
9800         * i386.md (mulqi3): New pattern.
9801
9802 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
9803
9804         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
9805         token types.
9806         (struct cpp_reader): Add parsing_if_directive and
9807         parsing_define_directive flags.
9808         (struct cpp_options): Remove output_conditionals flag.
9809         (check_macro_name): Delete prototype.
9810
9811         * cpphash.h (struct macrodef): Delete.
9812         (struct reflist): Separate from struct definition.
9813         (struct definition): Remove unused fields.  Add column number.
9814         (create_definition): Returns a DEFINITION *.  Takes a
9815         cpp_reader * and an int.
9816
9817         * cpphash.c (SKIP_WHITE_SPACE): Delete.
9818         (PEEKC): Copy defn from cpplib.c.
9819         (rest_extension, REST_EXTENSION_LENGTH): Delete.
9820         (struct arg): New.
9821         (struct arglist): Simplify.
9822         (collect_expansion): Rewrite.  Get tokens by calling
9823         cpp_get_token.  Add more error checking.
9824         (collect_formal_parameters): New function, broken out of
9825         create_definition and reworked to use get_directive_token.
9826         (create_definition): All real work is now in collect_expansion
9827         and collect_formal_parameters.  do_define handles finding the
9828         macro name.  Return a DEFINITION, not a MACRODEF.
9829         (macroexpand): Replace bcopy with memcpy throughout.  Replace
9830         character-at-a-time copy loop with memcpy and pointer increments.
9831         (compare-defs): d1->argnames / d2->argnames might be null.
9832
9833         * cpplib.c (copy_rest_of_line): Delete function.
9834         (skip_rest_of_line): Do all the work ourselves.
9835         (skip_string): New function.
9836         (parse_string): Use skip_string.
9837         (get_macro_name): New function.
9838         (check_macro_name): Delete.
9839         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
9840         (cpp_skip_hspace): Use CPP_BUMP_LINE.
9841         (handle_directive): ICE if we're called on a macro buffer.
9842         (do_define): Determine macro name and type (funlike/objlike)
9843         here.  Expunge all uses of MACRODEF.
9844         (cpp_push_buffer): Set line_base to NULL.
9845         (do_undef, read_line_number): Don't worry about getting a POP token.
9846         (eval_if_expression): Set/reset parsing_if_directive around
9847         cpp_parse_expr. Don't clear only_seen_white.
9848         (skip_if_group): Remove output_conditionals logic.  Use
9849         skip_rest_of_line.
9850         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
9851         tokens under appropriate conditions.
9852         (cpp_unassert): Call do_unassert not do_assert.  Oops.
9853
9854         * cppexp.c (parse_defined): New function, break out of
9855         cpp_lex.
9856         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
9857         ourselves, with cpp_defined.
9858         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
9859
9860         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
9861         * gcc.dg/strpaste-2.c: New.
9862
9863 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
9864
9865         * fold-const.c (size_binop): Don't asert inputs are the same and
9866         have TYPE_IS_SIZETYPE set.
9867         (size_diffop): Likewise.
9868
9869 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
9870
9871         * dwarfout.c (output_block): Output abstract blocks even if they
9872         don't have TREE_ASM_WRITTEN set.
9873
9874         * calls.c (emit_library_call): Check for null REG.
9875
9876 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
9877
9878         * c-decl.c (current_function_decl): Move to toplev.c.
9879         (init_decl_processing): Don't add current_function_decl as a ggc
9880         root here.
9881         * dbxout.c (dbxout_symbol): Change return type to int.
9882         (dbxout_symbol_location, dbxout_syms): Likewise.
9883         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
9884         any locals. Use current_function_func_begin_label if set.
9885         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
9886         * dwarf2out.c (dwarf2out_begin_prologue): Set
9887         current_function_func_begin_label.
9888         * final.c (final_start_function): Reset it.
9889         * toplev.c (current_function_decl): Define it here.
9890         (current_function_func_begin_label): New variable.
9891         (main): Add both as ggc roots.
9892         * tree.h (current_function_func_begin_label): Declare.
9893
9894 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9895
9896         * gcse.c: Cleanups throughout: mostly white-space, but also
9897         some minor rearrangement of code.
9898
9899 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
9900
9901         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
9902         returns a PARALLEL.  Use emit_group_load and use_group_regs
9903         as needed.
9904         (emit_library_call_value): Similarly.
9905
9906         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
9907         * pa/quadlib.asm: Remove.
9908         * pa/quadlib.c: New file.
9909
9910         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
9911         * configure: Rebuilt.
9912
9913 2000-02-29  Philip Blundell  <pb@futuretv.com>
9914
9915         * config/arm/conix-elf.h: New file.
9916         * configure.in (arm*-*-conix*): New configuration.
9917         * configure: Regenerate.
9918
9919 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
9920
9921         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
9922         don't have TREE_ASM_WRITTEN set.
9923
9924 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9925
9926         * Eliminate DECL_FIELD_SIZE.
9927         * builtins.c (built_in_class_names, built_in_names): New variables.
9928         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
9929         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
9930         DECL_SIZE, not DECL_FIELD_SIZE.
9931         * print-tree.c (print_node): Remove code that prints extra blank
9932         lines in some cases.
9933         Properly handle inline and builtin function cases.
9934         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
9935         * tree.h (built_in_class_named, built_in_names): New declarations.
9936         (union tree_decl): Rename internal unions to u1 and u2 and change
9937         some of their components.
9938         Add new field built_in_class.
9939         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
9940         Reflect above changes.
9941         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
9942         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
9943         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
9944         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
9945
9946 2000-02-28  Dmitri Makarov  <dim@windriver.com>
9947
9948         * extend.texi: Document ARM's support for long/short calls.
9949
9950         * invoke.texi: Document ARM's -mlong-calls command line switch.
9951
9952         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
9953         (arm_encode_call_attribute): Add prototype.
9954         (arm_set_default_type_attribute): Add prototype.
9955         (arm_strip_name_encoding): Add prototype.
9956
9957         * config/arm/arm.c (arm_init_cumulative_args): replace
9958         initialisation og 'long_calls' field with initialisation of
9959         'call_cookie' field.
9960         (enum arm_pragma_enum): New enum.
9961         (arm_pragma_long_calls): New static variable.
9962         (arm_process_pragma): Also process "#pragma long_calls_off".
9963         (arm_valid_type_attribute_p): Accept short_call attribute.
9964         (arm_comp_type_attributes): Check long/short call attributes.
9965         (arm_encode_call_attribute):  New function:  Encode long_call
9966         or short_call attribute in function name.
9967         (arm_set_default_type_attributes): New function: Assign
9968         default attributes to newly defined type.
9969         (current_file_function_operand): New function: Return true if
9970         the symbol is a function which has already been compiled.
9971         (arm_is_longcall_p): New function: Return true if the
9972         indicated function should be called via a long call.
9973         (arm_get_strip_length): New function.  Returns number of
9974         prefix characters to be stripped from a function's name.
9975         (arm_strip_name_encoding): New function.  Strip prefix characters
9976         from a function's name.
9977
9978         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
9979         with 'call_cookie'.
9980         (SHORT_CALL_FAG_CHAR): Define.
9981         (LONG_CALL_FAG_CHAR): Define.
9982         (ENCODED_SHORT_CALL_ATTR_P): Define.
9983         (ENCODED_LONG_CALL_ATTR_P): Define.
9984         (ARM_NAME_ENCODING_LENGTHS): Define.
9985         (STRIP_NAME_ENCODING): Define.
9986         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
9987         (ARM_ENCODE_CALL_TYPE): Define.
9988         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
9989         (ARM_DECLARE_FUNCTION_SIZE): Define.
9990         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
9991
9992         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
9993         if a long call is needed.
9994         (call_value): Ditto.
9995         (call_symbol): Ditto.
9996
9997         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
9998         ARM_DECLARE_FUNCTION_SIZE.
9999
10000         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
10001         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
10002         (ARM_STRIP_NAME_ENCODING): Undefine.
10003         (STRIP_NAME_ENCODING): Undefine.
10004         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
10005         (ASM_DECLARE_FUNCTION_NAME): Ditto.
10006         (ASM_OUTPUT_COMMON): Ditto.
10007         (ASM_DECLARE_OBJECT_NAME): Ditto.
10008
10009         * config/arm/pe.c (arm_dllexport_name_p): Check for
10010         ARM_PE_FLAG_CHAR.
10011         (arm_dllimport_name_p): Ditto.
10012         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
10013         (arm_mark_dllimport): Ditto.
10014
10015 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10016
10017         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
10018
10019 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
10020
10021         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
10022
10023 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
10024
10025         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
10026         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
10027         NO_BUILTIN_WCHAR_TYPE is not defined.
10028         (CPP_WCHAR_TYPE): Delete.
10029         * cccp.c (main): Don't change wchar_type if cplusplus.
10030         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
10031
10032 2000-02-28  Nick Clifton  <nickc@cygnus.com>
10033
10034         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
10035
10036 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
10037
10038         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
10039         (ASM_WEAKEN_LABEL): Define.
10040
10041 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
10042
10043         * expr.c (store_constructor): Do not emit USE.
10044         * rtl.h (stupid_life_analysis): Remove.
10045
10046 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10047
10048         * function.c (number_blocks): Reset next_block_index based on
10049         what debugging format is used, not what is defined.
10050
10051         * lcm.c: Minor reformatting throughout.
10052         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
10053
10054         * toplev.c (rest_of_compilation): Account for time in
10055         optimize_mode_switching.
10056
10057         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
10058         if only marking labels.
10059
10060 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
10061
10062         * calls.c (expand_call): Attempt to combine stack adjustments with
10063         pending stack adjustments.
10064
10065 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10066
10067         * loop.c (reg_in_basic_block_p): Don't abort when falling through
10068         to the end of the function.
10069
10070 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
10071
10072         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
10073         blocks.
10074         * final.c (next_block_index): Remove.
10075         (max_block_depth): Likewise.
10076         (pending_blocks): Likewise.
10077         (init_final): Don't initialize them.
10078         (final_start_function): Don't set next_block_index.  Set up
10079         BLOCK_NUMBER.
10080         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
10081         * function.h (number_blocks): New function.
10082         * function.c (get_block_vector): New function.
10083         (identify_blocks): Use it.
10084         (reorder_blocks): Set NOTE_BLOCK.
10085         (number_blocks): New function.
10086         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
10087         * tree.h (BLOCK_NUMBER): New macro.
10088         (tree_block): Add block_num field.
10089         * dbxout.c (next_block_number): Remove.
10090         (dbxout_init): Don't set it.
10091         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
10092         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
10093         block numbers.
10094         * toplev.c (rest_of_compilation): Always call
10095         find_loop_tree_blocks.  Fix indentation.
10096         * dwarf2out.c (next_block_number): Remove.
10097         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
10098         to determine block numbers.
10099         (gen_inlined_subroutine_die): Likewise.
10100         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
10101         (decls_for_scope): Don't increment next_block_number.
10102         * dwarfout.c (next_block_number): Remove.
10103         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
10104         to determine block numbers.
10105         (output_inlined_subroutine_die): Likewise.
10106         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
10107         (output_decls_for_scope): Don't increment next_block_number.
10108         * sdbout.c (next_block_number): Remove.
10109         (sdbout_block): Use BLOCK_NUMBER.
10110         (sdbout_begin_block): Simplify.
10111         * xcoffout.c (next_block_number): Remove.
10112         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
10113         (xcoffout_begin_block): Don't set next_block_number.
10114         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
10115         next_block_number.
10116
10117 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10118
10119         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
10120         (expand_builtin_strcpy): Pass correct type to size_binop.
10121         (expand_builtin_strcmp): Likewise.
10122         Clean up conditional structure.
10123         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
10124         (complete_array_type): Don't use size_binop for MAXINDEX.
10125         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
10126         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
10127         (c_alignof): Use size_one_node.
10128         (build_unary_op): Pass arg of proper type to size_binop.
10129         (really_start_incremental_init, push_init_level): Use sizetype for
10130         constructor{,_bit,_unfilled}_index.
10131         (pop_init_label, output_init_element): Likewise.
10132         (output_pending_init_elements, process_init_element): Likewise.
10133         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
10134         * expr.c (store_expr): Use size_int.
10135         (store_constructor): Use proper types for size_binop args.
10136         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
10137         (expand_expr_unaligned): Likewise.
10138         (string_contant): Return object of sizetype.
10139         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
10140         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
10141         (ARGS_SIZE_TREE): Pass proper types to size_binop.
10142         * fold-const.c (int_const_binop): Refine when size_int is called.
10143         (fold_convert): Likewise.
10144         (size_int_wide): Rework to take KIND as arg, only take low order
10145         bits, handle new sizetype_tab datatype, and chain entries in
10146         size_table.
10147         (size_int_type_wide): New function.
10148         (size_binop): Validate types of arguments.
10149         (ssize_binop): Deleted.
10150         (size_diffop): New function.
10151         (extract_muldiv): Only fold division into multiplication for sizetypes.
10152         * function.c (assign_parms): Use size_diffop and make sure
10153         VAR field is of ssizetype; also pass proper type to size_binop.
10154         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
10155         (round_down): Deleted from here.
10156         * store-layout.c (sizetype_tab): Now an array.
10157         (sizetype_set, early_root_list): New variables.
10158         (variable_size): Use size_one_node.
10159         (round_up): Pass proper type to size_binop.
10160         (round_down): Moved to here and corrected as above.
10161         (layout_record): Pass proper arg types to size_binop.
10162         (layout_type): Likewise.
10163         If sizetype_set is zero, record the type just laid out.
10164         (make_unsigned_type): Don't call set_sizetype;
10165         (make_signed_type): Likewise; also, call fixup_signed_type.
10166         (initialize_sizetypes): New function.
10167         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
10168         set name of bitsizetype to "bit_size_type".
10169         Fix up type of sizes of all types made before call.
10170         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
10171         * tree.c (fix_sizetype): Deleted.
10172         (build_common_tree_nodes): Call initialize_sizetypes.
10173         (build_common_tree_nodes_2): Don't call fix_sizetype.
10174         * tree.h (TYPE_IS_SIZETYPE): New macro.
10175         (initialize_sizetype): New declaration.
10176         (enum size_type_kind): New type.
10177         (struct sizetype_tab): Deleted.
10178         (sizetype_tab): Now array; adjust sizetype macros.
10179         (size_diffop, size_int_type_wide): New functions.
10180         (size_int_wide): Change number of args and type; access macros changed.
10181         (ssize_int, sbitsize_int): New macros.
10182         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
10183         (ROUND_TYPE_SIZE_UNIT): New macro.
10184
10185 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
10186
10187         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
10188
10189 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10190
10191         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
10192         Mark as possibly unused.
10193
10194         * cse.c (cse_insn): Delete dead code involving tablejump.
10195         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
10196
10197         * Makefile.in (libcpp.a): Start by deleting it.
10198
10199 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10200
10201         * cpplib.h (enum file_change_code): Added rename_file.
10202         * cpplib.c (do_line): If a filename is given, set file_change to
10203         rename_file.
10204         (output_line_command): If file_change is rename_file, always
10205         output a # directive with the file name.
10206
10207         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
10208
10209 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
10210
10211         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
10212         when copying a PARM_DECL or RESULT_DECL.
10213
10214 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10215
10216         * fix-header.c (recognized_function): Also fix prototypes for
10217         functions taking "void".
10218
10219 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
10220
10221         * reload1.c (do_output_reload): Check reg_reloaded_valid before
10222         looking at reg_reloaded_contents.
10223
10224 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
10225
10226         * Makefile.in (STMP_FIXINC): New toggle.
10227         (LIBGCC2_DEPS): Delete all references.
10228         (stmp-headers): Delete target.  All references either deleted
10229         or changed to stmp-int-headers.
10230         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
10231         (LIBCPP_OBJS): Take out cppalloc.o.
10232         (cppalloc.o): Delete target.
10233         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
10234         (gen-protos, fix-header): Link with libiberty.a.
10235         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
10236         to empty.
10237
10238         * configure.in: Remove refs to strerror.
10239         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
10240         * system.h: Take out strerror stanza.
10241
10242         * cpperror.c (my_strerror): Delete function.
10243         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
10244         * cppmain.c (main): Call xmalloc_set_program_name first thing.
10245         * cppalloc.c: Delete file.
10246         * gen-protos.c: Don't provide xrealloc.
10247
10248         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
10249         xstrerror throughout.
10250
10251 2000-02-26  Bruce Korb  <bkorb@gnu.org>
10252
10253         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
10254         match for DOS headers, too.
10255         * fixinc/inclhack.sh,fixincl.x: Regenerate.
10256
10257 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
10258
10259         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
10260         is right for most ELF targets.
10261         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
10262         Let the default file use %U properly.
10263         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
10264         default.
10265
10266         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
10267         numbers.
10268
10269 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10270
10271         * toplev.c (documented_lang_options): Correct spelling error.
10272         (decode_d_option, decode_f_option, main): Likewise.
10273
10274         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
10275
10276         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
10277         to tell assembler it is permitted to expand large constants.
10278
10279 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
10280
10281         * protoize.c: (AUX_INFO_SUFFIX): New macro.
10282         (aux_info_suffix): Use.
10283         (SAVE_SUFFIX): New macro.
10284         (save_suffix): Use.
10285         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
10286         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
10287         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
10288
10289         * invoke.texi (Running Protoize): Update documentation.
10290
10291 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
10292
10293         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
10294
10295 2000-02-25  John Wehle  (john@feith.com)
10296
10297         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
10298
10299 2000-02-25  Anthony Green  <green@cygnus.com>
10300
10301         * toplev.c (rest_of_compilation): Rebuild jump labels if
10302         combine_instructions has created a new direct jump.
10303         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
10304         when appropriate.
10305         (combine_instructions): Call try_combine with new argument.
10306         Return non-null value when new direct jump instruction is created.
10307         * rtl.h: combine_instructions returns an int.
10308
10309 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
10310
10311         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
10312         jump when changing a computed jump into a jump to a known
10313         target.
10314
10315 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
10316
10317         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
10318         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
10319
10320         * i386.md (define_expand "clrstrsi"): Fix typo.
10321
10322 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
10323
10324         * rtl.texi: Fix typo.
10325
10326 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10327
10328         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
10329         UNITS_PER_WORD.  Change caller initial_elimination_offset.
10330         (rounded_frame_size): Take into account that argument pushed has
10331         changed.  Fix TARGET_ALIGN_DOUBLE problem.
10332
10333 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
10334
10335         * haifa-sched.c (schedule_block): Explain the real reason
10336         we delete REG_SAVE_NOTEs on the first insn of a block.
10337         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
10338
10339 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
10340
10341         * input.h (push_srcloc): New function.
10342         (pop_srcloc): Likewise.
10343         * toplev.c (push_srcloc): Define it.
10344         (pop_srcloc): Likewise.
10345
10346 2000-02-24  Richard Henderson  <rth@cygnus.com>
10347
10348         * flow.c (life_analysis): When collecting reg info, clear
10349         regs_ever_live.
10350
10351 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10352
10353         Fix bug exposed by reload.c no longer rounding the frame
10354         size to BIGGEST_ALIGNMENT:
10355         * sh.c (rounded_frame_size): New function.
10356         (sh_expand_prologue, sh_expand_epilogue): Use it.
10357         (initial_elimination_offset): Likewise.
10358
10359 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10360
10361         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
10362         * sh-protos.h (sh_need_epilogue): Declare.
10363         * sh.c (sh_need_epilogue_known): New static variable.
10364         (sh_need_epilogue): New function.
10365         (function_epilogue): Clear need_epilogue_known.
10366         * sh.md (return): Split into expander / insn pattern.
10367         Make the expander conditional on ! sh_need_epilogue ().
10368
10369 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
10370
10371         * machmode.h (get_mode_alignment): Declare.
10372         (GET_MODE_ALIGNMENT): Call it.
10373         * stor-layout.c (get_mode_alignment): New function. Make
10374         sure alignment is always power of 2.
10375
10376 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10377
10378         * i386.h: Remove useless definition of "I386" and misleading
10379         comment above it.
10380
10381 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10382
10383         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
10384         under which TREE_PERMANENT will be set.
10385         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
10386         build1): Use TREE_SET_PERMANENT.
10387         * print-tree.c (print_node): Don't report value of
10388         TREE_PERMANENT if ggc_p is true.
10389
10390         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
10391         decide whether to give a type a new alias set.
10392         * objc/objc-act.c (build_objc_string_object): Never copy the string.
10393         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
10394         of value of 'obstack'.
10395
10396
10397 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10398
10399         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
10400
10401 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10402
10403         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
10404         * cpplib.c (cpp_get_token): Produce them.
10405         * cppexp.c (cpp_lex): Handle them.
10406
10407 2000-02-23  Nick Clifton  <nickc@cygnus.com>
10408
10409         * config/arm/arm.c (arm_comp_type_attributes): Simply and
10410         comment tests on type attributes.
10411
10412 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10413
10414         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
10415         conform to documentation.
10416         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
10417         to check for special cases.
10418         * sh-protos.h (sh_loop_align): Declare.
10419         * sh.c (sh_loop_align): Define.
10420
10421 2000-02-22  Andrew Haley  <aph@cygnus.com>
10422
10423         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
10424         (SIZE_TYPE): Is 32 bits when using -mgp32.
10425         (PTRDIFF_TYPE): Ditto.
10426
10427 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10428
10429         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
10430
10431 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
10432
10433         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
10434         BIGGEST_FIELD_ALIGNMENT a constant.
10435
10436 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
10437
10438         * dwarf2out.c (output_line_info): Put the marker for the end of
10439         the line number info at the actual end.
10440         (gen_struct_or_union_type_die): Use decl_function_context
10441         to check for local classes.
10442         * dwarfout.c (output_type): Likewise.
10443
10444 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
10445
10446         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
10447         for arguments with a mode, but no type.
10448         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
10449         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
10450         * pa/long_double.h: New file.
10451         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
10452         both have 128bit wide long doubles.
10453         * configure: Rebuilt.
10454
10455 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10456
10457         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
10458
10459         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
10460         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
10461         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
10462
10463         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
10464
10465         * integrate.c (compare_blocks, find_block): Likewise.
10466
10467         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
10468
10469         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
10470
10471         * stmt.c (stmt_status, set_file_and_line_for_stmt,
10472         expand_asm_operands): Likewise.
10473
10474 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
10475
10476         * predict.c (estimate_probability): Added the pointer heuristic to
10477         the collection of static branch predictors.
10478
10479 2000-02-21  Catherine Moore  <clm@cygnus.com>
10480
10481         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
10482         * invoke.texi (-mfix7000): Document.
10483
10484 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
10485
10486         * diagnostic.c (init_output_buffer): Make it possible to output at
10487         least 32 characters if we're given a too long prefix.
10488
10489 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
10490
10491         * varasm.c (initializer_constant_valid_p): Call
10492         lang_expand_constant to simplify the constant.
10493
10494 2000-02-20  Bruce Korb  <bkorb@gnu.org>
10495
10496         * fixinc/inclhack.def(stdio_va_list):
10497         typedef needs to be disabled.
10498         * fixinc/inclhack.sh: regen
10499         * fixinc/fixincl.x: regen
10500
10501 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
10502
10503         * print-rtl.c (print_rtx): Don't print addresses when
10504         flag_dump_unnumbered.
10505
10506 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10507
10508         * sparc.c (sparc_output_scratch_registers): Mark parameter with
10509         ATTRIBUTE_UNUSED.
10510         (sparc_va_arg, sparc_flat_output_function_prologue,
10511         sparc_flat_output_function_epilogue): Cast value to unsigned in
10512         comparison.
10513         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
10514
10515         * sparc.md: Add default case in switch.
10516
10517 2000-02-19  Richard Henderson  <rth@cygnus.com>
10518
10519         * c-typeck.c (add_pending_init): Don't abort for multiple
10520         fields at the same offset.
10521         (pending_init_member): Test the correct member.
10522
10523 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10524
10525         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
10526         instead of SImode.
10527         (start_catch_handler) : Same.
10528
10529 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
10530
10531         * Makefile.in: Have flow.o depend on $(EXPR_H)
10532
10533 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10534
10535         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
10536         * c-decl.c (duplicate_decls, finish_enum): Likewise.
10537         (finish_decl): Remove -Wlarger-than code from here.
10538         * flags.h (id_clash_len): Now int.
10539         (larger_than_size): Now HOST_WIDE_INT.
10540         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
10541         Clean up checking to see if in table.
10542         (make_bit_field_ref): Remove extra parm to bitsize_int.
10543         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
10544         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
10545         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
10546         and for computing size of decl.
10547         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
10548         Move -Wlarger-than code to here.
10549         (layout_record): Remove extra arg to bitsize_int.
10550         Set TYPE_BINFO_SIZE_UNIT.
10551         (layout_union): Remove extra arg to bitsize_int.
10552         Use proper type for size of QUAL_UNION.
10553         (layout_type): Remove extra arg to bitsize_int.
10554         * toplev.c (id_clash_len): Now int.
10555         (larger_than_size): Now HOST_WIDE_INT.
10556         (decode_W_option): Clean up id-clash and larger-than- cases.
10557         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
10558         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
10559         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
10560         (struct tree_decl): New field size_unit.
10561         (size_int_wide): No HIGH operand; NUMBER is now signed.
10562         (size_int_2): Deleted.
10563         (size_int, bitsize_int): Don't use it and rework args.
10564         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
10565
10566 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
10567
10568         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
10569
10570 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
10571
10572         * invoke.texi (Warning Options): Add an explanation of why
10573         you might want the -Wfloat-equal flag.
10574
10575 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10576
10577         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
10578         * cppinit.c (new_pending_define): Add cast to avoid warning.
10579         * expmed.c (extract_bit_field): Likewise.
10580         * flow.c (enum reorder_skip_type): New type.
10581         (skip_insns_between_blcok): New it.
10582         Rework to avoid warning about possibly undefined variable.
10583         * function.c (assign_parms): Make thisparm_boundary unsigned.
10584         * genrecog.c (write_switch): Cast XWINT result to int.
10585         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
10586         * mips-tfile.c (init_file): Make two versions of FDR intializer:
10587         one for MIPS and one for Alpha.
10588         (get_tag, copy_object): Add casts to avoid warnings.
10589         * optabs.c (init_one_libfunc): Cast NAME to (char *).
10590         * reload.c (find_reloads): Make TYPE enum reload_type.
10591         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
10592         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
10593         * varasm.c (compare_constant_1): Add cast to avoid warning.
10594         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
10595         to (char *).
10596         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
10597         Cast switch operand of size to int.
10598         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
10599         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
10600         in unhandled case.
10601
10602 2000-02-18  Nick Clifton  <nickc@cygnus.com>
10603
10604         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
10605         anything for an alignment of zero.
10606
10607         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
10608         anything for an alignment of zero.
10609
10610 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
10611
10612         * gcc.texi (Bug Reporting): Refer to bugs.html.
10613         (Bug Lists): Likewise.
10614         * system.h (GCCBUGURL): New preprocessor define.
10615         * rtl.c (fancy_abort): Use it.
10616         * gcc.c (main): Likewise.
10617
10618 2000-02-18  Richard Henderson  <rth@cygnus.com>
10619
10620         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
10621         (life_analysis_1): Subsume into ...
10622         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
10623         Use update_life_info for the relaxation.
10624         (update_life_info): Update REG_BASIC_BLOCK for registers live on
10625         entry and regs_live_at_setjmp.
10626         (set_noop_p): Simplify.
10627         (notice_stack_pointer_modification_1): Renamed from s/_1//.
10628         (record_volatile_insns): Split into ...
10629         (delete_noop_moves): ... here,
10630         (notice_stack_pointer_modification): ... here,
10631         (insn_dead_p): ... and here.
10632         (propagate_block): Don't query INSN_VOLATILE.
10633         (mark_used_regs): Mind !PROP_REG_INFO.
10634         * toplev.c (rest_of_compilation): Call mark_constant_function here,
10635         not in life_analysis.
10636
10637 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
10638
10639         * loop.c (canonicalize_condition): New function,
10640         broken out of get_condition.
10641         (get_condition): Use it.
10642         * expr.h (canonicalize_condition): Prototype it.
10643
10644         * tree.h (tree_int_cst_msb): Declare.
10645         * tree.c (tree_int_cst_msb): New function.
10646
10647 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
10648
10649         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
10650         isn't set.
10651
10652         * invoke.texi (-fmessage-length=n): Document.
10653
10654 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
10655
10656         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
10657
10658 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
10659
10660         * function.c (thread_prologue_and_epilogue_insns): Put a line note
10661         after the prologue.
10662
10663 2000-02-17  Nick Clifton  <nickc@cygnus.com>
10664
10665         * config/arm/thumb.c: Replace includes of system headers with
10666         #include "system.h".
10667
10668 2000-02-16  Richard Henderson  <rth@cygnus.com>
10669
10670         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
10671         Add crtbeginS.o and crtendS.o.
10672         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
10673         (ENDFILE_SPEC): Use crtendS.o.
10674         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
10675
10676         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
10677         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
10678         shared and present.
10679         (__dso_handle): New variable.
10680         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
10681         bias to __CTOR_END__.
10682
10683 2000-02-16  Richard Henderson  <rth@cygnus.com>
10684
10685         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
10686
10687 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10688
10689         * longlong.h (__clz_tab): Declare as static to match definition.
10690
10691 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
10692
10693         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
10694         (XREF_FILE_NAME): Define.
10695
10696         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
10697         (EH_FRAME_SECTION_ASM_OP): Define.
10698         (IDENT_ASM_OP): Define.
10699         (TEXT_SECTION_ASM_OP): Define.
10700         (CPP_SPEC): Define.
10701         (CTORS_SECTION_ASM_OP): Define.
10702         (CTOR_SECTION_FUNCTION): Use it.
10703         (DTORS_SECTION_ASM_OP): Define.
10704         (DTOR_SECTION_FUNCTION): Use it.
10705
10706 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
10707
10708         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
10709         NOTE_BASIC_BLOCK.
10710
10711         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
10712         debug_bb_n): New functions.
10713         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
10714         * basic-block.h: Prototype new functions.
10715
10716 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
10717
10718         * configure.in: Add support for avr target.
10719         * configure: Rebuilt.
10720
10721         * invoke.texi: Add AVR invocation docs.
10722         * install.texi: Add information about AVR.
10723         * md.texi: Add AVR constraint letters description.
10724         * extend.texi: Add description for AVR specific attributes.
10725
10726 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
10727
10728         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
10729
10730 2000-02-16  Nick Clifton  <nickc@cygnus.com>
10731
10732         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
10733         (make_insn_raw): Move RTL check here.
10734
10735 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10736
10737         * version.c: Include gansidecl.h and version.h.
10738
10739         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
10740
10741         * configure.in (gcc_version): When setting, narrow search to
10742         lines containing `version_string'.
10743
10744         * Makefile.in (mainversion): Likewise.
10745         (GCC_H): New variable.
10746         (gcc.h): Delete target.
10747         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
10748         (version.o): Depend on version.h.
10749         (dbxout.o): Don't depend on gcc.h.
10750
10751 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10752                           Michael Meissner  <meissner@cygnus.com>
10753
10754         * md.texi (Simple Constraints): Add item about whitespace.
10755         * genoutput.c (strip_whitespace): New.
10756         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
10757         strip_whitespace for constraints.
10758         Test pointer using NULL, not 0.
10759
10760 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10761
10762         * cpplib.c (do_line): Pedwarn for #line > 32767.
10763
10764         * c-lex.c (readescape): Warn about '\x', but do not reject it.
10765
10766 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
10767
10768         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
10769         to default cpp spec.
10770         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
10771         * cpp.texi: Document __GNUC_PATCHLEVEL__.
10772         * cpp.1: Likewise.
10773
10774         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
10775         default spec.
10776
10777 2000-02-15  Denis Chertykov  <denisc@overta.ru>
10778
10779         * configure.in: Add support for avr target.
10780
10781 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10782
10783         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
10784         (sh_addr_diff_vec_mode): Don't declare.
10785         * sh.c (sh_addr_diff_vec_mode): Delete.
10786
10787 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10788
10789         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
10790
10791 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10792
10793         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
10794         (smulsi3_highpart_i): Name.
10795         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
10796         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
10797         (smulsi3_highpart, umulsi3_highpart): Likewise.
10798
10799         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
10800         correctly independent of endianness.
10801         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
10802         confuse the optimizers.
10803         (mulsidi3+1, umulsidi3+1): New define_split.
10804
10805 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
10806
10807         * config/sh/sh.md: Guard insn splits against illegal registers.
10808         * config/sh/sh.h: Correct comment about macros.
10809
10810 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10811                           Andrew MacLeod  <amacleod@cygnus.com>
10812
10813         * Makefile.in (lcm.o): Depend on insn-attr.h.
10814         * basic-block.h (optimize_mode_switching): Declare.
10815         * lcm.c (tm_p.h, insn-attr.h): #include.
10816         (seginfo, bb_info): New structs.
10817         (antic, transp, comp, delete, insert) : New file-scope static variables.
10818         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
10819         (reg_becomes_live, optimize_mode_switching): Likewise.
10820         * tm.texi: Add description of mode switching macros.
10821         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
10822
10823         * sh-protos.h (remove_dead_before_cse): Remove prototype.
10824         (fldi_ok, fpscr_set_from_mem): New prototypes.
10825         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
10826         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
10827         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
10828         (sh_flag_remove_dead_before_cse): Remove declaration.
10829         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
10830         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
10831         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
10832         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
10833         (barrier_align): Allow for JUMP_INSNS containing a parallel.
10834         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
10835         (fldi_ok): New function.
10836         (get_fpscr_rtx): Add fpscr_rtx as GC root.
10837         (emit_sf_insn): Only generate fpu switches when optimize < 1.
10838         (emit_df_insn): Likewise.
10839         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
10840         (sh_flag_remove_dead_before_cse): Delete.
10841         (get_free_reg, fpscr_set_from_mem): New functions.
10842         * sh.md (movdf, movsf): Remove no_new_pseudos code.
10843         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
10844
10845 2000-02-15  Loren Rittle  <ljrittle@acm.org>
10846
10847         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
10848
10849 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10850
10851         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
10852         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
10853
10854         * cccp.c: Include version.h and/or don't declare `version_string'.
10855         * collect2.c: Likewise.
10856         * alpha.c: Likewise.
10857         * arm/aof.h: Likewise.
10858         * arm/coff.h: Likewise.
10859         * arm/elf.h: Likewise.
10860         * arm/pe.h: Likewise.
10861         * arm/tcoff.h: Likewise.
10862         * arm/telf.h: Likewise.
10863         * arm/tpe.h: Likewise.
10864         * arm/vxarm.h: Likewise.
10865         * convex/convex.c: Likewise.
10866         * i386/dgux.c: Likewise.
10867         * i386/sun386.h: Likewise.
10868         * m88k/m88k.c: Likewise.
10869         * mcore/mcore-pe.h: Likewise.
10870         * mips/mips.h: Likewise.
10871         * romp/romp.h: Likewise.
10872         * sh/sh.c: Likewise.
10873         * cpphash.c: Likewise.
10874         * cppinit.c: Likewise.
10875         * dwarf2out.c: Likewise.
10876         * dwarfout.c: Likewise.
10877         * gcc.c: Likewise.
10878         * gcc.h: Likewise.
10879         * mips-tfile.c: Likewise.
10880         * protoize.c: Likewise.
10881         * toplev.c: Likewise.
10882         * tree.h: Likewise.
10883
10884         * version.c (version_string): Constify a char*.
10885
10886         * version.h: New file.
10887
10888 2000-02-14  Nick Clifton  <nickc@cygnus.com>
10889
10890         * configure.in: Add mcore-elf and mcore-pe targets.
10891         * configure: Regenerate.
10892
10893         * NEWS: Add note that MCore port has been contributed.
10894
10895         * invoke.texi: Document command line switches for MCore port.
10896         * install.texi: Add MCore to list of supported targets.
10897
10898 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
10899
10900         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
10901         then we will need to import the frame handling functions.
10902         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
10903         to import the frames themselves.
10904
10905 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
10906                           Jason Eckhardt  <jle@cygnus.com>
10907
10908         * basic_block.h: Added prototype for reorder_basic_blocks.
10909         * toplev.c: Changes to add -freorder-blocks and graph dump after
10910         block reordering is done.
10911         * flow.c (reorder_block_def): New structure for use during block
10912         reordering.
10913         (REORDER_BLOCK_*): New macros to access members of above structure.
10914         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
10915         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
10916         functions for block reordering.
10917
10918 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10919
10920         * gcc.texi (Passes): Fix typo.
10921         * md.texi (Standard Names): Ditto.
10922         * tm.texi (Storage Layout): Ditto.
10923
10924 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
10925
10926         * cpplib.c (do_define): Only free the old definition if it
10927         actually had one.
10928
10929 2000-02-13   Neil Booth  <NeilB@earthling.net>
10930
10931         * cppfiles.c (read_and_prescan): When emitting deferred
10932         newlines, test speccase[] again instead of checking each
10933         possible whitespace character in turn.  When we encounter \r,
10934         look behind for \n first, then ahead.
10935
10936 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
10937
10938         * cse.c (cse_altered): New internal flag.
10939         (cse_insn): Set it if we changed an insn.
10940         (cse_main): Clear cse_altered before each basic block.
10941         Only garbage collect if cse_altered is true afterward.
10942
10943 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10944
10945         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
10946
10947 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
10948
10949         * combine.c (simplify_comparison): Fix typo.
10950
10951 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
10952
10953         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
10954         consistently.
10955
10956 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10957
10958         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
10959         previously inserted node instead of root node.  Caller changed.
10960
10961 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10962
10963         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
10964
10965 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10966
10967         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
10968         __dereg_frame_dtor): Add prototype argument.
10969
10970         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
10971
10972         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
10973
10974         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
10975
10976         * gthr-vxworks.h (__gthread_once): Likewise.
10977
10978         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
10979
10980 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
10981
10982         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
10983         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
10984         stack pointer in functions w/o saved registers, output LEAVE more often
10985         on TARGET_USE_LEAVE machines.
10986
10987 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
10988
10989         * config/arm/arm.c (arm_init_cumulative_args); New function:
10990         Initlaise the CUMULATIE_ARGS strcuture for a function
10991         defintion.
10992         (arm_function_arg): New function: Determine where to place a
10993         function's argument.  Also handles deciding the function's
10994         call cookie.
10995         (current_file_function_operand): New function: Return true if
10996         the symbol is a function which has already been compiled.
10997         (arm_is_long_call_p): New function: Return true if the
10998         indicated function should be called via a long call.
10999         (arm_valid_type_attribute_p): New function: Return true if the
11000         attribute is a valid, arm specific, attribute.
11001         (arm_comp_type_attribute): New function: Return true if the
11002         two types have compatable, arm specific, attributes.
11003
11004         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
11005         structure.
11006         (FUNCTION_ARG): Redefine to call arm_function_arg.
11007         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
11008         structure field.
11009         (INIT_CUMULATIVE_ARGS): Redefine to call
11010         arm_init_cumulative_args.
11011         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
11012         field.
11013         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
11014         field.
11015         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
11016         functions.
11017         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
11018         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
11019         (COMP_TYPE_ATTRIBUTES): Define.
11020
11021         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
11022         if a long call is needed.
11023         (call_value): Call arm_is_long_call_p to decide if a long call
11024         is needed.
11025         (call_symbol): Call arm_is_long_call_p to decide if a long call
11026         is needed.
11027
11028         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
11029
11030 2000-02-11  Denis Chertykov  <denisc@overta.ru>
11031
11032         * README.AVR: New file with information about the avr ports.
11033         * config/avr: New directory with avr port files.
11034
11035 2000-02-11  Andreas Jaeger  <aj@suse.de>
11036
11037         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
11038
11039 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
11040
11041         * cpphash.c: Fix formatting, update commentary.
11042         (dump_definition): Take three separate arguments instead of a
11043         MACRODEF structure argument.
11044         * cpphash.h: Update prototype of dump_definition.
11045         * cppinit.c (cpp_finish): Update call of dump_definition.
11046
11047         * cpplib.c (do_define): Always create new hash entry with
11048         T_MACRO type.  Remove redundant check for redefinition of
11049         poisoned identifier.  Update call of dump_definition.
11050         (do_undef): Don't call check_macro_name.  Rename sym_length to
11051         len.
11052         (do_error, do_warning): Don't use copy_rest_of_line or
11053         SKIP_WHITE_SPACE.
11054         (do_warning): Don't use pedwarn for the actual warning,
11055         only the notice about its not being in the standard.  (Fixes
11056         bug with #warning in system headers.)
11057         (do_ident): Stricter argument checking - accept only a single
11058         string after #ident.  Also, macro-expand the line.
11059         (do_xifdef): Use cpp_defined.  De-obfuscate.
11060
11061         (do_pragma): Split out specific pragma handling to separate
11062         functions.  Use get_directive_token.  Update commentary.  Do
11063         not pass on #pragma once or #pragma poison to the front end.
11064         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
11065         do_pragma_default): New.
11066
11067 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
11068
11069         * jump.c (jump_optimize_1): The first operand in a relational
11070         can be a CONST_INT.
11071         * optabs.c (emit_conditional_move): Handle relationals which
11072         have a known true/false result.
11073
11074 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11075
11076         * function.c (thread_prologue_and_epilogue_insns): Don't insert
11077         a RETURN insn into a block which already ends with a jump.
11078
11079 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11080
11081         * haifa-sched.c (BUF_LEN): Increase a lot.
11082
11083 2000-02-11  Nick Clifton  <nickc@cygnus.com>
11084
11085         * configure.in: Add tm_p_file specification for thumb targets.
11086         * configure: Regenerate.
11087
11088         * config/arm/thumb-protos.h: New file: Prototypes for exported
11089         functions defined in thumb.c.
11090
11091 2000-02-11  Robert Lipe  <robertl@sco.com>
11092
11093         * Makefile.in (bootstrap-lean): Remove additional files.
11094         (bootstrap2-lean): Likewise.
11095         (VOL_FILES): List of files for above.
11096
11097 2000-02-11  Nathan Sidwell  <nathan@acm.org>
11098
11099         * cpphash.c (special_symbol): Remove spurious argument to
11100         cpp_lookup.
11101
11102 2000-02-11  Joel Sherrill (joel@OARcorp.com>
11103
11104         * configure.in: (i*86-*-rtems*): Swapped elf and coff
11105         stanzas.
11106         * configure: Rebuilt.
11107
11108 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
11109
11110         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
11111
11112 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
11113
11114         * pa.c, pa.h: Remove trigraph sequences within comments.
11115
11116 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
11117
11118         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
11119
11120 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
11121
11122         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
11123
11124 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11125
11126         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
11127
11128 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11129
11130         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
11131         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
11132         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
11133         (ASM_FILE_END): Use c4x_file_end.
11134         * config/c4x/c4x.c (c4x_global_label): New function.
11135         (c4x_external_ref, c4x_file_end): Likewise.
11136
11137         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
11138         (c4x_external_ref, c4x_end_file): Likewise.
11139
11140 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
11141
11142         * cppexp.c: Don't include cpphash.h.
11143         (parse_charconst, cpp_lex): Use cpp_defined.
11144         (cpp_lex): Use get_directive_token throughout.  Remove
11145         unnecessary cases from switch.  Move assertion-handling code
11146         down to OTHER case.
11147         (cpp_parse_expr): If we see '+' or '-', check the context to
11148         determine if they are unary or binary operators.  Streamline
11149         the jumps a bit.  Do not call skip_rest_of_line.
11150
11151         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
11152         static.  Export get_directive_token.  Update commentary.
11153         (cpp_defined): New function.
11154         (do_define): Remove reference to T_PCSTRING.  Call
11155         free_definition to release memory for old definition, when
11156         redefining a macro.
11157         (eval_if_expression): Set only_seen_white to 0 before calling
11158         cpp_parse_expr.  Call skip_rest_of_line after it returns.
11159         (cpp_read_check_assertion): Don't preserve a pointer into the
11160         token buffer across a call to cpp_get_token.
11161
11162         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
11163         * cppfiles.c (redundant_include_p): Use cpp_defined.
11164         * cpphash.c (free_definition): New function.
11165         (delete_macro): Use it.  Update commentary.
11166         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
11167         free_definition.
11168         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
11169         from enum node_type.  Prototype cpp_defined and get_directive_token.
11170         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
11171
11172         * fix-header.c (check_macro_names): Use cpp_defined.
11173         (read_scan_file): Set inhibit_warnings and inhibit_errors in
11174         the options structure.
11175
11176 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11177
11178         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
11179
11180 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
11181
11182         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
11183         rather than die->die_tag.
11184
11185 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11186
11187         * combine.c (make_extraction, force_to_mode): Avoid warning on
11188         mixed-signedness conditionals.
11189         (make_field_assignment, nonzero_bits): Likewise.
11190         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
11191         (store_split_bit_field, extract_split_bit_field): Likewise.
11192         (extract_fixed_bit_field, store_bit_field,
11193         * expr.c: Change alignment to be unsigned everywhere.
11194         (move_by_pieces, store_constructor_field, store_constructor):
11195         Alignment parm is unsigned.
11196         (emit_block_move, emit_group_load, emit_group_store): Likewise.
11197         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
11198         (do_compare_rtx_and_jump): Likewise.
11199         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
11200         Compare align with GET_MODE_ALIGNMENT.
11201         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
11202         (get_inner_reference): Likewise.
11203         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
11204         (expand_assignment): Local vars for alignment now unsigned.
11205         (store_constructor, store_field, expand_expr, do_jump): Likewise.
11206         (do_compare_and_jump): Likewise.
11207         (store_field): Call new function expr_align.
11208         * expr.h (emit_block_move, emit_group_load, emit_group_store):
11209         Alignment arg now unsigned.
11210         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
11211         (do_compare_rtx_and_jump, store_bit_field): Likewise.
11212         (extract_bit_field): Likewise.
11213         * fold-const.c (add_double): Add cast to eliminate signedness warning.
11214         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
11215         (get_best_mode): Alignment arg is unsigned.
11216         * rtl.h (move_by_pieces): Likewise.
11217         * store-layout.c (maximum_field_alignment, set_alignment):
11218         Now unsigned.
11219         (layout_decl): Alignment arg is now unsigned.
11220         Remove unneeded casts.
11221         (layout_record, layout_union, layout_type): Remove unneeded casts.
11222         Local alignment variables now unsigned.
11223         (get_best_mode): Alignment arg now unsigned.
11224         * tree.c (expr_align): New function.
11225         * tree.h (expr_align): Likewise.
11226         (maximum_field_alignment, set_alignment): Now unsigned.
11227         (get_inner_reference): Alignment argument is now pointer to unsigned.
11228         * varasm.c (assemble_variable): Add cast to eliminate warning.
11229
11230 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
11231
11232         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
11233         then store directly into op0.
11234
11235         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
11236         the CALL_INSN, and emit the note immediately after it.
11237
11238 2000-02-10  Nick Clifton  <nickc@cygnus.com>
11239
11240         * config/arm/thumb.md (epilogue): Include a (return) in the
11241         generated insn, and emit it using emit_jump_insn not
11242         emit_insn.
11243
11244 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
11245
11246         * function.c (assign_temp): Change zero-sized arrays to size 1.
11247         * integrate.c (expand_inline_function): Do not update
11248         stack_alignment_needed
11249         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
11250         add some sanity checking, remove optimization for function with
11251         zero frame size.
11252
11253 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11254
11255         * flow.c (mark_regs_live_at_end): Delete unused variables.
11256
11257         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
11258
11259         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
11260         in macro FRAME_GROWS_DOWNWARD.
11261
11262         * stmt.c (expand_end_bindings): Delete unused variable.
11263
11264         * unroll.c (iteration_info): Mark parameter `loop' with
11265         ATTRIBUTE_UNUSED.
11266
11267 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11268
11269         * fixinc/server.c (load_data): Return NULL if the marker line is
11270         not found.
11271         (run_shell): If load_data returns NULL, retry the command once, in
11272         a new shell.
11273
11274         * configure: Rebuilt.
11275
11276 2000-02-09  Bruce Korb  <bkorb@gnu.org>
11277
11278         * gcc/fixincludes:  ** DELETED **
11279         * gcc/fixcpp:  ** DELETED **
11280         * gcc/fixinc-nt.sed:  ** DELETED **
11281         * gcc/just-fixinc:  ** DELETED **
11282         * gcc/Makefile.in:  Removed out-dated commentary
11283         * gcc/configure.in: Removed fast-fixincludes disablement.
11284         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
11285
11286 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11287         * function.c (thread_prologue_and_epilogue_insns): Uncomment
11288         last change.
11289
11290 2000-02-09  Richard Henderson  <rth@cygnus.com>
11291
11292         * jump.c (delete_insn): Don't delete user labels at -O0.
11293
11294 2000-02-09  Robert Lipe  <robertl@sco.com>
11295
11296         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
11297         Don't link with HOST_LIBS.
11298
11299 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11300
11301         * configure.in: Correct --help text for --with-dwarf2.
11302         Put tm-dwarf2.h after other tm files, if it's requested.
11303         * configure: Regenerate.
11304         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
11305         defining it.
11306
11307 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11308
11309         * cpplib.h: Provide HASHNODE typedef and forward decl of
11310         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
11311         DEFINITION, struct hashnode, struct macrodef, struct
11312         definition, scan_decls prototype, default defn of
11313         INCLUDE_LEN_FUDGE moved elsewhere.
11314
11315         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
11316         definition, and struct hashnode moved here. Remove the unused
11317         'predefined' field from struct definition.  Replace the 'args'
11318         union with its sole member.  All users updated (cpphash.c).
11319         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
11320         multiple include guard.
11321
11322         * cpphash.c (hashf): Make static; use better algorithm; drop
11323         HASHSIZE parameter; return an unsigned int.
11324         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
11325         used. Calculate HASHSIZE modulus here.
11326         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
11327         here.
11328         (create_definition): Drop PREDEFINITION parameter.
11329         * cpplib.c (do_define): Don't calculate a hash value here.
11330         Don't pass (keyword == NULL) to create_definition.
11331
11332         * scan.h: Prototype scan_decls here.
11333         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
11334         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
11335         callers of cpp_lookup and cpp_install updated.
11336
11337         * cpphash.c (macarg): Hoist all the flag diddling out of the
11338         function...
11339         (macroexpand): ... and out of the loop that calls macarg.
11340         Skip over the initial paren before macro arguments with
11341         cpp_get_non_space_token; point may be some distance before
11342         that paren.  Abort if it's not there.
11343
11344         * cpplib.c (parse_clear_mark): Delete function.
11345         (parse_set_mark, parse_goto_mark): Make static.
11346         (ACTIVE_MARK_P): New macro.
11347         (skip_block_comment, skip_line_comment): Do not bump the line
11348         if ACTIVE_MARK_P is true.
11349         (cpp_pop_buffer): The buffer to be popped may not have an
11350         active mark.
11351         (cpp_get_token): When looking for the initial paren before
11352         macro arguments, only set a mark in a file buffer, Always
11353         return to that mark before proceeding to call macroexpand or
11354         return a NAME token.
11355
11356         * cpplib.h: Remove prototypes of parse_set_mark,
11357         parse_clear_mark, parse_goto_mark.
11358         (struct cpp_options): Rename 'put_out_comments' to
11359         'discard_comments' and invert its sense.
11360         * cppinit.c, cpphash.c, cpplib.c: All users of
11361         put_out_comments changed to use discard_comments, with
11362         opposite sense.
11363
11364 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11365
11366         * function.c (thread_prologue_and_epilogue_insns): Don't delete
11367         the edge from a block that both jumps and falls through to the
11368         fallthru block.
11369
11370 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
11371
11372         * config/arm/arm.md (movsi): In PIC mode, make sure that a
11373         constant source address is legitimate.
11374
11375 2000-02-09  Philip Blundell  <pb@futuretv.com>
11376
11377         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
11378         correctly.
11379
11380         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
11381         generating PIC.
11382         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
11383
11384 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
11385
11386         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
11387         ends with a newline and a NUL.  Don't be so clever manipulating
11388         strings.
11389
11390 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
11391
11392         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
11393         not to BIGGEST_ALIGNMENT.
11394
11395 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
11396
11397         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
11398         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
11399         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
11400         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
11401         * frame.c (execute_cfa_insn): Handle
11402         DW_CFA_GNU_negative_offset_extended.
11403
11404 2000-02-08  Richard Henderson  <rth@cygnus.com>
11405
11406         * flow.c (tidy_fallthru_edges): Split out from ...
11407         (delete_unreachable_blocks): ... here.
11408         (find_basic_blocks): Use it.
11409
11410 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11411
11412         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
11413
11414 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
11415
11416         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
11417         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
11418         (fix-header.o): Don't depend on cpphash.h.
11419
11420         * scan.c (hashstr): New function.
11421         * scan.h: Prototype it.
11422         * fix-header.c: Don't include cpphash.h.  Use hashstr.
11423         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
11424         hashstr.  Report hash table statistics.  Add private
11425         definition of xrealloc.
11426
11427 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11428
11429         * i386.h (TARGET_SWITCHES): Fix typo in option name.
11430
11431 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
11432
11433         * function.c (thread_prologue_and_epilogue_insns): Don't replace
11434         jumps with returns unless they are jumps to the fallthru block.
11435
11436 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
11437
11438         * i386.md (addqi3_cc): Fix contraints.
11439
11440 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11441
11442         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
11443
11444 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
11445
11446         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
11447         carriage return after a macro name.
11448
11449 2000-02-07  Fred Fish  <fnf@be.com>
11450
11451         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
11452         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
11453
11454 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
11455
11456         * cppfiles.c (deps_output): Count spacers in deps_column.
11457
11458 2000-02-07  Neil Booth  <NeilB@earthling.net>
11459
11460         * cppinit.c (initialize_dependency_output): If there is no
11461         suffix, don't try to look for known suffixes.  Use strrchr.
11462         (cpp_start_read): Remove duplicate initialization.
11463
11464 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
11465
11466         * calls.c (compute_argument_block_size): New argument
11467         preferred_stack_boundary.
11468         (expand_call): update cfun->preferred_stack_boundary, update call of
11469         compute_argument_block_size
11470         (emit_library_call): Increate cfun->preferred_stack_boundary
11471         to PREFERRED_STACK_BOUNDARY
11472         (emit_library_call_value): Likewise.
11473         * explow.c (allocate_dynamic_stack_spave): Likewise.
11474         * function.c (prepare_function_start): Set
11475         cfun->preferred_stack_boundary
11476         * function.h (struct function): Add preferred_stack_boundary field.
11477         * integrate.c (expand_inline_function): Update
11478         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
11479         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
11480         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
11481
11482 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
11483
11484         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
11485         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
11486         cpp_pedwarn, cpp_pedwarn_with_line,
11487         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
11488         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
11489         v_cpp_error_with_line, v_cpp_warning_with_line,
11490         cpp_message_from_errno, cpp_perror_with_name): Delete.
11491
11492         * cpperror.c (cpp_print_containing_files): Take starting
11493         buffer as argument.
11494         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
11495         (v_cpp_message): Now called directly by all entry points.
11496         Remove -1 case.
11497         (cpp_pfatal_with_name, cpp_message): Delete.
11498         (cpp_notice_from_errno, cpp_ice): New functions.
11499         (cpp_notice): Is now for reporting error conditions, just
11500         without an associated file.
11501         (cpp_error, cpp_error_with_line): Don't do anything if
11502         opts->inhibit_errors is on.
11503         (cpp_pedwarn_with_file_and_line): Take column argument also.
11504
11505         * cpplib.h: Update prototypes of exported functions.
11506         (struct cpp_options): Add inhibit_errors.
11507
11508         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
11509         non-error messages.  Include intl.h.
11510
11511         * cppinit.c, cppmain.c: Likewise.  Also, use
11512         cpp_notice_from_errno instead of cpp_perror_with_name or
11513         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
11514
11515         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
11516         report internal errors.
11517
11518         * cpplib.c (do_define): Switch bcopy to memcpy.
11519         Give cpp_pedwarn_with_file_and_line a dummy column argument.
11520
11521         * cpplib.c (copy_rest_of_line): Revert previous change: don't
11522         bail out early if we hit a line comment.
11523
11524 2000-02-06  Richard Henderson  <rth@cygnus.com>
11525
11526         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
11527         * basic-block.h: Declare them.
11528         * emit-rtl.h (active_insn_p): New.
11529         (next_active_insn, prev_active_insn): Use it.
11530         * rtl.h: Declare it.
11531         * function.c (emit_return_into_block): New.
11532         (thread_prologue_and_epilogue_insns): Insert return insns instead
11533         of epilogues when possible.
11534         * jump.c (jump_optimize_1): Remove code to insert a return insn
11535         on the fallthru to the exit block.
11536
11537         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
11538         and for non-empty stack frames.
11539         * i386.md (return): Expand to return-pop as needed.
11540
11541 2000-02-06  Richard Henderson  <rth@cygnus.com>
11542
11543         * simplify-rtx.c (simplify_relational_operation): Canonicalize
11544         constant to op1 for testing.
11545
11546 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11547
11548         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
11549         (fixuns_truncqfqi2): Use it.
11550
11551 2000-02-06  Richard Henderson  <rth@cygnus.com>
11552
11553         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
11554         as a TYPE_LEA insn.
11555
11556         * i386.md (widening and peepholes): Mask the constant instead of
11557         using gen_lowpart.
11558
11559 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
11560
11561         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
11562         input pointer before possibly branching off to the backslash
11563         code.
11564         * cpphash.c (macroexpand): Correctly delete \r escapes when
11565         stringifying parameters.
11566         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
11567         if we can; bail out early if we hit a line comment.
11568         (handle_directive): Treat '# 123' in an .S file just like
11569         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
11570         Return 1 for '# not_a_directive'.
11571         (get_directive_token): Pop macro buffers here, so that
11572         cpp_get_token can't sneakily move past a newline.
11573         Add sanity checks.
11574         (cpp_get_token): goto randomchar if handle_directive returns 0.
11575
11576         * cppalloc.c: Update copyright.
11577         * cpplib.c: Merge all the static function prototypes into one
11578         block.
11579         * cpplib.h: Remove #if 0 block.
11580
11581         * cpperror.c: Remove #ifdef EMACS block.
11582         * cppmain.c: Likewise.
11583         * cpphash.c: Remove #if 0 blocks.
11584         * cppinit.c: Remove #if 0 blocks, and the -lint option.
11585         * cpplib.c: Remove #if 0 blocks and code referencing
11586         pcp_inside_if or for_lint.  Remove duplicate error message.
11587         Fix error messages for #else after #else or #elif.  Reformat.
11588         Remove archaic TODO list.
11589         * cpplib.h: Remove pcp_inside_if and for_lint flags.
11590
11591 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
11592
11593         * i386/osf1elf.h: Add missing backslash to multiline string.
11594
11595 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11596
11597         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
11598
11599 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11600
11601         * Makefile.in (c-common.o): Depend on $(EXPR_H).
11602
11603         * c-common.c: Include expr.h.
11604
11605         * c-pragma.c (mark_align_stack): Add prototype.
11606
11607         * caller-save.c (add_stored_regs): Likewise.
11608
11609         * combine.c (record_promoted_value): Likewise.
11610
11611         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
11612         Likewise.
11613
11614         * cppinit.c (new_pending_define): Likewise.
11615
11616         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
11617
11618         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
11619         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
11620         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
11621         class_scope_p): Likewise.
11622
11623         * dwarf2out.h (dwarf2out_set_demangle_name_func,
11624         dwarf2out_add_library_unit_info): Likewise.
11625
11626         * ggc.h (ggc_page_print_statistics): Likewise.
11627
11628         * haifa-sched.c (propagate_deps): Likewise.
11629
11630         * reg-stack.c (next_flags_user, record_label_references): Likewise.
11631
11632         * rtl.h (set_stack_check_libfunc): Likewise.
11633
11634         * toplev.h (set_fatal_function): Likewise.
11635
11636         * toplev.c (set_fatal_function): Delete prototype.
11637
11638         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
11639
11640 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11641
11642         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
11643         (FUNC_END): Likewise.
11644
11645 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11646
11647         * caller-save.c: Include tm_p.h.
11648
11649 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11650
11651         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
11652
11653 2000-02-04  Neil Booth  <NeilB@earthling.net>
11654
11655         * cccp.c (main): Check 'dir' for a NULL pointer before passing
11656         it to strcmp.
11657
11658 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
11659
11660         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
11661         * genflags.c: Use the max_operand_1 logic from genemit.c to
11662         calculate how many arguments gen_insn prototypes have.  Remove
11663         NO_MD_PROTOTYPES ifdefs from the generated file.
11664         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
11665         file.  Cast gen_insn initializers to insn_gen_fn.
11666         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
11667         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
11668
11669 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11670
11671         * fixinc/Makefile.in (HDR): Add machname.h.
11672         (clean): Likewise.
11673
11674 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11675
11676         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
11677         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
11678         (c4x_cpu_version): Ditto.
11679         * config/c4x/c4x-protos.h: ... here.
11680
11681 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
11682
11683         * dwarf2out.c (add_abstract_origin_attribute): Don't call
11684         gen_abstract_function on our context if we're a nested function.
11685
11686 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11687
11688         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
11689         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
11690
11691 2000-02-04  Bruce Korb  <bkorb@gnu.org>
11692
11693         * fixinc/genfixes(machname.h):
11694         Move the functionality from gen-machine.h into this file.
11695         UNdef MN_NAME_PAT if there are no names to change.
11696         Also, be a little kinder when AutoGen is not present.
11697
11698         * fixinc/Makefile.in(machname.h):
11699         Change the generation rule to use genfixes.
11700
11701         * fixinc/fixfixes.c(machine_name):
11702         machine_name_fix's functionality now dependent upon whether
11703         MN_NAME_PAT is defined.
11704
11705         * fixinc/fixtests.c(machine_name):
11706         ditto.
11707
11708         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
11709         of MN_NAME_PAT.
11710
11711         * fixinc/fixlib.h(mn_get_regexps):
11712         ditto
11713
11714         * fixinc/gen-machine.h: DELETED
11715
11716 2000-02-04  Jan Hubicka  <jh@suse.cz>
11717             Richard Henderson  <rth@cygnus.com>
11718
11719         * i386.c (SAVE_REGS_FIRST): Remove.
11720         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
11721         (ix86_compute_frame_size): Likewise.
11722         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
11723         (ix86_emit_restore_regs): Remove.
11724         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
11725         when a frame pointer is in use.
11726         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
11727         instead of pop to restore a register when profitable; emit leave
11728         when profitable.
11729         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
11730         as a TYPE_LEA insn.
11731         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
11732         * i386.md (prologue_allocate_stack): Remove.
11733         (epilogue_deallocate_stack): Remove.
11734         (pro_epilogue_adjust_stack): New.
11735
11736 2000-02-04  Richard Henderson  <rth@cygnus.com>
11737
11738         * function.c (diddle_return_value): Rework to use a callback function.
11739         Use current_function_return_rtx if it's been set up.
11740         (do_clobber_return_reg, clobber_return_register): New.
11741         (do_use_return_reg, use_return_register): New.
11742         (expand_function_end): Use them.
11743         * stmt.c (expand_null_return): Likewise.
11744         * function.h: Declare them.
11745         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
11746         (mark_reg): Change arguments as appropriate for callback.
11747         * integrate.c (expand_inline_function): Revert 19 Jan change.
11748
11749 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11750
11751         * tm.texi (Values in Registers): Fix typo: "fo" "for".
11752         (Misc): Say the scheduler, not the Haifa scheduler.
11753
11754 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
11755
11756         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
11757         when in_mem is set.  Update all callers.
11758
11759 2000-02-04  Richard Henderson  <rth@cygnus.com>
11760
11761         * i386/openbsd.h (INT_ASM_OP): Define.
11762
11763 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11764
11765         * tm.texi: Fix various typos.
11766
11767 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
11768
11769         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
11770         (MD_STARTFILE_PREFIX_1): New macro.
11771
11772 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
11773
11774         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
11775         destination when needed.
11776         (strmovsi, strsetsi): New expander.
11777         (strmovsi_1, strsetsi_1): New pattern.
11778         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
11779         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
11780         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
11781         * invoke.texi (align-stringops, inline-all-stringops): Document.
11782
11783 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
11784
11785         * i386/netbsd.h (INT_ASM_OP): Define.
11786
11787 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
11788
11789         * cpplib.h (cpp_reader): Add new flag, no_directives.
11790         * cpphash.c (macarg): Set it.
11791         * cpplib.c (handle_directive): If no_directives is on and we
11792         find a directive, issue an error and discard the line.
11793
11794 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
11795
11796         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
11797         FP constants.  Add ! TARGET_FPU check for FP constants.
11798
11799 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
11800
11801         * flow.c (find_basic_blocks): Don't kill label_value_list
11802         here.
11803         (cleanup_cfg): Kill it here.
11804
11805 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11806
11807         * expr.c (store_field): Ensure ALIGN is no stricter than the
11808         alignment of EXP.
11809
11810 2000-02-02  Richard Henderson  <rth@cygnus.com>
11811
11812         * jump.c (delete_insn): Partially revert 19 Jan change;
11813         don't convert unused code labels to notes at -O0.
11814
11815 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11816
11817         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
11818         split_all_insns to recreate REG_LABEL notes for flow2 pass.
11819
11820 2000-02-01  Richard Henderson  <rth@cygnus.com>
11821
11822         * i386.c (general_no_elim_operand): New.
11823         (nonmemory_no_elim_operand): New.
11824         (ix86_expand_move): Copy eliminable operands before a push.
11825         * i386-protos.h: Declare new functions.
11826         * i386.h (CAN_ELIMINATE): Simplify.
11827         (PREDICATE_CODES): Update.
11828         * i386.md (push insns): Don't allow eliminable register operands.
11829
11830 2000-02-01  Richard Henderson  <rth@cygnus.com>
11831
11832         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
11833         replace BLKmode with DECL_RTL's mode.
11834
11835 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
11836
11837         * frame.c (find_fde): Convert for loop to do-while so compiler
11838         sees it's always executed at least once.
11839         * libgcc2.c (BBINBUFSIZE): Kill.
11840         (__bb_init_prg): Use fgets.
11841         (__bb_exit_trace_func): Don't paste strings.
11842         * unroll.c (unroll_loop): Initialize unroll_type, not
11843         unroll_number, and tweak logic to match.
11844
11845         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
11846         all failure paths.
11847         (ix86_flags_dependant): Likewise.  Disentangle control flow.
11848         (ix86_sched_reorder): Break guts out to
11849         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
11850         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
11851         any possible use.
11852
11853         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
11854         use string concatenation.  Don't save and restore esi.
11855
11856         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
11857         (machname.h): Remove script to separate file.  Use two-step
11858         sequence so target is not created if script fails.
11859         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
11860         identifiers are defined.
11861         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
11862         an empty string, machine_name doesn't need to do anything at
11863         all.
11864         (is_cxx_header): Add more cases to regexp.
11865         * fixinc/fixlib.h: Update prototype.
11866         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
11867         mn_get_regexps.
11868         * fixinc/fixincl.c: Define NO_BOGOSITY.
11869
11870         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
11871         (hp_sysfile): Add missing comma.
11872         (math_exception): Put the wrapper ifdefs at the beginning and
11873         the end of the file.
11874         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
11875
11876 2000-02-01  Richard Henderson  <rth@cygnus.com>
11877
11878         * sparc.c (fp_zero_operand): Turn into a normal predicate.
11879         Use CONST0_RTX.  Update all callers.
11880         * sparc.h, sparc-protos.h: Update accordingly.
11881         * sparc.md (fp mov insns): Use fp_zero_operand directly
11882         where applicable.
11883
11884 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11885
11886         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
11887         example.
11888
11889 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11890
11891         * Makefile.in (specs.ready): New target.
11892         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
11893
11894 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11895
11896         * fixinc.irix: Use unique filenames for writing into /tmp,
11897         * fixinc.ptx: Likewise.
11898         * fixinc.sco: Likewise.
11899         * fixinc.svr4: Likewise.
11900         * fixinc.winnt: Likewise.
11901
11902 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11903
11904         * tsystem.h: New file.
11905
11906         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
11907         s-crtS): Depend on tsystem.h.
11908
11909         * crtstuff.c: Include tsystem.h.
11910         * frame.c: Likewise.
11911         * libgcc2.c: Likewise.
11912
11913 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
11914
11915         * builtins.c (expand_builtin_memset): Expand for variable sized
11916         lengths too.
11917
11918 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
11919
11920         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
11921         on ABI.
11922
11923 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11924
11925         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
11926
11927         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
11928
11929 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
11930
11931         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
11932         case 3->2 combining (combining with splitting) in which 2 is CC0
11933         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
11934         checked at the begining of the function with the aid of calling
11935         function 'can_combine_p'.
11936
11937 2000-01-31  Dave Brolley  <brolley@redhat.com>
11938
11939         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
11940
11941 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
11942
11943         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
11944         new label.
11945
11946 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11947
11948         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
11949
11950         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
11951         PROTO -> PARAMS.
11952
11953 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
11954
11955         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
11956         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
11957         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
11958         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
11959         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
11960         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
11961         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
11962         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
11963         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
11964         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
11965
11966         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
11967         Add %(cpp_cpu) to CPP_SPEC.
11968
11969         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
11970         Add %(cc1_cpu) to CC1_SPEC.
11971
11972 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
11973
11974         * c-decl.c (c_decode_option): Accept optional numeric argument to
11975         -Wformat and set warn_format.
11976         * c-common.c: Don't emit warning about non-constant printf format
11977         string unless warn_format > 1.
11978
11979 2000-01-30  Richard Henderson  <rth@cygnus.com>
11980
11981         * alpha.md (return_internal): Allow after reload only.
11982
11983 2000-01-30  Richard Henderson  <rth@cygnus.com>
11984
11985         * i386.c (ix86_compute_frame_size): Omit padding1 if the
11986         local frame size is zero.
11987
11988 2000-01-30  Richard Henderson  <rth@cygnus.com>
11989
11990         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
11991         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
11992         * alpha.md (return): Turn into an expander.
11993         (return_internal): Don't use $26.
11994         (epilogue): Emit the return insn.
11995
11996 2000-01-30  Richard Henderson  <rth@cygnus.com>
11997
11998         * alpha.md (negtf2, abstf2): Fix word order thinko.
11999         (extendsftf2): New.
12000         (trunctfsf2): Avoid intermediate rounding errors.
12001
12002 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
12003
12004         * cppfiles.c (find_position): Drop 'colp' argument, return the
12005         new line base.
12006         (read_and_prescan): Adjust to match.  Don't ever manipulate
12007         line or line_base except via find_position.
12008
12009 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
12010
12011         * c-parse.in: Apply Ulrich's changes from c-parse.y.
12012         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
12013         Regenerate.
12014
12015 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
12016
12017         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
12018         just print "<command line>".  If 'filename' is null or an
12019         empty string, print "<stdin>" for the filename.
12020         * cpplib.c (do_define): Don't print the 'location of the
12021         previous definition' message if we're still parsing the
12022         command line.
12023         (cpp_pedwarn_with_file_and_line): Always call
12024         cpp_file_line_for_message.
12025
12026 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
12027
12028         * flow.c (mark_regs_live_at_end): Fix typo.
12029
12030 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
12031
12032         * c-common.c: Adjust variable names, comments, help strings to c99.
12033         * c-lex.c: Likewise.
12034         * c-parse.y: Likewise.
12035         * c-tree.h: Likewise.
12036         * cccp.c: Likewise.
12037         * cpplib.h: Likewise.
12038         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
12039         * cppinit.c: Likewise.
12040
12041 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12042
12043         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
12044         * c4x.c: Define the optab rtx values.
12045         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
12046         (c4x_emit_libcall): Use new optab rtx values.
12047         (c4x_emit_libcall3): Likewise.
12048         (c4x_emit_libcall_mulhi): Likewise.
12049         * c4x-protos.h: Add prototypes for optab rtx values and change
12050         prototypes for above c4x_emit_libcall functions.
12051
12052 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12053
12054         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
12055         syntax is used.
12056         (c4x_function_prologue): Use regnames intead of float_reg_names when
12057         TI syntax is used.
12058         (c4x_function_epilogue): Likewise.
12059         (c4x_print_operand): Likewise.
12060         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
12061         * c4x.md (set_high): Disable for TARGET_TI.
12062
12063 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12064
12065         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
12066         of framepointer + constant to ADDR_REGS class.
12067         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
12068         * c4x.c (std_or_reg_operand): New function.
12069         * c4x-protos.h (std_or_reg_operand): Prototype it.
12070
12071 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12072
12073         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
12074                 object names as libgcc2.c.
12075         * libgcc.S: Use newly defined names.
12076
12077 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
12078         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
12079         function.
12080         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
12081         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
12082         (FLOW_LOOP_LAST_BLOCK): Likewise.
12083
12084 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12085
12086         * basic-block.h (struct loop): New fields 'first' and 'last'.
12087         * flow.c (flow_loops_find): Compute loop->first and loop->last.
12088         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
12089         and loop->last to check for NOTE_INSN_LOOP_END.
12090
12091 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
12092
12093         * predict.c (estimate_probability): Use the new FIRST and LAST fields
12094         of the loop descriptor rather than HEADER and LATCH. Also added
12095         missing break statements as well making some coding style modifications
12096         as suggested by Michael Hayes.
12097
12098 2000-01-28  Richard Henderson  <rth@cygnus.com>
12099
12100         * flow.c (find_basic_blocks): Remove do_cleanup argument.
12101         Break out that code ...
12102         (cleanup_cfg): ... here.
12103         (commit_one_edge_insertion): Detect a return instruction being
12104         emitted to an edge.  Emit a barrier following; clear fallthru.
12105         (commit_edge_insertions): Verify CFG consistency.
12106         * function.c (expand_function_start): Kill unused variable.
12107         (expand_function_end): Likewise.
12108         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
12109         to insert the epilogue.
12110
12111         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
12112         (delete_null_pointer_checks): Likewise.
12113         * output.h: Likewise.
12114         * reg-stack.c (reg_to_stack): Likewise.
12115         * toplev.c (rest_of_compilation): Likewise.  Run
12116         thread_prologue_and_epilogue_insns after rebuilding the CFG.
12117
12118 2000-01-28  Richard Henderson  <rth@cygnus.com>
12119
12120         * Makefile.in (flow.o): Revert 24 Jan change.
12121         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
12122         FUNCTION_VALUE result to DECL_RESULT's mode.
12123
12124         * haifa-sched.c (schedule_insns): Don't recompute reg info
12125         after reload.
12126
12127 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
12128
12129         * configure.in: Make --enable-cpplib the default.
12130         * configure: Regenerate.
12131         * gcc.dg/990119-1.c: No longer expected to fail.
12132
12133 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
12134
12135         * jump.c (jump_optimize_1): Delete an optimization that is also done
12136         by merge_blocks in flow.
12137
12138 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12139
12140         * diagnostic.c (build_message_string, output_printf,
12141         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
12142         (build_location_prefix): Fix non-literal format string.
12143
12144 2000-01-27  Richard Henderson  <rth@cygnus.com>
12145
12146         * alpha.md (trunctfsf2): New.
12147
12148 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
12149
12150         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
12151
12152 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
12153
12154         * cppinit.c (cpp_handle_option): Recognize C++ comments under
12155         -std=gnu89.
12156         * cpplib.c (skip_block_comment, skip_line_comment): Split code
12157         out of...
12158         (skip_comment) ... here.  Permit C++ comments in system
12159         headers always.  Warn about C++ comments in user code under
12160         -std=gnu89 -pedantic.
12161         (copy_comment): Use skip_comment.
12162         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
12163         return EOF.
12164         (consider_directive_while_skipping, do_else, do_endif): Call
12165         validate_else unconditionally.
12166         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
12167         text after the conditional in a system header.
12168         * cpplib.h (struct cpp_buffer): Add flag
12169         warned_cplusplus_comments.
12170
12171 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
12172
12173         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
12174         Use unshare_all_rtl_1.
12175         (unshare_all_rtl_again): New function.
12176         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
12177
12178         * function.c (purge_addressof_1): Use unshare_all_rtl_again
12179         rather than resetting the 'used' flags ourself.
12180
12181         * toplev.c (rest_of_compilation): Add current_function_decl
12182         to the unshare_all_rtl call.
12183         * tree.h: Prototype unshare_all_rtl.
12184         * rtl.h: Prototype unshare_all_rtl_again here.
12185
12186 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
12187
12188         * genoutput.c (output_prologue): Include ggc.h in generated
12189         files.
12190         * Makefile.in (insn-output.o): Depends on ggc.h.
12191
12192 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
12193             Hans-Peter Nilsson  <hp@bitrange.com>
12194
12195         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
12196         Remove redundant include of xm-ns32k.h.
12197         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
12198         Remove redundant include of xm-ns32k.h.
12199         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
12200         Remove redundant include of xm-ns32k.h.
12201         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
12202
12203         * ns32k/ns32k.h: Update comment on multiply-add instructions.
12204         (TARGET_SWITCHES): Add documentation strings.
12205         (DWARF_FRAME_REGNUM): Override default definition.
12206         (REG_CLASS_CONTENTS): Add comments.
12207         (SUBSET_P): Format to reduce line length.
12208         (SMALL_REGISTER_CLASSES): Make a run time option.
12209         (GO_IF_NONINDEXED_ADDRESS): Reformat.
12210         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
12211         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
12212         (regclass_map): fix typo in comment.
12213         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
12214         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
12215         (trace, reg_or_mem_operand): Delete, unused function.
12216         (calc_address_cost): Small offsets are cheaper than large ones.
12217         (expand_block_move): Generate more efficient code when bytes is a
12218         known at compile time.
12219         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
12220         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
12221         instead of reg_or_mem_operand.
12222
12223         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
12224         not general_operand.  Similarly use "=rm" or stricter, not "=g".
12225         For input operands, use stricter constraints than "g" if not
12226         general_operand.  Similarly use stricter predicate than
12227         "general_operand" when stricter constraints than "g" are present,
12228         except for matching constraints.
12229         (movstrsi): Use "memory_operand" for operands 0 and 1.
12230         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
12231         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
12232         not reg_or_mem_operand.
12233         (udivmoddisi4): Ditto.
12234         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
12235         Use nonimmediate_operand for operand 3, not register_operand.
12236         (udivmoddiqi4_internal): Use register_operand for operand 1, not
12237         reg_or_mem_operand.
12238
12239 2000-01-27  Fred Fish  <fnf@be.com>
12240
12241         * gthr-posix.h: Fix typo; compatibily -> compatibility.
12242         * gthr-single.h: Likewise.
12243         * gthr-solaris.h: Likewise.
12244         * gthr-vxworks.h: Likewise.
12245         * gthr-win32.h: Likewise.
12246         * gthr.h: Likewise.
12247
12248 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
12249
12250         * cppinit.c: Add " (cpplib)" to end of string printed by
12251         -v / --version.
12252
12253 2000-01-27  Richard Henderson  <rth@cygnus.com>
12254
12255         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
12256         testing for a signed comparison.
12257         (alpha_emit_floatuns): New.
12258         * alpha-protos.h: Declare it.
12259         * alpha.md (floatunsdisf2, floatunsdidf2): New.
12260         (extendsfdf2): Tidy.
12261
12262 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
12263
12264         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
12265         no -g option specifying debugging format, default to -gstabs+.
12266
12267 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
12268
12269         * calls.c (special_function_p): New argument fork_or_exec.
12270         (expand_call): When profile_arc_flag is set and the function
12271         is in the fork_or_exec group, call __bb_fork_func first.
12272         * libgcc2.c, _bb module (__bb_fork_func): New function.
12273         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
12274         output file.
12275         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
12276         * tree.h (special_function_p): Update prototype.
12277
12278 2000-01-26  Richard Henderson  <rth@cygnus.com>
12279
12280         * alpha.c (alpha_split_tfmode_pair): New.
12281         * alpha-protos.h: Declare it.
12282         * alpha.md (abstf2, negtf2): New.
12283         (movtf insn): Add input G constraint.
12284         (movtf splitter): Use alpha_split_tfmode_pair.
12285
12286 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12287
12288         * i386/cygwin.h: PROTO -> PARAMS.
12289
12290 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
12291
12292         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
12293         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
12294         using _Qp_cmp/_Q_cmp and testing the return value.
12295         (print_operand): Call reverse_condition_maybe_unordered if
12296         we are handling CCFPmode or CCFPEmode.
12297         Handle ORDERED, UN* and LTGT comparisons.
12298         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
12299         if not TARGET_HARD_QUAD.
12300         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
12301         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
12302         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
12303         Adjust gen_b* calls so that they reflect return comparison of
12304         sparc_emit_float_lib_cmp.
12305
12306 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12307
12308         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
12309         incoming operands array is large enough for one more operand.
12310         (alpha_emit_xfloating_arith): Likewise.
12311
12312 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12313
12314         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
12315         file with one line and no trailing newline.
12316         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
12317         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
12318         checking if the match is on the line.
12319         * fixinc/gnu-regex.c: Provide regerror not __regerror.
12320
12321 2000-01-25  Richard Henderson  <rth@cygnus.com>
12322
12323         * sparc.c (output_cbranch): Fix accidental squashing of the
12324         fp branch pre-delay nop.
12325
12326 2000-01-25  Richard Henderson  <rth@cygnus.com>
12327
12328         * tree.def (UNNE_EXPR): Remove.
12329         * c-typeck.c (build_binary_op): Don't handle it.
12330         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
12331
12332         * rtl.def (UNNE): Remove.
12333         (LTGT): Add.
12334         * jump.c (reverse_condition): Update accordingly.
12335         (swap_condition): Likewise.
12336         (comparison_dominates_p): Handle unordered comparisons.
12337         (reverse_condition_maybe_unordered): New.
12338         * rtl.h (reverse_condition_maybe_unordered): Declare.
12339
12340         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
12341         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
12342         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
12343         * sparc.md (bltgt): New.
12344
12345 2000-01-25  Nick Clifton  <nickc@redhat.com>
12346
12347         * emit-rtl.c (emit_insn): Only check machine class insns for
12348         improper emission of a RETURN.
12349
12350 2000-01-25  Richard Henderson  <rth@cygnus.com>
12351
12352         * Makefile.in (flow.o): Depend on $(EXPR_H).
12353         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
12354         duplicate the structure of diddle_return_value for keeping regs live.
12355
12356 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12357
12358         * loop.c (current_loop_info): Delete.
12359         (consec_sets_invariant_p): Add loop argument, update callers.
12360         (get_condition_for_loop): Likewise.
12361         (count_nonfixed_reads, update_giv_derive): Likewise.
12362         (simplify_giv_expr, general_induction_var): Likewise.
12363         (consec_sets_giv, recombine_givs): Likewise.
12364         (move_movables): Delete loop_start and loop_end arguments,
12365         add loop argument, and update callers.
12366         (find_mem_givs, check_final_value): Likewise.
12367         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
12368         (loop_invariant_p): Rename from invariant_p, add loop argument, and
12369         update callers.
12370         (basic_induction_var): Add loop argument, delete loop_level argument,
12371         and update callers.
12372         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
12373         add loop argument, and update callers.
12374         (find_splittable_regs, find_splittable_givs): Likewise.
12375         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
12376         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
12377         (biv_total_increment): Delete loop_start and loop_end arguments;
12378         update callers.
12379         (precondition_loop_p): Delete loop_start and loop_info arguments;
12380         update callers.
12381         * loop.h (get_condition_for_loop): Add loop argument.
12382         (biv_total_increment): Delete loop_start and loop_end arguments.
12383         (precondition_loop_p): Delete loop_start and loop_info arguments;
12384         add loop argument.
12385         (final_biv_value): Delete loop_start and loop_end arguments;
12386         add loop argument.
12387         (final_giv_value, back_branch_in_range_p): Likewise.
12388
12389 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
12390
12391         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
12392
12393 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
12394
12395         * Makefile.in (c-gperf.h) : Change the "See" pointer to
12396         point to the new "generated_files" doc.
12397
12398 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
12399
12400         * config/fp-bit.c (_unord_f2): Fix typo.
12401
12402 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12403
12404         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
12405         c-typeck.c, objc/objc-act.c: Remove all references to obstack
12406         functions obsoleted by GC, such as push_obstacks_nochange,
12407         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
12408         and code which existed only to decide whether or not to call
12409         them.  Remove now-unused NESTED argument from start_function;
12410         all callers changed.  Do not change behavior based on ggc_p.
12411         The use of the ixp_obstack in c-iterate.c and the util_obstack
12412         in objc/objc-act.c remain; these are not obsoleted by garbage
12413         collection.
12414         * c-tree.h: Update prototype for start_function.
12415
12416         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
12417
12418 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
12419
12420         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
12421         mips16.
12422
12423 2000-01-25  Richard Henderson  <rth@cygnus.com>
12424
12425         * sparc-protos.h (select_cc_mode): Declare.
12426         * sparc.c (select_cc_mode): New.  Handle unordered compares.
12427         (output_cbranch): Always reverse via code change.  Handle
12428         unordered compares.  Factor tests and string updates.
12429         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
12430         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
12431         * sparc.md (bunordered, bordered): New.
12432         (bungt, bunlt, buneq, bunge, bunle): New.
12433
12434 2000-01-25  Richard Henderson  <rth@cygnus.com>
12435
12436         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
12437         * ggc-common.c (ggc_add_rtx_varray_root): New.
12438         (ggc_mark_rtx_varray): New.
12439         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
12440         functions down below ggc_mark_foo.
12441         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
12442
12443 2000-01-25  Richard Henderson  <rth@cygnus.com>
12444
12445         * alpha.c (secondary_reload_class): Don't allocate a secondary
12446         for integral mode memories into FLOAT_REGS.  Rearrange the more
12447         complicated memory expression inward.
12448
12449 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
12450
12451         * inclhack.def: Fixes to play nicer with FreeBSD, and
12452         corrections to comments.
12453         (cxx_unready): Add select expression.
12454         (irix_sockaddr): Add bypass expression.
12455         (machine_ansi_h_va_list): New fix.
12456         (stdio_va_list): No need to edit _BSD_VA_LIST_.
12457         Split out addition of "#include <stdarg.h>" to...
12458         (stdio_stdarg_h): ... here.
12459         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
12460         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
12461         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
12462         size_t.
12463         (ultrix_ifdef): Tighten up select expression.
12464
12465         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
12466         re_ct and max_mach to avoid use of shell.  Make printed names
12467         match names in inclhack.def.  Use static copyright date.
12468         Don't count c_test and test expressions as requiring regex_t
12469         slots.  Add some commentary.
12470         * inclhack.tpl: Do not include the 'This script contains N
12471         fixup scripts' line if PROGRAM is defined.  Use static
12472         copyright date.
12473
12474 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
12475
12476         * dwarf2out.c: include "varray.h", not dyn-string.h.
12477         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
12478         (addr_const_to_string, addr_to_string): Lose.
12479         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
12480         (struct dw_val_struct): val_addr is now an rtx.
12481         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
12482         (used_rtx_varray): New varray.
12483         (dwarf2out_init): Initialize it.
12484         (save_rtx): New fn.
12485         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
12486         addr_to_string.
12487         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
12488         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
12489         * Makefile.in (dwarf2out.o): Update dependencies.
12490
12491 2000-01-24  Richard Henderson  <rth@cygnus.com>
12492
12493         * i386.c (i386_dwarf_output_addr_const): New.
12494         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
12495
12496         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
12497         if defined.
12498         * dwarfout.c (output_mem_loc_descriptor): Likewise.
12499         * i386.c (i386_simplify_dwarf_addr): New.
12500         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
12501
12502 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
12503
12504         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
12505         TYPE_STUB_DECL is NULL.
12506
12507 2000-01-24  Richard Henderson  <rth@cygnus.com>
12508
12509         * builtins.c (expand_tree_builtin): Move ...
12510         * c-common.c (expand_tree_builtin): ... here.
12511
12512 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12513
12514         * loop.h (LOOP_INFO): New accessor macro.
12515         * basic-block.h (struct loop): Rename field `info' to `aux'.
12516         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
12517         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
12518         * unroll.c (loop_iterations, unroll_loop): Likewise.
12519
12520 2000-01-24  Christopher Faylor <cgf@cygnus.com>
12521
12522         * config/i386/t-cygwin: Accomodate new winsup directory layout
12523         when searching for include files.
12524
12525 2000-01-24  Richard Henderson  <rth@cygnus.com>
12526
12527         * rtl.def: Add unordered fp comparisions.
12528         * tree.def: Likewise.
12529         * tree.h: Add ISO C 9x unordered fp comparision builtins.
12530
12531         * builtins.c (expand_tree_builtin): New function.
12532         * c-typeck.c (build_function_call): Use it.
12533         (build_binary_op): Support unordered compares.
12534         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
12535
12536         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
12537         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
12538         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
12539         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
12540         * jump.c (reverse_condition): Don't abort for UNLE etc, but
12541         return UNKNOWN.
12542         (swap_condition): Handle unordered compares.
12543         (thread_jumps): Check can_reverse before reversing.
12544         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
12545         reversed for FP.
12546
12547         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
12548         setcc is present before acking for cmp_optab.  Update all callers.
12549         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
12550         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
12551         * expr.c (expand_expr): Likewise.  Support unordered compares.
12552         (do_jump, do_store_flag): Likewise.
12553         * expr.h (enum libfunc_index): Add unordered compares.
12554
12555         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
12556         (DPBIT_FUNCS): Add _unord_df.
12557         * config/fp-bit.c (_unord_f2): New.
12558         * fp-test.c (main): Try unordered compare builtins.
12559
12560         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
12561         * alpha.c (alpha_comparison_operator): Check mode properly.
12562         (alpha_swapped_comparison_operator): Likewise.
12563         (signed_comparison_operator): Likewise.
12564         (alpha_fp_comparison_operator): New.
12565         (alpha_emit_conditional_branch): Handle unordered compares.
12566         * alpha.h (PREDICATE_CODES): Update.
12567         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
12568         (bunordered, bordered): New.
12569
12570 2000-01-24  Richard Henderson  <rth@cygnus.com>
12571
12572         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
12573         * alpha.md (movtf): New expander, insn, and splitter.
12574
12575 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
12576
12577         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
12578         dead registers.
12579
12580 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
12581
12582         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
12583         (FIXED_REGISTERS, CALL_USED_REGISTERS,
12584          REG_ALLOC_ORDER): Add frame pointer
12585         (FRAME_POINTER_REGNUM): Set to 20
12586         (HARD_FRAME_POINTER_REGNUM): New macro.
12587         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
12588         to HARD_FRAME_POINTER.
12589         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
12590         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
12591         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
12592         (HI_REGISTER_NAMES): Add "frame".
12593         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
12594         (debug_reg): Handle FRAME_POINTER_REGNUM.
12595         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
12596         GENERAL_REGS and INDEX_REGS.
12597         * i386.c (SAVED_REGS_FIRST): new macro.
12598         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
12599         (ix86_decompose_address, memory_address_length): Likewise.
12600         (regclass_map): Add frame pointer.
12601         (call_insn_operand): Handle frame_pointer_rtx.
12602         (reg_no_sp_operand): Likewise.
12603         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
12604         (print_operand, legitimize_pic_address): Fix formating.
12605         (ix86_compute_frame_size): Make static, update prototype, new
12606         parameters padding1, padding2, use ix86_nsaved_regs, use
12607         stack_alignment_needed.
12608         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
12609         to HARD_FRAME_POINTER_REGNUM conversions.
12610         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
12611         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
12612         (print_reg): Abort on FRAME_POINTER_REGNUM
12613
12614 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
12615
12616         * i386.h (PREDICATE_CODES): Add aligned_operand.
12617         * i386.c (aligned_operand): New function.
12618         (ix86_aligned_p): Kill.
12619         * i386.md (movhi_1): Emit mov for aligned operands.
12620         (promoting peep2s): Use aligned_operand.
12621
12622 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
12623
12624         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
12625         expression to allow underscores in macro names.
12626         (fix_char_macro_defines): Increment scanning pointer.
12627
12628 2000-01-23  Richard Henderson  <rth@cygnus.com>
12629
12630         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
12631         * alpha/osf5.h: New file.
12632         * configure.in (alpha-*-osf5): Add it to tm_file.
12633
12634         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
12635
12636         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
12637         (alpha_emit_xfloating_cvt, function_arg): Declare.
12638         * alpha.c (alpha_emit_conditional_branch): Call
12639         alpha_emit_xfloating_compare for TFmode compares.
12640         (alpha_lookup_xfloating_lib_func): New.
12641         (alpha_compute_xfloating_mode_arg): New.
12642         (alpha_emit_xfloating_libcall): New.
12643         (alpha_emit_xfloating_arith): New.
12644         (alpha_emit_xfloating_compare): New.
12645         (alpha_emit_xfloating_cvt): New.
12646         (print_operand): Add default abort case.
12647         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
12648         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
12649         (BIGGEST_ALIGNMENT): Increase to 128 bits.
12650         (RETURN_IN_MEMORY): True for TF/TCmode.
12651         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
12652         (FUNCTION_ARG): Move to function_arg.
12653         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
12654         (ASM_OUTPUT_LONG_DOUBLE): New.
12655         (ASM_OUTPUT_DOUBLE): Always output bits.
12656         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
12657         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
12658         (extenddftf2, trunctfdf2): New.
12659
12660 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12661
12662         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
12663         * config/sparc/sol2.h: ... here.
12664
12665 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12666
12667         * basic-block.h (struct loops): New field `levels'.
12668         * flow.c (flow_loops_level_compute): Traverse all outer loops.
12669         (flow_loop_level_compute): Initialise level to 1.
12670         (flow_loops_find): Set loops->levels.
12671         (flow_loops_dump): Print loops->levels.
12672
12673 2000-01-23  Richard Henderson  <rth@cygnus.com>
12674
12675         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
12676         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
12677
12678 2000-01-23  Richard Henderson  <rth@cygnus.com>
12679
12680         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
12681         * i386.h (DBX_REGISTER_NUMBER): Use them.
12682         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
12683         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
12684         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
12685         * i386/sequent.h: Kill incorrect comment.
12686
12687 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
12688
12689         * ggc-page.c (struct page_entry): Make `context_depth' an
12690         `unsigned short'.
12691         (struct globals): Likewise.
12692
12693 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
12694
12695         * loop.c (check_dbra_loop): When checking a loop for
12696         reversability, check the source of any stores to ensure
12697         they don't depend on an initial value.
12698
12699 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12700
12701         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
12702
12703 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
12704
12705         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
12706         'pz_scan' into scope of entire function.  Only affects
12707         compiles with -DDEBUG.
12708
12709 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
12710
12711         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
12712         section naming to that prior to 2000-01-07 patch.
12713         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
12714         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
12715         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
12716         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
12717         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
12718
12719 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
12720
12721         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
12722         constant.
12723
12724 2000-01-21  Jim Wilson  <wilson@cygnus.com>
12725
12726         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
12727         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
12728
12729 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
12730
12731         * cpphash.c (change_newlines): Delete function.
12732         (struct argdata): Delete 'newlines' and 'use_count' fields.
12733         (macroexpand): Remove code referencing those fields.
12734
12735 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12736
12737         * loop.c (loops_info): New variable.
12738         (loop_optimize): Allocate loops->array and free it on exit.
12739         Allocate memory for loops_info and assign to each loop,
12740         replacing alloca.
12741         (find_and_verify_loops): Do not allocate loops->array.
12742
12743 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
12744
12745         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
12746
12747 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
12748
12749         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
12750         pseudos if expanded after first flow.
12751         (movdi_pic_label_ref): Likewise.
12752
12753 2000-01-20  Richard Henderson  <rth@cygnus.com>
12754
12755         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
12756
12757 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
12758
12759         * Makefile.in (fixinc.sh): Depend on specs.
12760         * fixinc/Makefile.in: Add rule to create machname.h.
12761         (fixlib.o): Depend on machname.h.
12762         * fixinc/fixtests.c (machine_name): New test.
12763         * fixinc/fixfixes.c (machine_name): New fix.
12764         * fixinc/fixlib.c (mn_get_regexps): New helper function for
12765         the machine_name test and fix.
12766         * fixinc/fixlib.h: Prototype it.
12767         * fixinc/inclhack.def (machine_name): Use the C test and fix.
12768         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
12769
12770         * gcc.c (do_spec_1) [case P]: Take care not to create
12771         identifiers with three leading or trailing underscores.
12772
12773         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
12774         (fixincl): Don't specify libraries twice on link line.
12775         (gnu-regex.o): Remove special rule.
12776         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
12777         defined by config.h.  Do not define _REGEX_RE_COMP.
12778         (regcomp): Allocate and initialize a fastmap.
12779         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
12780
12781 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
12782
12783         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
12784
12785 2000-01-19  Richard Henderson  <rth@cygnus.com>
12786
12787         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
12788         arguments with BB.  Update all callers.  Tidy line wrapping.
12789
12790 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
12791
12792         * emit-rtl.c (try_split): Return last_insn if we split the
12793         last_insn.
12794
12795 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
12796
12797         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
12798         (ix86_initial_elimination_offset): Declare.
12799         * i386.c (ix86_nsaved_regs): Break out from ...
12800         (ix86_can_use_return_insn_p): ... here.
12801         (ix86_emit_save_regs): Break out from ...
12802         (ix86_expand_prologue): ... here.
12803         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
12804         out from ...
12805         (ix86_expand_epilogue): ... here.
12806         (ix86_compute_frame_size): Make static, add prototype.
12807         (ix86_initial_elimination_offset): Break out from ...
12808         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
12809
12810 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12811
12812         * recog.h (OUT_FCN): Delete.
12813
12814         * vax.md: Call `get_insn_template' instead of OUT_FCN.
12815
12816 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12817
12818         * cppalloc.c: PROTO -> PARAMS.
12819         * cpperror.c: Likewise.
12820         * cppfiles.c: Likewise.
12821         * cpplib.c: Likewise.
12822         * cpplib.h: Likewise.
12823
12824         * config/arm/arm-protos.h: PROTO -> PARAMS.
12825         * config/arm/arm.c: Likewise.
12826         * config/c4x/c4x.c: Likewise.
12827         * config/fr30/fr30-protos.h: Likewise.
12828         * config/nextstep.c: Likewise.
12829         * config/pa/pa.c: Likewise.
12830         * config/pj/pj.c: Likewise.
12831         * config/rs6000/rs6000.c: Likewise.
12832         * config/v850/v850-protos.h: Likewise.
12833         * config/v850/v850.c: Likewise.
12834
12835 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12836
12837         * i370-protos.h: New file.
12838
12839         * i370.c: Include tm_p.h.  Fix compile time warnings.
12840
12841         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
12842         warnings.
12843
12844         * i370.md: Likewise.
12845
12846 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12847
12848         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
12849         (target_isinf, target_isnan, eisnan): Mark parameter with
12850         ATTRIBUTE_UNUSED.
12851         (eiisinf): Wrap in INFINITY.
12852         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
12853         (ibmtoe): Remove unused variable `rndsav'.
12854
12855 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
12856
12857         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
12858         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
12859
12860 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
12861
12862         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
12863         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
12864         (fix_char_macro_defines, fix_char_macro_uses): New functions.
12865
12866         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
12867         Recognize Emacs mode markers also.
12868         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
12869         C++ comments in C++ headers.  Call is_cxx_header only if
12870         necessary.
12871
12872         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
12873         bypass for ncurses.
12874         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
12875         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
12876         ... these, which use the new C fixes.
12877         (math_exception): Escape literal '+' in bypass expression.
12878
12879         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
12880         Regenerate.
12881
12882 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12883
12884         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
12885         inside the MEM.
12886
12887 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12888
12889         * loop.c (loop_optimize): Allocate loop_info structure for each loop
12890         prior to calling scan_loop.
12891
12892 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
12893
12894         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
12895         (split_branches, calc_live_regs): Likewise.
12896
12897 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
12898
12899         * sh.md (fpu_single, fp_mode): New attributes.
12900
12901 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12902
12903         * loop.c (current_loop_info): Renamed from loop_info_data
12904         and changed to a pointer.
12905         (loop_optimize): Allocate loop_info structure for each loop
12906         and initialise to zero.
12907         (scan_loop): Set current_loop_info.
12908
12909         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
12910         on iteration_var.
12911
12912 2000-01-19  Richard Henderson  <rth@cygnus.com>
12913
12914         * stupid.c: Die die die.
12915         * Makefile.in (OBJS): Remove stupid.o.
12916         (stupid.o): Likewise.
12917
12918         * except.c (emit_eh_context): Don't emit USEs for stupid.
12919         * explow.c (probe_stack_range): Likewise.
12920         * flags.h (obey_regdecls): Remove.
12921         * flow.c (find_basic_blocks): Don't run try_merge_blocks
12922         when not optimizing.
12923         (life_analysis): Limit data collection when not optimizing.
12924         (mark_regs_live_at_end): Always mark the return value registers.
12925         (mark_used_regs): Remove dummy RETURN case.
12926         (print_rtl_with_bb): Don't consult obey_regdecls.
12927         * function.c (use_variable, use_variable_after): Remove.
12928         (assign_parms): Consult optimize not obey_regdecls.
12929         (expand_function_start): Don't emit USEs for stupid.
12930         (expand_function_end): Likewise.
12931         * global.c (build_insn_chain): Export.
12932         * integrate.c (expand_inline_function): Kill return-value USE
12933         handling code.
12934         * jump.c (jump_optimize_1): Do simple jump optimizations and
12935         dead code elimination.
12936         (calculate_can_reach_end): Remove check_deleted argument.
12937         (delete_insn): Patch out insns even when not optimizing.
12938         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
12939         * rtl.h (use_variable, use_variable_after): Remove declarations.
12940         (build_insn_chain): Declare.
12941         * stmt.c (expand_value_return): Don't emit USEs for stupid.
12942         (expand_end_bindings): Likewise.
12943         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
12944         * toplev.c (obey_regdecls): Remove.
12945         (rest_of_compilation): Don't set it.  Kill stupid in favour of
12946         flow1, local-alloc, and reload.
12947         (main): Don't set obey_regdecls.
12948
12949         * config/nextstep.c (handle_pragma): Likewise.
12950
12951         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
12952
12953         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
12954
12955 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12956
12957         * alpha-protos.h: PROTO -> PARAMS.
12958         * alpha.c: Likewise.
12959         * elf.h: Likewise.
12960         * h8300.c: Likewise.
12961         * i386-protos.h: Likewise.
12962         * i386.c: Likewise.
12963         * m32r-protos.h: Likewise.
12964         * m32r.c: Likewise.
12965         * mips.c: Likewise.
12966         * mips.md: Likewise.
12967         * gmon-sol2.c: Likewise.
12968         * sparc.c: Likewise.
12969
12970 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12971
12972         * ns32k-protos.h: New file.
12973
12974         * ns32k.c: Fix compile time warnings.
12975
12976         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
12977         warnings.
12978
12979         * ns32k.md: Likewise.
12980
12981 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12982
12983         * vax-protos.h: New file.
12984
12985         * vax.c: Fix compile time warnings.
12986
12987         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
12988         warnings.
12989
12990         * vax.md: Likewise.
12991
12992         * vaxv.md: Likewise.
12993
12994 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12995
12996         * romp-protos.h: New file.
12997
12998         * romp.c: Fix compile time warnings.
12999
13000         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
13001         warnings.
13002
13003         * romp.md: Likewise.
13004
13005 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13006
13007         * we32k-protos.h: New file.
13008
13009         * we32k.c: Fix compile time warnings.
13010
13011         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
13012         warnings.
13013
13014 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13015
13016         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
13017
13018         * except.c (eh_regs): Likewise.
13019
13020         * final.c (output_operand): Likewise.
13021
13022         * fold-const.c (target_isinf, target_isnan): Likewise.
13023
13024 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
13025
13026         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
13027         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
13028
13029         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
13030         when optimize_size.
13031         (clrstrsi): Rewrite.
13032         (strsethi, strsetqi): New expanders.
13033         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
13034         (cmpstrsi): Emit compare insn before cmpstrsi_1
13035         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
13036         (strlensi_1): Likewise.
13037         (cmpstrsi_1): Likewise; do not output compare.
13038         (strlen expander): Do not unroll when optimizing for size.
13039         (*subsi3_carry): Rename to subsi3_carry
13040         (addqi3_cc): New pattern.
13041         * i386.h (processor_costs): Add move_ratio field.
13042         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
13043         * i386.c (*_cost): Set move_ratio.
13044         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
13045         (x86_expand_strlensi_1): Rewrite the main loop.
13046
13047 2000-01-17  Richard Henderson  <rth@cygnus.com>
13048
13049         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
13050         * cse.c (find_comparison_args, fold_rtx): Likewise.
13051         * integrate.c (subst_constants): Likewise.
13052         * loop.c (get_condition): Likewise.
13053
13054         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
13055
13056         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
13057
13058 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
13059
13060         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
13061         (RESTORE_WARN_FLAGS): Unpack it.
13062         Change semantic type of extension to ttype.
13063         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
13064         * c-parse.y, c-parse.c, objc/objc-parse.y,
13065         objc/objc-parse.c: Regenerate.
13066
13067 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
13068
13069         * fixinc/fixlib.c: Add copyright notice.
13070         (compile_re): New function.
13071         * fixinc/fixlib.h: Prototype compile_re.
13072
13073         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
13074         Use compile_re to compile regular expressions.
13075
13076         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
13077         where the pattern matched.
13078
13079         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
13080         use 'replace'.
13081         (ultrix_ansi_compat): Likewise.
13082         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
13083         add egrep test.
13084         (interactv_add2, interactv_add3): Delete.
13085         (x11_sprintf): Don't use filename glob.
13086         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
13087         Regenerate.
13088
13089 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13090
13091         * print-rtl.c: PROTO -> PARAMS.
13092         * real.c: Likewise.
13093         * reg-stack.c: Likewise.
13094         * resource.c: Likewise.
13095         * sdbout.h: Likewise.
13096         * simplify-rtx.c: Likewise.
13097         * stor-layout.c: Likewise.
13098         * stupid.c: Likewise.
13099         * xcoffout.c: Likewise.
13100         * xcoffout.h: Likewise.
13101
13102 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13103
13104         * toplev.c: PROTO -> PARAMS.
13105         * toplev.h: Likewise.
13106         * tree.c: Likewise.
13107         * tree.h: Likewise.
13108         * unroll.c: Likewise.
13109         * varasm.c: Likewise.
13110         * varray.c: Likewise.
13111         * varray.h: Likewise.
13112
13113 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13114
13115         * reload.c: PROTO -> PARAMS.
13116         * reload.h: Likewise.
13117         * reload1.c: Likewise.
13118         * reorg.c: Likewise.
13119         * resource.h: Likewise.
13120         * rtl.c: Likewise.
13121         * rtl.h: Likewise.
13122         * rtlanal.c: Likewise.
13123         * sbitmap.h: Likewise.
13124         * sdbout.c: Likewise.
13125         * stack.h: Likewise.
13126         * stmt.c: Likewise.
13127         * system.h: Likewise.
13128
13129 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13130
13131         * machmode.h: PROTO -> PARAMS.
13132         * mbchar.h: Likewise.
13133         * mips-tdump.c: Likewise.
13134         * mips-tfile.c: Likewise.
13135         * optabs.c: Likewise.
13136         * output.h: Likewise.
13137         * prefix.c: Likewise.
13138         * profile.c: Likewise.
13139         * protoize.c: Likewise.
13140         * real.h: Likewise.
13141         * recog.c: Likewise.
13142         * recog.h: Likewise.
13143         * regclass.c: Likewise.
13144         * regmove.c: Likewise.
13145         * regs.h: Likewise.
13146
13147 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13148
13149         * ggc-common.c: PROTO -> PARAMS.
13150         * ggc-page.c: Likewise.
13151         * ggc-simple.c: Likewise.
13152         * ggc.h: Likewise.
13153         * global.c: Likewise.
13154         * graph.c: Likewise.
13155         * gthr-win32.h: Likewise.
13156         * haifa-sched.c: Likewise.
13157         * halfpic.h: Likewise.
13158         * integrate.c: Likewise.
13159         * integrate.h: Likewise.
13160         * jump.c: Likewise.
13161         * lcm.c: Likewise.
13162         * local-alloc.c: Likewise.
13163         * loop.c: Likewise.
13164         * loop.h: Likewise.
13165
13166 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13167
13168         * genattr.c: PROTO -> PARAMS.
13169         * genattrtab.c: Likewise.
13170         * gencheck.c: Likewise.
13171         * gencodes.c: Likewise.
13172         * genconfig.c: Likewise.
13173         * genemit.c: Likewise.
13174         * genextract.c: Likewise.
13175         * genflags.c: Likewise.
13176         * gengenrtl.c: Likewise.
13177         * genopinit.c: Likewise.
13178         * genoutput.c: Likewise.
13179         * genpeep.c: Likewise.
13180         * genrecog.c: Likewise.
13181
13182 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
13183
13184         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
13185
13186 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13187
13188         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
13189         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
13190         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
13191         * configure, config.in: Rebuilt.
13192
13193 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
13194
13195         * config/i386/i386.md: Add peephole to merge successive stack
13196         adjusts.
13197
13198 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
13199
13200         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
13201         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
13202         when walking backwards to find all the parameter loads when
13203         the basic block ends in a call.
13204
13205 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13206
13207         * loop.c (this_loop_info): Delete.
13208         (uid_loop): Add in place of uid_loop_num.  All uses updated.
13209         (loop_number_exit_count): Delete and replace with entry in loop
13210         structure.  All uses updated.
13211         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
13212         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
13213         (loop_outer_loop): Likewise.
13214         (loop_invalid, loop_number_exit_labels): Likewise.
13215         (loop_used_count_register): Delete and replace with entry in
13216         loop_info structure.
13217         (find_and_verify_loops): Add loops argument.
13218         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
13219         loop_end, etc. arguments with loop structure pointer.  All callers
13220         changed.
13221         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
13222         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
13223         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
13224         (insert_bct): Likewise.
13225         (basic_induction_var): New argument level.
13226         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
13227         vtop, and cont.  Add used_count_register.
13228         (uid_loop): Delete declaration.
13229         (loop_number_exit_count): Likewise.
13230         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
13231         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
13232         (loop_outer_loop, loop_used_count_register): Likewise.
13233         (loop_invalid, loop_number_exit_labels): Likewise.
13234         (unroll_loop): Replace loop_start and loop_end arguments
13235         with loop structure pointer.
13236         (loop_precondition_p, loop_iterations): Likewise.
13237         Include basic-block.h.
13238         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
13239         with loop structure pointer.
13240         (loop_precondition_p, loop_iterations): Likewise.
13241         * basic-block.h (struct loop): New entries vtop, cont,
13242         cont_dominator, start, end, top, scan_start, exit_labels,
13243         exit_count.
13244         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
13245
13246 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13247
13248         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
13249
13250 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
13251
13252         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
13253
13254 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13255
13256         * pdp11-protos.h: New file.
13257
13258         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
13259         time warnings.
13260
13261         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
13262         warnings.
13263
13264         * pdp11.md: Likewise.
13265
13266         * 2bsd.h: Likewise.
13267
13268 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13269
13270         * mn10300-protos.h: New file.
13271
13272         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
13273         time warnings.
13274
13275         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
13276         warnings.
13277
13278         * mn10300.md: Likewise.
13279
13280 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13281
13282         * mn10200-protos.h: New file.
13283
13284         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
13285         time warnings.
13286
13287         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
13288         warnings.
13289
13290         * mn10200.md: Likewise.
13291
13292 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13293
13294         * h8300-protos.h: New file.
13295
13296         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
13297         time warnings.
13298
13299         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
13300         warnings.
13301
13302         * h8300.md: Likewise.
13303
13304 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13305
13306         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
13307         (asm_emit_uninitialised): Likewise.
13308
13309 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
13310
13311         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
13312         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
13313
13314 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13315
13316         * config/mips/mips.c (override_options): Don't turn on extra
13317         alignment for mips16.
13318
13319 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13320
13321         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
13322         eabi, and make sure queued POSTINCREMENT rtl is emitted at
13323         the right point.
13324
13325 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13326
13327         * builtins.c (PAD_VARARGS_DOWN): Define.
13328         (std_expand_builtin_va_arg): Use the above macro.
13329         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
13330         * tm.texi (Register Arguments): Document the above macro.
13331
13332 2000-01-14  Nick Clifton  <nickc@cygnus.com>
13333
13334         * emit-rtl.c (emit_insn): If checking is enabled, make sure
13335         that this function has not been used to emit a jump
13336         instruction.
13337
13338         * jump.c (return_jump_1): Cope with being passed a null rtx.
13339
13340 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13341
13342         * eh-common.h: PROTO -> PARAMS.
13343         * emit-rtl.c: Likewise.
13344         * errors.c: Likewise.
13345         * errors.h: Likewise.
13346         * except.c: Likewise.
13347         * except.h: Likewise.
13348         * explow.c: Likewise.
13349         * expmed.c: Likewise.
13350         * expr.c: Likewise.
13351         * expr.h: Likewise.
13352         * final.c: Likewise.
13353         * fix-header.c: Likewise.
13354         * flow.c: Likewise.
13355         * fold-const.c: Likewise.
13356         * function.c: Likewise.
13357         * function.h: Likewise.
13358         * gcc.c: Likewise.
13359         * gcov-io.h: Likewise.
13360         * gcov.c: Likewise.
13361         * gcse.c: Likewise.
13362
13363 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13364
13365         * sh-protos.h: New file.
13366
13367         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
13368         Add static prototypes.  Fix compile time warnings.
13369
13370         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
13371         * sh.md: Likewise.
13372         * elf.h: Likewise.
13373
13374 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13375
13376         * arc-protos.h: New file.
13377
13378         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
13379         time warnings.
13380
13381         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
13382         warnings.
13383
13384         * arc.md: Likewise.
13385
13386 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13387
13388         * dsp16xx-protos.h: New file.
13389
13390         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
13391         time warnings.
13392
13393         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
13394         warnings.
13395
13396         * dsp16xx.md: Likewise.
13397
13398 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13399
13400         * convex-protos.h: New file.
13401
13402         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
13403         time warnings.
13404
13405         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
13406         warnings.
13407
13408 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13409
13410         * elxsi-protos.h: New file.
13411
13412         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
13413         time warnings.
13414
13415         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
13416         warnings.
13417
13418         * elxsi.md: Likewise.
13419
13420 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
13421
13422         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
13423         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
13424         match the comment for MIPS16.
13425
13426 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
13427
13428         * flow.c (split_edge): Do not call set_block_for_insn if we
13429         do not have a basic_block_for_insn structure.
13430
13431         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
13432         and destination functions are 32bit aligned within the trampoline.
13433         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
13434         (TRAMPOLINE_ALIGNMENT): Define.
13435
13436         * cse.c (cse_insn): When changing (set (pc) (reg)) to
13437         (set (pc) (label_ref)), verify the change creates a valid insn.
13438
13439         * fr30.c (call_operand): Tighten and rework to match rules for
13440         call RTL expressions.
13441         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
13442         * fr30.md (call patterns): Improve constraints.
13443
13444 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
13445
13446         * fr30.c (fr30_expand_epilogue): Revert last change.
13447         Use emit_jump_insn for the return insn.
13448
13449 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
13450                           Stan Cox  <scox@cygnus.com>
13451
13452         * predict.c: New file. Preliminary infrastructure work for static
13453         branch prediction and basic block reordering.
13454         * basic-block.h: Add prototype for estimate_probability.
13455         * Makefile.in: Add rules for predict.o.
13456
13457 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
13458
13459         * fixincludes (va_list): Use __not_va_list__ for the dummy.
13460         * fixinc/*: Likewise.
13461
13462 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13463
13464         * cccp.c: PROTO -> PARAMS.
13465         * cexp.y: Likewise.
13466         * collect2.c: Likewise.
13467         * combine.c: Likewise.
13468         * convert.h: Likewise.
13469         * cse.c: Likewise.
13470         * dbxout.c: Likewise.
13471         * dbxout.h: Likewise.
13472         * diagnostic.c: Likewise.
13473         * doprint.c: Likewise.
13474         * dwarf2out.c: Likewise.
13475         * dwarf2out.h: Likewise.
13476         * dwarfout.c: Likewise.
13477         * dwarfout.h: Likewise.
13478         * dyn-string.h: Likewise.
13479
13480 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13481
13482         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
13483         macro conditionals guarding use.
13484
13485         * dwarf2out.c: Include "tm_p.h".
13486
13487         * function.c (locate_and_pad_parm): Mark parameter with
13488         ATTRIBUTE_UNUSED.
13489         (expand_function_end): Likewise for variable `context'.
13490
13491         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
13492
13493 2000-01-13  Nick Clifton  <nickc@cygnus.com>
13494
13495         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
13496         register to prevent compile time warnings.
13497
13498 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
13499
13500         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
13501         to avoid -Wtraditional warning.
13502
13503 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13504
13505         * 1750a-protos.h: New file.
13506
13507         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
13508         time warnings.
13509
13510         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
13511         warnings.
13512
13513         * 1750a.md: Likewise.
13514
13515 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13516
13517         * a29k-protos.h: New file.
13518
13519         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
13520         time warnings.
13521
13522         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
13523         warnings.
13524
13525 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13526
13527         * clipper-protos.h: New file.
13528
13529         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
13530         time warnings.
13531
13532         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
13533         warnings.
13534
13535 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13536
13537         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
13538
13539 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
13540
13541         * configure.in (--enable-new-gxx-abi): New option.
13542         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
13543         * Makefile.in (GXX_ABI_FLAG): New variable.
13544         * configure: Regenerate.
13545
13546 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13547
13548         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
13549         * tm.texi (FORCE_STRUCT_BLK): Document.
13550         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
13551
13552 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
13553
13554         * config/ns32k/ns32k.md: Revert Jan 9 change.
13555
13556         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
13557         to a mode-test, if the predicate is address_operand.
13558
13559 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
13560
13561         * combine.c (if_then_else_cond): Be careful about what kinds
13562         of RTL expressions are passed to operand_subword.
13563
13564         * flow.c (split_edge): If we have to insert a new jump, make
13565         sure to associate it with a basic block.
13566
13567         * flow.c (commit_one_edge_insertion): A block with one successor
13568         can end in a JUMP_INSN that is not a simplejump.
13569
13570 2000-01-12  Robert Lipe  <robertl@sco.com>
13571
13572         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
13573         (BUILD_VA_LIST_TYPE): Define.
13574         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
13575         with crtstuff.c.
13576
13577 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
13578
13579         * cccp.c (do_pragma): Add cast to (char *).
13580
13581 2000-01-12  Richard Henderson  <rth@cygnus.com>
13582             Fred Fish  <fnf@be.com>
13583             Jason Merrill  <jason@cygnus.com>
13584
13585         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
13586         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
13587         * i386/beos-elf.h, i386/beos-pe.h: New files.
13588
13589         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
13590         * cross-make (SYSTEM_HEADER_DIR): Define using
13591         CROSS_SYSTEM_HEADER_DIR.
13592
13593         * gcc.c (LIBRARY_PATH_ENV): Provide default.
13594         (process_command): Use it.
13595         (main): Likewise.  Kill trailing = from env vars.
13596         (build_search_list): Put it back.
13597         * collect2.c (main): Use LIBRARY_PATH_ENV.
13598
13599         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
13600         * toplev.c: Use NEED_DECLARATION_ENVIRON.
13601
13602         * tm.texi (Frame Layout): Document SMALL_STACK.
13603         * c-common.c (c_common_nodes_and_builtins): Check it.
13604
13605         * system.h: Undef alloca after including glibc's <stdlib.h>,
13606         if USE_C_ALLOCA is defined.
13607
13608         * gcc.c (set_input): New fn.
13609         (main): After all input files are compiled, reset the input file
13610         info to the first.
13611
13612         * aclocal.m4 (rindex, index): If already defined, don't attempt
13613         to redefine.
13614
13615         * ginclude/varargs.h: (__va_list__): Define ifndef.
13616         * ginclude/stdarg.h: Likewise.
13617
13618         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
13619         instead of unsigned char.
13620
13621         * hash.h (true, false, boolean): Undef before enum.
13622
13623         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
13624         proper type of "HOST_WIDE_INT *", rather than their natural type of
13625         "unsigned HOST_WIDE_INT *".
13626
13627 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13628
13629         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
13630
13631         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
13632
13633         * regclass.c (choose_hard_reg_mode): Likewise.
13634
13635         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
13636
13637         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
13638
13639 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13640
13641         * c-common.c: PROTO -> PARAMS.
13642         * c-common.h: Likewise.
13643         * c-decl.c: Likewise.
13644         * c-iterate.c: Likewise.
13645         * c-lang.c: Likewise.
13646         * c-lex.c: Likewise.
13647         * c-lex.h: Likewise.
13648         * c-parse.in: Likewise.
13649         * c-pragma.c: Likewise.
13650         * c-pragma.h: Likewise.
13651         * c-tree.h: Likewise.
13652         * c-typeck.c: Likewise.
13653         * objc/objc-act.c: Likewise.
13654         * objc/objc-act.h: Likewise.
13655
13656 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13657
13658         * m88k-protos.h: New file.
13659
13660         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
13661         time warnings.
13662
13663         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
13664
13665         * m88k.md: Likewise.
13666
13667         * tekXD88.h: Likewise.
13668
13669 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13670
13671         * m68k-protos.h: New file.
13672
13673         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
13674         time warnings.
13675
13676         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
13677
13678         * mot3300.h: Likewise.
13679
13680 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
13681
13682         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
13683         extract_bitlst.
13684         (extract_bitlist): Declare bitlen.
13685
13686 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
13687
13688         * cccp.c: Accept and ignore -lang-fortran.
13689
13690         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
13691         qualifiers don't match at any level of pointerness.
13692
13693 2000-01-12  Robert Lipe  <robertl@sco.com>
13694
13695         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
13696
13697 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
13698
13699         * reload1.c (reload_reg_unavailable): New static variable.
13700         (reload_reg_free_p): Test it.
13701         (reload_reg_free_for_value_p): Test it instead of
13702         reload_reg_used.
13703         (choose_reload_regs_init): Compute it.
13704
13705 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
13706
13707         * reorg.c (fill_slots_from_thread): Check modified_in_p
13708         before replacing.
13709
13710 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
13711
13712         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
13713         these nodes even if INTERNALS is not set.
13714
13715 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
13716
13717         * gcse.c (delete_null_pointer_checks_1): Cope when
13718         get_condition cannot determine the condition.
13719
13720 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
13721
13722         * toplev.h (set_message_length): Declare.
13723
13724         * diagnostic.c (obstack_chunk_alloc): Define macro.
13725         (obstack_chunk_free): Likewise.
13726         (struct output_buffer): New data structure.
13727         (vmessage): Remove.
13728         (output_maximum_width): New variable.
13729         (doing_line_wrapping, set_message_length, init_output_buffer,
13730         get_output_prefix, output_space_left, emit_output_prefix,
13731         output_newline, output_append, output_puts, dump_output,
13732         vbuild_message_string, build_message_string, build_location_prefix,
13733         voutput_notice, output_printf, line_wrapper_printf,
13734         vline_wrapper_message_with_location):  New functions. Implement
13735         automatic line wrapping.
13736         (v_message_with_decl): Make it handle automatic line wrapping.
13737         (v_error_with_file_and_line): Likewise.
13738         (v_warning_with_file_and_line): Likewise.
13739         (announce_function): Likewise.
13740         (default_print_error_function): Likewise.
13741
13742 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
13743
13744         * cpplib.h (struct cpp_options): Change lang_asm to char.
13745         Add lang_fortran.
13746         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
13747         done in cpp_handle_option now.
13748         (initialize_builtins): Take out special case code used only by
13749         __STDC_VERSION__.
13750         (cpp_handle_option): Turn off trigraphs and trigraph warnings
13751         if -traditional.  Recognize -lang-fortran and set
13752         lang_fortran, also turn off cplusplus_comments.
13753         (print_help): Document -lang-fortran.
13754         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
13755         lang_asm. Ignore all directives other than `# 123 "file"' if
13756         CPP_PREPROCESSED.
13757         (cpp_get_token): If -traditional, don't recognize directives
13758         unless the # is in column 1.
13759         (parse_string): If lang_fortran or lang_asm, silently
13760         terminate strings ('' or "") at end of line.
13761         Remove unnecessary braces.
13762
13763 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13764             Richard Henderson  <rth@cygnus.com>
13765
13766         * resource.c (mark_referenced_resources): Mark a set strict_low_part
13767         as used.
13768         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
13769         strict_low_part when possible.
13770
13771 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13772
13773         * alias.c: PROTO -> PARAMS.
13774         * basic-block.h: Likewise.
13775         * bitmap.c: Likewise.
13776         * bitmap.h: Likewise.
13777         * builtins.c: Likewise.
13778         * c-aux-info.c: Likewise.
13779         * caller-save.c: Likewise.
13780         * calls.c: Likewise.
13781
13782 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13783
13784         * Makefile.in (toplev.o): Depend on regs.h.
13785
13786         * output.h (tdesc_section): Prototype.
13787
13788         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
13789
13790         * sdbout.c: Include "tm_p.h".
13791
13792         * toplev.c: Include "regs.h".
13793
13794 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
13795
13796         * unroll.c (unroll_loop): Add EH support.
13797
13798 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13799
13800         * pa-protos.h: New file.
13801
13802         * pa.c: Include recog.h and tm_p.h.
13803         (compute_zdepwi_operands, compute_movstrsi_length,
13804         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
13805         find_addr_reg, import_milli): Add static prototypes.
13806         (pa_cpu_string, pa_arch_string): Constify a char*.
13807         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
13808         (read_only_operand): Add argument `mode'.
13809         (singlemove_string, output_move_double, output_fp_move_double,
13810         output_block_move, output_and, output_ior, output_ascii,
13811         remove_useless_addtr_insns, milli_names, output_mul_insn,
13812         output_div_insn, output_mod_insn, output_arg_descriptor,
13813         output_cbranch, output_bb, output_bvb, output_dbra, ,
13814         output_millicode_call, output_call, hppa_encode_label,
13815         output_parallel_movb, output_parallel_addb): Constify a char*.
13816         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
13817         (output_parallel_addb): Remove extra arg to `constrain_operands'
13818
13819         * pa.h:  Move all prototypes to pa-protos.h.
13820         (pa_cpu_string, pa_arch_string): Constify a char*.
13821         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
13822
13823         * pa.md: Call `function_label_operand' with mode argument.
13824         Likewise for `read_only_operand'.
13825         Fix nesting of parens in call to `symbolic_operand'.
13826
13827 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13828
13829         * i860-protos.h: New file.
13830
13831         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
13832         time warnings.
13833
13834         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
13835
13836         * i860.md: Likewise.
13837
13838 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
13839
13840         * i386.md (movstrsi expander): Rewrite.
13841         (movstrsi_1 insn): Deleted.
13842         (strmovhi, strmovqi expander): New expanders.
13843         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
13844         * i386.c (x86_single_stringop): New global variable.
13845         * i386.h (x86_single_stringop): Declare.
13846         (TARGET_SINGLE_STRINGOP): New macro.
13847
13848 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
13849
13850         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
13851         integer vararg POSTINCREMENT before the destination of the jump
13852         for the hard fp case.
13853         (function_arg_pass_by_reference): Pass a copy of CUM to
13854         FUNCTION_ARG.
13855
13856         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
13857         for CONSTANT_ADDRESS_P above while loop for subreg.
13858
13859 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
13860
13861         * flow.c (propagate_block): When a prologue/epilogue insn
13862         is marked dead, unconditionally clear libcall_is_dead and
13863         insn_is_dead, and only dump rtl if warnings aren't being
13864         suppressed.
13865
13866 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
13867
13868         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
13869         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
13870         (FIXED_REGISTERS): Set dirflag as fixed.
13871         (CALL_USED_REGISTERS): Set dirflag as used.
13872         (REG_ALLOC_ORDER): Set dirflag as last one.
13873         (DIRFLAG_REG): New macro.
13874         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
13875         (HI_REGISTER_NAMES): Add dirflag.
13876         (DEBUF_PRINT_REG): Handle dirflag.
13877         * i386.md (type attribute): New cld and str types.
13878         (length_opcode attribute): Set cld and str to 1.
13879         (memory attribute): Set str to unknown - it is not clear from the
13880         patterns.
13881         (pent_np function unit): Prefixed string operations takes 12 cycles
13882         minimally; cld takes 2 cycles.
13883         (ppro_uops attribute): Str is "many" and cld is "few".
13884         (ppro_p0 unit): Handle cld here.
13885         (k6_alux unit): Handle cld and str types.
13886         (k6_load unit): It is ocupied by str opcodes.
13887         (k6_store unit): It is ocupied by str opcodes.
13888         (athlon_decode): Str is vector decoded.
13889         (athlon_ieu): Handle str and cld.
13890         (cld pattern): New.
13891         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
13892         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
13893         cmpstrsi_nz_1 insn): Do not output cld instruction
13894
13895 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
13896
13897         * gcc.texi (G++ and GCC): Add Java and Chill.
13898         (Bug Critera): Don't list languages.
13899
13900         * gcc.texi (Incompatibilities): No longer claim most C compilers
13901         are K&R.
13902
13903         * gcc.texi (G++ and GCC): Update other front-ends list.
13904
13905 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
13906
13907         * i386.c (ix86_expand_setcc): Fix typo.
13908         (ix86_expand_movcc): Similarly.
13909
13910         * Band-aid until haifa's bitset implementation is nuked.
13911         * haifa-sched.c (extract_bitlst): New parameter for size of the
13912         bitset in bits.  All callers changed.  Avoid looking at undefined
13913         bits in the bitset.
13914         (edgeset_bitsize): New variable.
13915         (schedule_region): Initialize edgeset_bitsize.
13916
13917 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13918
13919         * Makefile.in (optabs.o): Depend on real.h
13920         (resource.o): Depend on insn-attr.h
13921
13922         * builtins.c (result_vector): Wrap prototype in macro conditions
13923         governing definition and use.
13924
13925         * c-common.c: Include tm_p.h.
13926
13927         * c-lex.c: Likewise.
13928
13929         * elfos.h: Constify a char*.
13930
13931         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
13932         (get_attr_length, shorten_branches, profile_after_prologue): Mark
13933         parameter with ATTRIBUTE_UNUSED.
13934
13935         * fold-const.c (exact_real_inverse): Wrap variable `i' in
13936         CHECK_FLOAT_VALUE.
13937
13938         * haifa-sched.c (schedule_insns): Mark parameter with
13939         ATTRIBUTE_UNUSED.
13940
13941         * optabs.c: Include real.h.
13942
13943         * real.h (ereal_atof): Add prototype arguments.
13944
13945         * resource.c: Include insn-attr.h.
13946
13947         * sdbout.c (sdbout_queue_anonymous_type,
13948         sdbout_dequeue_anonymous_types): Wrap in macro
13949         SDB_ALLOW_FORWARD_REFERENCES.
13950         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
13951         ATTRIBUTE_UNUSED.
13952
13953         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
13954
13955         * stupid.c: Include tm_p.h.
13956
13957         * tree.c (real_value_from_int_cst): Mark parameter with
13958         ATTRIBUTE_UNUSED.
13959
13960 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13961
13962         * i960-protos.h: New file.
13963
13964         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
13965         time warnings.
13966
13967         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
13968
13969 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13970
13971         * combine.c (expand_field_assignment): Do not discard SUBREGs
13972         while computing nonzero_bits.
13973
13974 2000-01-09  Nick Clifton  <nickc@cygnus.com>
13975
13976         * config/arm/arm.c: Fix compile time warnings about signed vs
13977         unsigned constants.
13978         * config/arm/arm.h: Fix compile time warnings about signed vs
13979         unsigned constants.
13980
13981 2000-01-09  Philip Blundell  <philb@gnu.org>
13982
13983         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
13984         than `ldm' with only one register.
13985         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
13986         only one register.
13987
13988         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
13989         clobbered.
13990
13991 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
13992
13993         * config/ns32k/ns32k.md (load or push effective address): Operand 1
13994         must have SImode.
13995
13996 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13997
13998         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
13999         assignment used as truth value.
14000
14001         * function.c (assign_temp): Mark parameter `dont_promote' with
14002         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
14003         PROMOTE_FOR_CALL_ONLY.
14004
14005         * genrecog.c (write_subroutine): Mark variable `operands' with
14006         ATTRIBUTE_UNUSED.
14007
14008         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
14009         ATTRIBUTE_UNUSED.
14010
14011         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
14012         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
14013
14014         * toplev.c (note_deferral_of_defined_inline_function): Likewise
14015         for `decl'.
14016
14017 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14018
14019         * config/c4x.h: Tidy up comments.
14020         * config/c4x.c: Likewise.
14021
14022 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
14023
14024         * fold-const.c (lshift_double, rshift_double): Handle
14025         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
14026
14027 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14028
14029         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
14030         in prepare_function_start().
14031
14032 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
14033
14034         * config/v850/v850.c (expand_epilogue): Interrupt functions no
14035         longer allocate extra stack for function calls.
14036
14037 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14038
14039         * config/c4x/c4x.md (*subqf3_set): Fix typo.
14040
14041 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14042
14043         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
14044
14045 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
14046
14047         * rs6000.c (processor_target_table): Add power3 as alias for 630.
14048         * aix43.h: Revert Aug 2 change.
14049         (HAS_INIT_SECTION): Define, not visible yet.
14050         (LD_INIT_SWITCH): Define, not visible yet.
14051         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
14052
14053         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
14054
14055         * collect2.c (main): Expand ld2 size further.
14056         (export_object_lst): Cast assignment to avoid warning.
14057         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
14058         (scan_prog_file, COFF): Do not collect initialization or
14059         finalization functions generated for entire shared object if
14060         init/fini support present.
14061
14062 2000-01-07  Nick Clifton  <nickc@cygnus.com>
14063
14064         * config/elfos.h: Tidy up formatting of marcos.  Make sure
14065         that .section directives are always prefixed by a tab.
14066
14067         * config/svr4.h: Add #include "elfos.h" and remove duplicate
14068         definitions.
14069
14070 2000-01-07  Matt Austern  <austern@sgi.com>
14071
14072         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
14073         expon.
14074
14075 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
14076
14077         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
14078         crtstuff.c.
14079         (crtbegin.o, s-crtS): Likewise.
14080
14081 2000-01-06  Richard Henderson  <rth@cygnus.com>
14082
14083         * alpha.md (adddi_2+1): Limit offset such that it will be
14084         loadable with a single ldah+lda pair.
14085         (adddi_2+2): Explicitly fail split if we can't make it work.
14086
14087 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
14088
14089         * protoize.c: Conditionally include unistd.h.
14090         (IS_SAME_PATH_CHAR): New macro.
14091         (IS_SAME_PATH): New macro.
14092         (CPLUS_FILE_SUFFIX): New macro.
14093         (cplus_suffix): New static variable.
14094         (is_abspath): New static function.
14095         (in_system_include_dir): Handle DOS style pathnames.
14096         (file_could_be_converted): Likewise.
14097         (file_normally_convertible): Likewise.
14098         (directory_specified_p): Likewise.
14099         (file_excluded_p): Likewise.
14100         (abspath): Likewise.
14101         (shortpath): Likewise.
14102         (referenced_file_is_newer): Likewise.
14103         (save_def_or_dec): Likewise.
14104         (do_processing): Likewise.
14105         (main): Likewise.
14106         (edit_file): Likewise. Use rename instead of link.
14107         (rename_c_file): Likewise. Don't rename syscalls file.
14108         (munge_compile_params): Define null device for DOS based systems.
14109         (process_aux_info_file): Use binary mode if appliable.
14110         (edit_file): Likewise.
14111         * invoke.texi (Running Protoize): Document C++ suffixes used.
14112
14113         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
14114         IS_DIR_SEPARATOR macros.
14115         * collect2.c: Likewise.
14116         * cppinit.c: Likewise.
14117         * dwarf2out.c: Likewise.
14118         * gcc.c: Likewise.
14119         * gcov.c: Likewise.
14120         * prefix.c: Likewise.
14121         * rtl.c: Likewise.
14122         * toplev.c: Likewise.
14123         * system.h: And move to here.
14124
14125         * prefix.c (update_path): Fix typo in variable name.
14126
14127 2000-01-06  Richard Henderson  <rth@cygnus.com>
14128
14129         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
14130         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
14131         (count_reg_sets_1, count_reg_references): Likewise.
14132         (flow_loops_level_compute): Start counting actual loop depth at 1.
14133         (flow_loops_find): Likewise.
14134         * local-alloc.c (update_equiv_regs): Likewise.
14135         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
14136
14137 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
14138
14139         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
14140         FIRST_PSEUDO_REGISTER
14141         * dwarf2out.c: Don't include frame.h
14142         * dwarfout.c: Likewise
14143         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
14144         frame.h
14145
14146 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
14147
14148         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
14149         dead registers.
14150
14151         * i386.c (movsf splitter): Fix typo in my last checkin.
14152
14153 2000-01-05  Nick Clifton  <nickc@cygnus.com>
14154
14155         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
14156         own definition of this macro.
14157         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
14158         flag_data_sections or UNIQUE_SECTION_P are true.
14159
14160         * tm.texi (UNIQUE_SECTION): Document that it can be called for
14161         unitialised data decls.
14162
14163         * config/i386/winnt.c (i386_pe_unique_section): Cope with
14164         being called for uninitialised data.
14165
14166         * config/i386/interix.c (i386_pe_unique_section): Cope with
14167         being called for uninitialised data.
14168
14169         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
14170         for uninitialised data.
14171
14172         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
14173         for uninitialised data.
14174
14175         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
14176         for uninitialised data.
14177
14178         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
14179         (UNIQUE_SECTION_P): Always generate a unique section if
14180         flag_data_sections is true.
14181         (UNIQUE_SECTION): Also generate unique sections for
14182         uninitialised data.
14183         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
14184         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
14185         named_section().
14186
14187 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14188
14189         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
14190         SI, or DI.
14191
14192 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14193
14194         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
14195         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
14196         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
14197         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
14198         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
14199
14200         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
14201
14202 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
14203
14204         * c-decl.c (finish_enum): Simplify code to determine minimum and
14205         maximum values of the enum, and calculate the type.  Remove check
14206         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
14207         the DECL_INITIAL of each enumeration constant with a copy converted
14208         to the enumeration type.  When updating variant types, don't bother
14209         updating the type itself.
14210
14211         * c-typeck.c (build_binary_op): Simplify conditional expressions
14212         when weeding out spurious signed-unsigned warnings.  Add new
14213         spurious warning category: if the unsigned quantity is an enum
14214         and its maximum value fits in signed_type(result_type).  Update
14215         commentary.
14216         (build_conditional_expr): Warn here if one alternative is signed
14217         and the other is unsigned.
14218
14219 2000-01-05  Nick Clifton  <nickc@cygnus.com>
14220
14221         * config/fr30/fr30.h: Remove extraneous comments.
14222
14223 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
14224
14225         * reload1.c (choose_reload_regs): When disabling a reload, also
14226         set reload_spill_index to -1.
14227
14228 2000-01-04  Joel Sherrill (joel@OARcorp.com>
14229
14230         * configure.in (m68*-*-rtemscoff*): New target, formal name for
14231         old m68*-*-rtems*.
14232         (m68*-*-rtemself*): New target.
14233         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
14234         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
14235         (sparc*-*-rtemself*): New target.
14236         (sparc*-*-rtems*): Now elf not a.out.
14237         * config/i386/rtems.h: Include config/rtems.h.
14238         * config/i386/rtemself.h: Include config/rtems.h.
14239         * config/i960/rtems.h: Include config/rtems.h.
14240         * config/m68k/rtems.h: Include config/rtems.h.
14241         * config/m68k/rtemself.h: Include config/rtems.h.
14242         * config/mips/rtems64.h: Include config/rtems.h.
14243         * config/pa/rtems.h: Include config/rtems.h.
14244         * config/rs6000/rtems.h: Include config/rtems.h.
14245         * config/sh/rtems.h: Include config/rtems.h.
14246         * config/sh/rtemself.h: Include config/rtems.h.
14247         * config/sparc/rtems.h: Include config/rtems.h.
14248         * config/sparc/rtemself.h: Include config/rtems.h
14249
14250 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
14251
14252         * final.c (shorten_branches): Correctly compute length of
14253         asms without operands.
14254
14255 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
14256
14257         * configure.in: Add pj target.
14258         * configure: Regenerate.
14259         * config/pj: New directory.
14260         * config/pj/lib1funcs.S: New file.
14261         * config/pj/linux.h: New file.
14262         * config/pj/pj.c: New file.
14263         * config/pj/pj.md: New file.
14264         * config/pj/pjl.h: New file.
14265         * config/pj/t-pj: New file.
14266         * config/pj/xm-pj.h: New file
14267
14268 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
14269
14270         * toplev.c (rest_of_compilation): Run shorten-branches before
14271         reg-stack for now.
14272
14273 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14274
14275         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
14276         macros so that they're consistent with their names.
14277         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
14278         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
14279
14280 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14281
14282         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
14283         modified inadvertently.
14284
14285 2000-01-04  Joel Sherrill <joel@OARcorp.com>
14286
14287         * configure.in (v850*-*-rtems*): New target.
14288         * configure: Regenerate.
14289         * config/v850/rtems.h: New file.
14290
14291 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
14292
14293         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
14294         (__gthread_key_create): Likewise.
14295         (__gthread_key_dtor):  Likewise.
14296         (__gthread_once): Fix logic.
14297         (__gthread_key_delete): Cast away constness.
14298
14299         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
14300         * invoke.texi: Document.
14301         * i386/mingw32.h (CPP_SPEC): Use.
14302         (LIBGCC_SPEC): Likewise.
14303         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
14304
14305 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
14306
14307         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
14308         (HANDLE_PRAGMA_PACK): Undefine.
14309         (SLOW_UNALIGNED_ACCESS): Define.
14310
14311 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
14312
14313         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
14314         to default definition.
14315         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
14316         (store_fixed_bit_field): Call macro with word_mode and alignment.
14317         (extract_bit_field): Call macro with relevant mode and alignment.
14318         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
14319         to default definition.
14320         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
14321         and alignment.
14322         (move_by_pieces_ninsns): Likewise.
14323         (clear_by_pieces): Likewise.
14324         (emit_push_insn): Likewise.
14325         (store_field): Call macro with relevant mode and alignment.
14326         (expand_expr): Likewise.
14327         (expand_expr_unaligned): Likewise.
14328
14329         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
14330         (SLOW_UNALIGNED_ACCESS): Define.
14331         (CASE_VECTOR_MODE): Always use 32-bit offsets.
14332         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
14333         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
14334         (toc_section): Likewise and .toc pseudo-op.
14335         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
14336         64-bit mode.
14337         (TEXT_SECTION_ASM_OP): Likewise.
14338         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
14339         32-bit offsets.
14340
14341         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
14342         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
14343         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
14344         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
14345         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
14346
14347 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
14348
14349         * regclass.c: Revert my Jan 4 change to loop cost computation.
14350
14351 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14352
14353         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
14354         compilation.
14355
14356 2000-01-04  Stan Cox  <scox@cygnus.com>
14357
14358         * haifa-sched.c (build_control_flow): Change unreachable simple
14359         loop test to check if current block has only one predecessor.
14360         (find_rgns): Initialize degree.  Use dest as degree index, not src.
14361
14362 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14363
14364         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
14365
14366         * calls.c (expand_call): Likewise for
14367         `old_stack_arg_under_construction'.
14368
14369         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
14370
14371         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
14372         `save_constant'.
14373
14374         * gcc.c (execute): Likewise for `ut' and `st'.
14375
14376         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
14377
14378         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
14379
14380         * jump.c (jump_optimize_1): Likewise for `temp2'.
14381
14382         * local-alloc.c (block_alloc): Likewise for `r1'.
14383
14384         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
14385
14386         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
14387         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
14388
14389         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
14390         and `set2'.
14391
14392         * reload.c (find_reloads): Likewise for `goal_alternative_number'
14393         and `goal_earlyclobber'.
14394
14395         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
14396
14397         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
14398
14399         * stupid.c (stupid_life_analysis): Likewise for `chain'.
14400
14401         * unroll.c (copy_loop_body): Likewise for `copy'.
14402
14403         * varasm.c (output_constructor): Likewise for `byte'.
14404
14405 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14406
14407         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
14408         all FP constants for constant->reg moves.
14409         (ix86_split_to_parts): Try to convert memory address into immediate
14410         when available in the constant pool.
14411         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
14412         moves.
14413         (LEGITIMATE_CONSTANT_P): Return 1.
14414         * i386.md (pushsf): New splitter to convert constant pool memory
14415         reference to immediate.
14416         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
14417         reload.
14418
14419 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
14420
14421         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
14422         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
14423         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
14424         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
14425         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
14426
14427 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
14428
14429         * ginclude/stdbool.h:  Support compilation as C++.
14430
14431 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14432
14433         * fold-const.c (make_range): Don't try to reverse an unbounded range.
14434
14435 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
14436
14437         * regclass.c (regclass): Properly compute loop_cost.  Adjust
14438         comments.
14439
14440         * regclass.c: Fix minor whitespace problems.
14441
14442 2000-01-03  Anthony Green  <green@cygnus.com>
14443
14444         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
14445         Restore the pic register if required.
14446
14447 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
14448
14449         * c-common.c (format_char_info): Update comment.
14450         (check_format_info): Recognize 'z' modifier in the same way 'Z'
14451         was recognized.  Emit warning for formats new in ISO C99 only
14452         if flag_isoc9x is not set.
14453
14454 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
14455
14456         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
14457
14458 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
14459
14460         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
14461         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
14462         (make_compound_operation): Choose cheaper alternative between
14463         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
14464
14465         * regclass.c (op_costs): Remove global variable.
14466         (record_reg_classes): New parameter "op_costs" and "reg_pref".
14467         (record_operand_costs): Break out from ...
14468         (scan_one_insn): ... here.
14469         (dump_regclass): Make dumps nicer.
14470         (regclass): Dump preferrences choosed and changes done during passes.
14471
14472 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
14473
14474         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
14475
14476 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
14477
14478         * config/sparc/sparc.c (gen_df_reg): New function.
14479         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
14480         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
14481         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
14482         movtf_cc_reg_sp64+1): Use it.
14483
14484 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
14485
14486         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
14487         copied LABEL_DECLs.
14488
14489 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14490
14491         * config/i386/i386.c (ix86_expand_unary_operator): Function
14492         definition made void.
14493         (ix86_expand_binary_operator): Update outdated preceding comment.
14494         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
14495         prototype.
14496
14497         * config/i386/i386.c (override_options): Fix option-name typo.
14498
14499 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
14500
14501         * system.h (CEIL): Define.
14502         * builtins.c (CEIL): Remove.
14503         * expmed.c (CEIL): Likewise.
14504         * expr.c (CEIL): Likewise.
14505         * stor-layout.c (CEIL): Likewise.
14506
14507 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
14508
14509         * expr.c (store_constructor_field): Fix typo introduced with last
14510         gcc2 merge.
14511
14512 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
14513
14514         * tree.h (BINFO_N_BASETYPES): New macro.
14515
14516 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
14517
14518         * expmed.c (emit_store_flag): Prevent losing a pending stack
14519         adjust the same way we prevent losing queued increments.
14520
14521 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14522
14523         * function.c (update_temp_slot_address): Handle case where sum of
14524         temporary address plus offset in register is a valid address.
14525
14526 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
14527
14528         * genrecog.c (change_state) Corrected typo.
14529
14530 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14531
14532         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
14533         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
14534         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
14535
14536 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
14537
14538         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
14539         case, expand GT comparisons correctly.  Fix a comment before this
14540         part of the code.
14541
14542 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
14543
14544         * dwarfout.c: Include "frame.h"
14545         * dwarf2out.c: Likewise.
14546         * Makefile.in (dwarfout.o): Depend on frame.h
14547         (dwarf2out.o): Likewise.
14548
14549 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
14550
14551         Restore i386 binary compatibility in Dwarf EH info.
14552         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
14553         value of FIRST_PSEUDO_REGISTER.
14554         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
14555         (struct frame_state): Use DWARF_FRAME_REGISTERS.
14556         * dwarfout.c (output_reg_number): Ditto.
14557         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
14558         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
14559
14560 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
14561
14562         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
14563         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
14564         (<hack>_RE_CT): not needed
14565         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
14566         rewritten to scan the file text once only
14567         "template<..." test added
14568         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
14569         (is_cxx_header): declaration added
14570         * fixinc/fixtests.c(is_cxx_header): removed
14571         (apply_fix_p_t): removed
14572         (double_slash_test): is_cxx_header is only called once now
14573         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
14574         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
14575         within the templates.
14576         The borken spelling of "broken" was fixed.
14577         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
14578         The default level depends on FIXINC_DEBUG.
14579
14580 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14581
14582         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
14583         Otherwise provide a declaration for atexit.
14584         (init_dummy): Make sure dummy call to atexit is nevertheless
14585         called with correct number of args.
14586
14587         * frame.c: Update comments referring to other files.
14588
14589         * libgcc2.c: Likewise.
14590
14591 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14592
14593         * cse.c (free_element, get_element): Remove unused prototypes.
14594
14595         * fold-const.c (extract_muldiv): Initialize variables `op0' and
14596         `op1'.
14597
14598         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
14599         `else' clauses.
14600
14601 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
14602
14603         * configure.in,configure: case arm for mn10200-*-* now sets
14604         float_format=i32 so that float.h will correctly claim "double"
14605         to be 32 bits. Ran autoconf to generate configure from .in file.
14606
14607 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
14608
14609         * pa.md (conditional zero): If op1 is a register, force it into
14610         the same register as op0.
14611
14612 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
14613
14614         * tree.h (BINFO_BASETYPES): Improve documentation.
14615
14616 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14617
14618         * configure.in (--enable-checking): Use a more portable `for'
14619         loop syntax.
14620
14621 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14622
14623         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
14624         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
14625
14626         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
14627         Delete files.
14628
14629         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
14630         Delete descriptions.
14631
14632         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
14633         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
14634         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
14635         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
14636         xm-svr4.h: Remove all instances of sys_siglist handling.
14637
14638 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
14639
14640         * config/sparc/sparc.md (cmp_zero_qi,
14641         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
14642         cmp_zero_extendqidi2_andcc_set): New patterns.
14643
14644 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
14645
14646         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
14647         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
14648         (fpgnulib.c, xfgnulib.c): Add rules.
14649         * m68k/t-mot3300-gas: Likewise.
14650
14651 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
14652
14653         * configure.in: Avoid [[ by using test and changequote.  Add
14654         changequote required by 1999-12-14 change.
14655         * configure: Rebuild.
14656
14657 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
14658
14659         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
14660
14661 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
14662
14663         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
14664         * flow.c (find_use_as_address): Likewise.
14665         * function.c (fixup_var_refs_1): Likewise.
14666         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
14667         * jump.c (invert_exp, redirect_exp): Likewise.
14668         * loop.c (replace_call_address): Likewise.
14669         (count_nonfixed_reads): Likewise.
14670         * rtlanal.c (modified_between_p): Likewise.
14671         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
14672         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
14673         * unroll.c (remap_split_bivs): Likewise.
14674
14675 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14676
14677         * diagnostic.c (v_message_with_decl): Use .* format specifier
14678         instead of building the format specifier width manually.
14679
14680         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
14681         determining whether to provide a prototype.  Remove the
14682         sys_siglist clause in the conditional.
14683
14684 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
14685
14686         * fold-const.c (operand_equal_p): Use memcmp to compare string
14687         constants.
14688         Suggested by D. J. Bernstein
14689
14690 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
14691
14692         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
14693         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
14694         compiling libgcc2.
14695         * config/mips/mips.h (TARGET_64BIT): Likewise.
14696         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
14697         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
14698         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
14699         dsps.  Give routines proper names if SI/DI modes are not used.
14700         * longlong.h: Use DWunion instead of DIunion.
14701
14702 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
14703
14704         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
14705         GC_CHECKING, GC_ALWAYS_COLLECT.
14706         * configure.in: Allow --enable-checking with an argument
14707         listing check modes to enable.
14708         * config.in, configure: Rebuilt.
14709         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
14710         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
14711         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
14712         ENABLE_GC_ALWAYS_COLLECT.
14713         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
14714         throughout.
14715         * tree.h, tree.c: Change ENABLE_CHECKING to
14716         ENABLE_TREE_CHECKING throughout.
14717
14718 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14719
14720         * fold-const.c (fold_truthop): Properly check for FP RHS.
14721
14722 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
14723
14724         * toplev.h (note_deferall_of_defined_inline_function): Declare.
14725         * toplev.c (note_deferral_of_defined_inline_function): New
14726         function, split out from ...
14727         (rest_of_compilation): ... here.  Use it.
14728
14729 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14730
14731         * expr.c (store_constructor): Don't call clear_storage if size is
14732         variable.
14733
14734 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14735
14736         * Makefile.in (toplev.o): Depend on loop.h.
14737
14738         * dwarfout.c: Include tm_p.h.
14739
14740         * emit-rtl.c (restore_emit_status): Mark parameter with
14741         ATTRIBUTE_UNUSED.
14742
14743         * final.c (final_scan_insn): Likewise.
14744
14745         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
14746         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
14747         flow_depth_first_order_compute, flow_loop_pre_header_find,
14748         flow_loop_tree_node_add, flow_loops_tree_build,
14749         flow_loop_level_compute, flow_loops_level_compute,
14750         flow_loop_outside_edge_p): Add prototypes.
14751         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
14752
14753         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
14754         Mark with ATTRIBUTE_NORETURN.
14755
14756         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
14757
14758         * local-alloc.c (no_conflict_p): Likewise.
14759
14760         * loop.c (insert_bct): Hide definitions of variables with hidden
14761         usage.
14762         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
14763
14764         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
14765         with ATTRIBUTE_UNUSED.
14766         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
14767         (reg_scan): Likewise.
14768
14769         * reload.c (find_reloads): Remove unused variables `changed'.
14770
14771         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
14772         away const-ness.
14773         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
14774         Remove unused variable `insn'.
14775
14776         * toplev.c: Include loop.h.
14777         (report_file_and_line): Remove unnecessary prototype.
14778
14779         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
14780
14781         * unroll.c (biv_total_increment): Likewise.
14782
14783 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14784
14785         * reload1.c (emit_input_reload_insns): Restore old behaviour
14786         wrt. 'special' reloads.
14787
14788 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
14789
14790         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
14791         hash.h.  (cse.c): Don't depend on hashtab.h.
14792
14793         * cse.c: Don't include hashtab.h.
14794         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
14795         of dead functions.
14796         * ggc-simple.c: Don't include hash.h.
14797
14798 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
14799
14800         * dwarf2out.c (add_abstract_origin_attribute): Call
14801         gen_abstract_function on our function context.
14802
14803 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
14804
14805         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
14806
14807 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14808
14809         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
14810         case in switch.
14811
14812 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14813
14814         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
14815         constraints to "a!r".
14816
14817 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
14818
14819         * Makefile.in (calls.o): Depend on function.h.
14820         (alias.o): Likewise.
14821
14822 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
14823
14824         * reload1.c (emit_reload_insns): Break out code and variables into...
14825         (input_reload_insns, other_input_address_reload_insns,
14826         other_input_reload_insns, input_address_reload_insns,
14827         inpaddr_address_reload_insns, output_reload_insns,
14828         output_address_reload_insns, outaddr_address_reload_insns,
14829         operand_reload_insns, other_operand_reload_insns,
14830         other_output_reload_insns): ... new static variables, and...
14831         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
14832         do_output_reload): ... new functions.
14833
14834 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14835
14836         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
14837
14838 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14839
14840         * md.texi: Add c4x constraints documentation.
14841
14842 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
14843
14844         * config/i386/dgux.c (struct option): Rename to
14845         lang_independent_option.
14846         (struct m_options): Add description field.
14847         (output_options): Rename option type, add sep declaration, output
14848         ix86_cpu_string and ix86_arch_string only if set.
14849         (output_file_start): Rename option type.
14850
14851 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
14852
14853         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
14854         stmp-int-hdrs.
14855         (libgcc2.a): Similarly.
14856
14857 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
14858
14859         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
14860         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
14861         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
14862
14863 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
14864
14865         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
14866         Remove redundant initialization of "frexpon" and "expon".
14867
14868 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14869
14870         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
14871
14872         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
14873         (store_constructor_field, expand_expr): Pass new arg.
14874
14875 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
14876
14877         * Makefile.in (explow.o): Depend on function.h.
14878
14879         * stor-layout.c (set_sizetype): Fix typo.
14880
14881 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
14882
14883         * function.c (cfun): Renamed from current_function.  All users
14884         changed.
14885         * function.h (cfun): Rename declaration as well.
14886
14887         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
14888         to be of type regset_head, not regset.  All users changed by adding
14889         address operator.
14890         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
14891
14892 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14893
14894         * config/c4x/rtems.h: New file.
14895
14896 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
14897
14898         * reload1.c (spill_failure): Take class of failed reload as argument
14899         and print it.  Caller changed.
14900
14901 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14902
14903         * rs6000.h (SUBTARGET_DEFAULT): New macro.
14904         (TARGET_SWITCHES): Allow subtargets to default switches.
14905         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
14906
14907 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
14908
14909         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
14910         in a main program.
14911
14912 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
14913
14914         * cccp.c (main): Define __STDC_VERSION__ as necessary.
14915         * cppinit.c (cpp_handle_option): Likewise.
14916
14917         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
14918         determine when to define.
14919
14920 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
14921
14922         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
14923         cmove with mismatched test and data modes.
14924
14925 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
14926
14927         * c-typeck.c (c_expand_start_case): Don't warn for long switch
14928         in system headers.
14929
14930 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14931
14932         * alias.c: Minor reformatting.
14933         * flow.c: Likewise.
14934         * regs.h: Likewise.
14935         * stor-layout.c: Likewise.
14936         * fold-const.c: Likewise.
14937         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
14938         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
14939         not arg itself.
14940         (size_int_wide): Cache nodes even if garbage collecting.
14941         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
14942         of SAVE_EXPR has no side effects.
14943         * cse.c: Move a comment.
14944         * tree.c: Minor reformatting.
14945         (int_size_in_bytes): Return -1 if constant overflows.
14946
14947 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14948
14949         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
14950
14951 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
14952
14953         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
14954         after any change to c-parse.in, even if objc-parse.y didn't
14955         change.  Oops.
14956
14957 1999-12-18  David S. Miller  <davem@redhat.com>
14958
14959         * toplev.c (rest_of_compilation): Restore BLOCK tree
14960         reconstruction and branch shortening changes lost in
14961         December 18th change.
14962
14963 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
14964
14965         * config/arm/linux-elf.h: Change all instances of
14966         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
14967         * config/arm/uclinux-elf.h: Likewise.
14968
14969 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
14970
14971         * toplev.c (notice, vmessage, v_message_with_file_and_line,
14972         v_message_with_decl, file_and_line_for_asm,
14973         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
14974         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
14975         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
14976         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
14977         pfatal_with_name, fatal_io_error, need_error_newline,
14978         last_error_function, last_error_tick, announce_function,
14979         default_print_error_function, print_error_function,
14980         report_error_function, fnotice, error_with_file_and_line,
14981         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
14982         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
14983         warning_with_decl, warning_for_asm, warning, pedwarn,
14984         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
14985         diagnostic.c
14986         (compile_file): Use fnotice instead of notice.  Adjust call.
14987
14988         * diagnostic.c: New file.
14989
14990         * Makefile.in (OBJS): Include diagnostic.o
14991         (diagnostic.o): Define dependence.
14992
14993 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14994
14995         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
14996         Tweak formatting.
14997
14998 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14999
15000         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
15001
15002 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
15003
15004         * fixtests.c (is_cxx_header): New fn, split out of
15005         double_slash_test.
15006         (else_endif_label): Allow "#endif // comment" in C++ headers,
15007         as determined by is_cxx_header.
15008         * fixfixes.c (else_endif_label_fix): Update comment.
15009         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
15010         a tty.
15011         * genfixes: Correct double thinko in commandline parsing.
15012         * hackshell.tpl: Generate correct sh syntax for bypass
15013         entries.
15014
15015         * inclhack.def (all): Whenever an inserted preprocessor
15016         conditional is split over multiple lines, use double
15017         backslashes in this file so the fixed header will be readable.
15018
15019         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
15020         and add bypass entry for correct version of this header.
15021         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
15022         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
15023
15024         (hpux8_bogus_inlines): New fix, split from...
15025         (ultrix_atof_param) ... here.
15026         (math_expression): Add bypass entry keyed to glibc comment
15027         indicating the problem has been dealt with; disable
15028         unnecessary sed operations; update commentary.
15029         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
15030         add select and bypass entries, simplify shell operation.
15031         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
15032
15033         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
15034          ultrix_atof_param): Add select entry.
15035         (stdio_va_list, sunos_mather_decl): Add bypass entry.
15036         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
15037         comments with the fixes they describe.
15038
15039         * c-parse.in (string action): Do not warn about ANSI string
15040         concatenation in system headers.  Affects C parser only.
15041         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
15042
15043 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
15044
15045         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
15046         compiling libgcc2 the macro depends always on arch cpp defines.
15047
15048 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
15049
15050         * loop.c (insert_loop_mem): Don't record MEMs from inside
15051         EXPR_LISTs.
15052
15053 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
15054
15055         * regclass.c (regclass): Do not use flowgraph when not optimizing.
15056
15057         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
15058         notes too, create one when replacement failed, attempt to simplify
15059         resulting notes.
15060         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
15061         or REG_EQUIV notes.
15062
15063 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
15064
15065         * crtstuff.c (__dso_handle): Declare.
15066         (__cxa_finalize): Likewise.
15067         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
15068         non-NULL.
15069
15070         * invoke.texi: Document -fuse-cxa-atexit.
15071
15072         * tree.h (ptr_type_node): Document.
15073         (const_ptr_type_node): Likewise.
15074
15075 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15076
15077         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
15078         (optimize_reg_copy_2): Likewise.
15079         (optimize_reg_copy_3): Likewise.
15080         (fixup_match_2): Likewise.
15081         (regmove_optimize): Likewise.
15082         (fixup_match_1): Liekwise.
15083
15084         * i386.md (HI to SImode promoting splitters): Rewrite.
15085         (pushsf mem peep2): New.
15086         (testhi to andhi peep2): Remove.
15087         * i386.h (x86_promote_QImode): New.
15088         (TARGET_PROMOTE_QImode): New.
15089         (PREDICATE_CODES): Add promotable_binary_operator.
15090         * i386.c (x86_promote_QImode0: New.
15091         (promotable_binary_operator): New.
15092         * i386-protos.h (promotable_binary_operator): New.
15093
15094         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
15095         condition.
15096         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
15097
15098 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
15099
15100         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
15101         * function.c (insert_block_after_note): Remove.
15102         (retrofit_block): Likewise.
15103         (identify_blocks): Fix indentation.
15104         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
15105         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
15106         * function.h (insert_block_after_note): Remove prototype.
15107         (retrofit_block): Likewise.
15108         * integrate.c (expand_inline_function): Don't call
15109         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
15110         just expand_start_bindings.  Use the block_map to remap old
15111         NOTE_BLOCKs to new ones.
15112         (integrate_decl_tree): Keep track of remapped blocks.
15113         * integrate.h (struct inline_remap): Add block_map.
15114         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
15115         NOTE_BLOCK on the notes.
15116         (expand_start_bindings): Rename to ...
15117         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
15118         (expand_end_bindings): Set NOTE_BLOCK.
15119         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
15120         reconstruct the BLOCK tree.
15121         * tree.h (expand_start_bindings): Macroize.  Call ...
15122         (expand_start_bindings_and_block): New function.
15123
15124 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
15125
15126         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
15127         to match the format.
15128
15129 1999-12-16  David S. Miller  <davem@redhat.com>
15130
15131         * expr.c (emit_move_insn_1): Only emit clobbers if one of
15132         the outputs is a SUBREG.
15133         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
15134         change.
15135
15136         * config/sparc/sparc.c (epilogue_renumber): Add default case
15137         to switch stmt.
15138
15139 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15140
15141         * toplev.c (rest_of_compilation): Run branch shortening after
15142         reg-stack.
15143
15144         * regclass.c (loop_depth): Remove
15145         (scan_one_insn): Do not handle LOOP_NOTE insns.
15146         (regclass): Go through basic blocks and set loop_cost
15147
15148 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
15149
15150         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
15151
15152 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15153
15154         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
15155         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
15156         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
15157
15158 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
15159
15160         * loop.c (insert_loop_mem): Ignore memory clobbers.
15161
15162         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
15163         to (OP A B).
15164
15165 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
15166
15167         * profile.c: Remove redundant #include "output.h".
15168
15169         * h8300.md (HImode preinc peephole): Fix typo.
15170
15171 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
15172
15173         * function.c (retrofit_block): Abort if we don't find a suitable insn.
15174         (insert_block_after_note): Abort if we don't have a previous block.
15175         Remove FN parameter.
15176         * function.h: Adjust.
15177
15178 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
15179
15180         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
15181         argument more than once.
15182
15183 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
15184
15185         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
15186
15187 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
15188
15189         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
15190
15191 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15192
15193         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
15194         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
15195         update stack_alignment_needed.
15196         (prepare_function_start): Initialize stack_alignment_needed
15197         * function.h (struct function): Add field stack_alignment_needed.
15198
15199 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15200
15201         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
15202         Handle live_throughout / dead_or_set instead of live_before /
15203         live_after.
15204         (save_call_clobbered_regs): Get register livenessinformation from
15205         chain->live_throughout.
15206         (add_stored_regs): New function.
15207         (insert_restore, insert_save): Add restored / saved registers to
15208         dead_or_set.
15209         * global.c (reg_dies): New parameter chain.
15210         (reg_becomes_live): Third parameter is regs_set now.
15211         Changed all callers.
15212         (reg_dies): New parameter chain.  Changed all callers.
15213         (build_insn_chain): Set live_throughout instead of
15214         live_before / live_after.
15215         * reload.h (struct insn_chain): Replace members live_before /
15216         live_after with live_throughout / dead_or_set.
15217         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
15218         instead of live_before / live_after.
15219         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
15220         (order_regs_for_reload, find_reg, finish_spills): Likewise.
15221         (choose_reload_regs_init): Likewise.
15222         * stupid.c (current_chain, find_clobbered_regs): Delete.
15223         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
15224         instead of chain->live_before / chain->live_after.
15225         (mark_hard_ref): New function.
15226         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
15227
15228 1999-12-15  David S. Miller  <davem@redhat.com>
15229
15230         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
15231
15232 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15233
15234         * flow.c (calculate_loop_depth): Make global, remove prototype,
15235         rewrite to use new loop infrastructure.
15236         (find_basic_block): Remove calculate_loop_depth call.
15237         * toplev.c (rest_of_compilation): Call find_basic_block.
15238         * output.h (calculate_loop_depth): Declare.
15239
15240         * flow.c (dump_flow_info): Dump loop_depth.
15241         (flow_loops_nodes_find): Increase loop_depth for basic block in the
15242         body.
15243         (flow_loops_find): Initialize the loop_depth for each basic block.
15244
15245 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
15246
15247         * tree.c (decl_function_context): Handle virtual functions.
15248
15249         * tlink.c (scan_linker_output): Don't look in demangled name when
15250         looking for linker output keywords.
15251
15252         * dwarfout.c (output_type): We can defer namespace-scope classes.
15253
15254 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
15255
15256         * regclass.c (record_reg_classes): Update comment for merging
15257         register class preferences in reg->reg copies.  Tighten conditions
15258         for merging register class preferences in reg->reg copies.
15259
15260 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
15261
15262         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
15263
15264 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
15265
15266         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
15267         (INIT_SECTION_ASM_OP): Delete.
15268         (FINI_SECTION_ASM_OP): Delete.
15269         (STARTFILE_SPEC): Define to hold just crtbegin.o.
15270
15271 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
15272
15273         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
15274         the abstract origin wasn't emitted.
15275
15276         * dwarf2out.c (class_scope_p): New fn.
15277         (gen_subprogram_die): Use it.
15278         (gen_variable_die): Use it.  Tweak logic.
15279         (gen_struct_or_union_type_die): Check context_die to determine
15280         if we're function-local.
15281         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
15282
15283 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
15284
15285         * loop.c (check_dbra_loop): Can't reverse a biv that has
15286         maybe_multiple set.
15287
15288 1999-12-14  Nick Clifton  <nickc@cygnus.com>
15289
15290         * config/arm/arm.c: Add support for -mcpu=arm720 command line
15291         switch.
15292
15293 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15294
15295         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
15296         for givs made from biv increments.
15297
15298 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
15299
15300         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
15301         * alpha.c (override_options): Recognize -mcpu=ev67.
15302         * alpha.h (CPP_CPU_EV67_SPEC): New.
15303         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
15304         (EXTRA_SPECS): Update.
15305
15306 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
15307
15308         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
15309         appropriate for -lang-c89 and -std=*.
15310         * cppinit.c (cpp_handle_option): Likewise.
15311         (new_pending_define): New, split out from cpp_handle_option.
15312         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
15313         or enable trigraphs for -ansi/-std=*.
15314
15315         * ginclude/stdarg.h (__va_copy): New.
15316         (va_copy): Don't define for C89.
15317
15318 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
15319
15320         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
15321         for long long multiply-accumulate.
15322
15323 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15324
15325         * regclass.c (scan_one_insn): Set loop_cost to 1 when
15326         optimizing for size.
15327
15328 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
15329
15330         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
15331         if something changed.  Back out that part of yesterday's changes.
15332
15333         * loop.c (loop_max_reg): New static variable.
15334         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
15335         max_reg_num.
15336         (scan_loop): Call reg_scan_update whenever we may have added new
15337         registers, and update loop_max_reg.
15338
15339 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15340
15341         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
15342         when source does not die.
15343
15344         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
15345
15346 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
15347
15348         * config/sparc/linux64.h (TARGET_LIVE_G0,
15349         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
15350         variants on Linux.
15351         * config/sparc/linux.h (TARGET_LIVE_G0,
15352         TARGET_BROKEN_SAVERESTORE): Likewise.
15353         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
15354         TARGET_BROKEN_SAVERESTORE): Likewise.
15355
15356         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
15357         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
15358         not %g2.
15359         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
15360         as sparc64 block profiling register.
15361         * config/sparc/sparc.c (sparc_override_options): Allow block
15362         profiling with -m32.
15363         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
15364         profiling register.
15365         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
15366         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
15367         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
15368
15369         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
15370         for sparc64.
15371         * config/sparc/sparc.h: Likewise.
15372         * config/sparc/xm-sysv4-64.h: Likewise.
15373         * config/float-sparc.h: Likewise.
15374         * glimits.h: Likewise.
15375         * longlong.h: Likewise.
15376
15377         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
15378         (ASM_IDENTIFY_GCC): Remove.
15379
15380 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
15381
15382         * combine.c (combine_simplify_rtx): Don't make shared rtl.
15383         (simplify_logical): Likewise.
15384
15385 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
15386
15387         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
15388         * cppfiles.c (INO_T_EQ): Likewise.
15389
15390 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
15391
15392         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
15393         * i386/mingw32.h (LIB_SPEC): Likewise.
15394         (STARTFILE_SPEC): Likewise.
15395         * i386/uwin.h (LIB_SPEC): Likewise.
15396         (STARTFILE_SPEC): Likewise.
15397
15398         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
15399         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
15400
15401 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
15402
15403         * combine.c (combine_simplify_rtx): Fix order of checks for
15404         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
15405
15406 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
15407
15408         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
15409         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
15410
15411 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
15412
15413         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
15414         defined.
15415         * regclass.c (inv_reg_alloc_order): New array.
15416         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
15417
15418         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
15419         counted_for_groups, counted_for_nongroups.  Add fields rld and
15420         n_reloads.
15421         * reload.c (push_secondary_reload): Don't set nongroup field of
15422         new reloads.
15423         (push_reload): Likewise.
15424         (find_reloads): Delete code to compute nongroup fields.
15425         * reload1.c (reload_insn_firstobj): New static variable.
15426         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
15427         users changed.
15428         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
15429         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
15430         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
15431         functions.
15432         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
15433         functions.
15434         (struct hard_reg_n_uses): Deleted.
15435         (potential_reload_regs): Deleted.
15436         (init_reload): Initialize spilled_pseudos and pseudos_counted.
15437         (reload): Don't try to allocate reload registers if we already know
15438         we have to make another pass.  Call select_reload_regs.  Free memory
15439         starting with reload_firstobj when starting another pass.
15440         Don't allocate spilled_pseudos.
15441         (calculate_needs_all_insns): Call copy_reloads for an insn that
15442         needs reloads; don't call calculate_needs.
15443         (spill_cost): New static array.
15444         (used_spill_regs_local): New static variable.
15445         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
15446         to compute potential_reload_regs.
15447         (find_reload_regs): Completely rewritten to use find_reg.
15448         (allocate_reload_reg): Don't test counted_for_groups or
15449         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
15450         all cllers changed.
15451         (choose_reload_regs): Add fallback code that uses the existing
15452         register allocation from find_reload_regs.
15453
15454 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
15455
15456         * flow.c (create_edge_list): Cast xmalloc return value.
15457
15458 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
15459
15460         * doprnt.c: Remove incorrect comment closure.
15461
15462         * cse.c: Fix a few minor whitespace goofs.
15463
15464 1999-12-13  Don Bowman  <don@pixstream.com>
15465
15466         * mips/vxworks.h: Fix problem with comment termination.
15467         (EXTRA_SECTIONS): Add in_sbss.
15468         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
15469
15470 1999-12-12  David S. Miller  <davem@redhat.com>
15471
15472         * cse.c (struct cse_reg_info): Add hash_next member,
15473         reorder rest of struct for better packing on 64-bit
15474         hosts.
15475         (cse_reg_info_tree): Kill.
15476         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
15477         REGHASH_FN): New custom pow2 hash mechanism.
15478         (NBUCKETS): Kill.
15479         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
15480         use a pow2 hash table.
15481         (get_cse_reg_info): Rework to use new REGHASH.
15482         (new_basic_block): Likewise, use HASH_SIZE, and inline
15483         free_element call.
15484         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
15485         and inline free_element call.
15486         (lookup_as_function, insert, flush_hash_table, invalidate,
15487         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
15488         invalidate_for_call, use_related_value, find_comparison_args,
15489         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
15490         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
15491         get_element): Kill.
15492
15493 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
15494
15495         * cse.c (cse_basic_block): Free qty_table consistently.
15496
15497 1999-12-12  David S. Miller  <davem@redhat.com>
15498             Jakub Jelinek    <jakub@redhat.com>
15499
15500         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
15501         SUBREGs by hand, gen the appropriate hard reg directly.
15502         (movtf reg/mem split): Likewise and alter_subreg on destination
15503         if necessary.
15504         (movtf mem/reg split): Similarly.
15505         (movdf_cc_sp64): Rename from hidden pattern.
15506         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
15507         (movtf_cc_sp64, following split): New pattern and splitter.
15508         (movdf_cc_reg_sp64): Rename from hidden pattern.
15509         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
15510         TARGET_HARD_QUAD.
15511         (movtf_cc_reg_sp64, following split): New pattern and splitter.
15512
15513 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
15514
15515         * loop.c (load_mems): Don't hoist written floating point mem
15516         if -ffloat-store.
15517
15518 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
15519
15520         * except.h (struct eh_queue): Add `next' pointer.
15521         (struct eh_status): Make x_ehqueue a pointer.
15522         (push_ehqueue):  Declare.
15523         (pop_ehqueue): Likewise.
15524         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
15525         pointer.
15526         (expand_fixup_region_end): Likewise.
15527         (expand_leftover_cleanups): Likewise.
15528         (push_ehqueue): Define.
15529         (pop_ehqueue): Likewise.
15530         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
15531         than doing it inline.
15532         (expand_start_all_catch):  Adjust now that ehqueue is a
15533         pointer.
15534         (mark_eh_queue): Mark all level of the queue.
15535         (mark_eh_status):  Adjust now that ehqueue is a
15536         pointer.
15537         (init_eh_for_function): Allocate ehqueue.
15538         (free_eh_status): Free it.
15539         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
15540         expansion for a fixup.
15541
15542 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15543
15544         * gthr-single.h (__gthread_active_p): Add prototype arguments.
15545
15546         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
15547         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
15548         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
15549         function_ptr, getpagesize, __enable_execute_stack,
15550         __enable_execute_stack, __clear_insn_cache,
15551         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
15552         _cleanup, _exit, __default_terminate, __terminate_func,
15553         __terminate, __empty, __throw, new_eh_context,
15554         eh_context_initialize, eh_context_static, eh_context_specific,
15555         get_eh_context, __get_eh_context, __get_eh_info,
15556         init_reg_size_table, eh_threads_initialize,
15557         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
15558         __unwinding_cleanup, throw_helper, __throw, __rethrow,
15559         __pure_virtual): Add prototype arguments.
15560         (__bb_exit_func): Cast a sizeof to long when comparing against one.
15561         Cast a signed value to unsigned long when comparing against one.
15562         (new_eh_context): Wrap in _GTHREADS macro.
15563         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
15564         declaration.
15565         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
15566         (throw_helper): Initialize variables `handler_p' and `pc_p'.
15567
15568 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15569
15570         * combine.c (record_promoted_value): Remove unused variable
15571         `links2'.
15572
15573         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
15574
15575         * global.c (record_conflicts): Likewise for `j'.
15576
15577         * genoutput.c (output_insn_data): Don't unnecessarily cast away
15578         const-ness.
15579
15580 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15581
15582         * i386-protos.h (output_387_binary_op, output_fix_trunc,
15583         output_fp_compare): Constify a char*.
15584
15585         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
15586         static prototypes.
15587         (override_options, ix86_comp_type_attributes, print_operand,
15588         output_387_binary_op, output_fix_trunc, output_fp_compare):
15589         Constify a char*.
15590         (ix86_sched_reorder): Mark parameter `clock_var' with
15591         ATTRIBUTE_UNUSED.
15592
15593         * i386.h (DEBUG_PRINT_REG): Constify a char*.
15594
15595 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
15596
15597         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
15598         operand, for use in the Java front-end.
15599
15600 1999-12-10  Ben Collins  <bcollins@debian.org>
15601
15602         * configure.in: Fix typo for "-64" in 64bit as check.
15603         * configure: Rebuilt.
15604
15605 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
15606
15607         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
15608         appropriate.
15609
15610 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15611
15612         * c-parse.in (string): With -Wtraditional, warn if ANSI string
15613         concatenation is utilized.
15614
15615         * invoke.texi (-Wtraditional): Document it.
15616
15617 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15618
15619         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
15620         Cast a ptrdiff_t to long and pass it to printf with %ld.
15621
15622 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
15623
15624         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
15625         68881, we have no 68881 registers at all.
15626         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
15627         value in a 68881 register if it is available.
15628
15629 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
15630
15631         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
15632         for long long multiply-accumulate.
15633
15634 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
15635
15636         * loop.c (insert_loop_mem): Undo last change.
15637
15638 1999-12-10  David S. Miller  <davem@redhat.com>
15639
15640         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
15641         New functions.
15642         * config/sparc/sparc-protos.h: Add them.
15643         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
15644         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
15645         constraints which use those helpers.
15646         (EXTRA_CONSTRAINT): Use this new macro.
15647         * md.texi: Update sparc target constraints documentation.
15648         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
15649         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
15650         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
15651         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
15652         (movsf high/lo_sum split): Rework for new patterns.
15653         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
15654
15655 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
15656
15657         * c-common.c (c_common_nodes_and_builtins):
15658         Create __builtin_ptrdiff_t and __builtin_size_t.
15659
15660 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
15661
15662         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
15663
15664 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15665
15666         * regclass.c (globalize_reg): Re-instate test that allows
15667         fixed registers to be declared as a variable even after functions
15668         are defined.
15669
15670 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15671
15672         * i386.md (cpu attribute): Add "athlon".
15673         (athlon_decode): New attribute.
15674         (Athlon scheduling units definitions): New.
15675         (fcmp and shld patterns): Set athlon_decode to "vector".
15676         * i386.c (athlon_cost): New.
15677         (m_ATHLON): New.
15678         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
15679         x86_use_sahf): Set for Athlon.
15680         (x86_use_fiop): Unset for Athlon.
15681         (override_options): Define Athlon alignments and "athlon" name.
15682         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
15683         * i386.h (TARGET_ATHLON): New.
15684         (enum processor_type): Add PROCESSOR_ATHLON.
15685         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
15686         for CPU_DEFAULT==5
15687         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
15688
15689 1999-12-09  Andreas Jaeger  <aj@suse.de>
15690
15691         * loop.c (record_biv): Declare parameter as int.
15692
15693         * config/i386/i386-protos.h: Declare long_memory_operand.
15694
15695 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
15696
15697         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
15698         EXPR_WITH_FILE_LOCATION.
15699
15700 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
15701
15702         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
15703         in expander.
15704
15705         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
15706
15707         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
15708         updating code.
15709
15710 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
15711
15712         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
15713         default on linux64 again.
15714         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
15715         models for multilibing.
15716         * genmultilib: Accept | as alternative separator within a set in
15717         MULTILIB_OPTIONS.
15718
15719         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
15720
15721         * calls.c (precompute_arguments): Make sure initial_value contains
15722         value pseudo which CSE expects.
15723         * cse.c (struct set): New entry orig_src.
15724         (cse_insn): Set it early on entry, use it for libcall EQUIV note
15725         replacement.
15726
15727 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
15728
15729         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
15730
15731 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
15732
15733         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
15734
15735 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
15736
15737         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
15738         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
15739
15740         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
15741         if TARGET_ARCH32.
15742
15743         * longlong.h: Merge in changes from glibc.
15744         Also don't clobber %g2 register in 32bit SPARC assembly, so that
15745         -mno-app-regs libgcc can be compiled.
15746         * libgcc2.c: Add defines so that the updated longlong.h
15747         can be used in libgcc2.a. Also, make sure on most architectures
15748         (at least on all which have optimized code in longlong.h defined
15749         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
15750
15751 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15752
15753         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
15754         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
15755         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
15756         is GNU ld.
15757         * configure: Rebuilt.
15758
15759 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
15760
15761         * alpha.c (secondary_reload_class): For !BWX, sub-simode
15762         outputs require a register.
15763
15764 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
15765
15766         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
15767         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
15768         functions like dptoul will be resolved.
15769         (libgcc2.a): Make sure that the object files from DPBIT are named
15770         differently (prefix `_dp') from those that would be coming from
15771         FPBIT.
15772
15773 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
15774
15775         * configure.in: When target is sparc* and tm_file contains 64,
15776         test for 64bit support in assembler.  If not supported, remove
15777         sparc/t-sol2-64 from target-dependent Makefile fragments.
15778         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
15779         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
15780         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
15781         * acconfig.h (AS_SPARC64_FLAG): Added.
15782         * configure, config.in: Rebuilt.
15783         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
15784         support.  Use AS_SPARC64_FLAG.
15785
15786 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
15787
15788         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
15789         suitable for holding OFmode values so that gcc works with complex
15790         quad long doubles.
15791         (hard_64bit_mode_classes): Likewise.
15792
15793         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
15794         so that it is actually matched.
15795         (sethi_di_medlow): Likewise.
15796
15797         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
15798         as legitimate constant if -mvis.
15799         * config/sparc/sparc.md (movtf): Likewise.
15800         (clear_sf): Use const_double_operand.
15801         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
15802
15803         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
15804         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
15805         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
15806         routines, _Qp_* cannot be handled like that now.
15807         (INIT_TARGET_OPTABS): Likewise.
15808         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
15809         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
15810         sparc_emit_float_lib_cmp if ARCH64 and soft float.
15811         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
15812         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
15813         divtf3, sqrttf3): New expanders.
15814         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
15815         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
15816         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
15817         non-_hq patterns.
15818
15819         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
15820         * configure: Rebuilt.
15821         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
15822         -mcpu is given and we're doing 64bit compiles.
15823
15824 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
15825
15826         * loop.h (struct induction): Add multi_insn_incr.
15827         * loop.c (basic_induction_var): New multi_insn_incr argument.
15828         Set it if we search back through previous insns for the biv.
15829         (record_biv): New multi_insn_incr argument; fill in struct induction.
15830         (strength_reduce): Discard an iv with multiple bivs, any of
15831         which require multiple insns to increment.
15832
15833 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
15834
15835         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
15836         documentation.
15837
15838 1999-12-06  David S. Miller  <davem@redhat.com>
15839
15840         * combine.c (check_promoted_subreg): Do not conditionalize this upon
15841         PROMOTE_FUNCTION_RETURN.
15842
15843 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
15844
15845         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
15846         and handle REG_UNUSED note on insn.
15847
15848         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
15849         inner_mask instead of mask.
15850
15851 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
15852
15853         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
15854         zero if there was an error.
15855
15856 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
15857
15858         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
15859         output string.
15860
15861         * longlong.h: Fix clobbers in SPARC asm statements.
15862
15863         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
15864         valid sethi operations when TARGET_ARCH64.
15865
15866         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
15867         always use move_by_pieces to avoid infinite recursion.
15868         (restore_fixed_argument_area): Likewise.
15869
15870         * combine.c (check_promoted_subreg, record_promoted_value): New
15871         functions.
15872         (combine_instructions): Use them to retain nonzero and sign bit
15873         information after SUBREGs are eliminated by optimizations in
15874         this pass if PROMOTE_FUNCTION_RETURN.
15875
15876         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
15877         .register declaration. Don't use variables with __ prefixes.
15878
15879 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15880
15881         * fold-const.c (optimize_bit_field_compare): Only use one mode
15882         for both RHS and LHS in non-constant case.
15883
15884 1999-12-06  Nathan Sidwell  <nathan@acm.org>
15885
15886         * frame.c (start_fde_sort): Only allocate erratic array, if
15887         linear one was allocated. Return allocated flag.
15888         (fde_insert): Only insert, if there's a valid array.
15889         (fde_end_sort): Split, sort and merge if linear and erratic
15890         arrays exist, else just sort linear one.
15891         (search_fdes): New function. Linear search through original fde
15892         structure.
15893         (frame_init): Permit multiple initializations. Cope with
15894         memory shortages.
15895         (find_fde): Fallback on linear search, if failed to sort array.
15896         (__deregister_frame_info): Only free sorted array, if we
15897         allocated it.
15898
15899 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
15900
15901         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
15902
15903 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
15904
15905         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
15906
15907 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
15908
15909         * tree.h (special_function_p): Declare.
15910         * calls.c (special_function_p): Make it global.  Don't take `name'
15911         as a parameter.  Fix typo in 1999-11-28 change.
15912         (expand_cal): Adjust.
15913
15914 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
15915
15916         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
15917         * tree.h (EXPR_WFL_FILENAME): Define in terms of
15918         EXPR_WFL_FILENAME_NODE.
15919         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
15920         the TREE_CHAIN.
15921         * print-tree.c (print_note): Print TREE_PRIVATE and
15922         TREE_PROTECTED.
15923
15924         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
15925         the original die cannot be found.
15926
15927         * varray.h (varray_head_tag): Add elements_used.
15928         (VARRAY_PUSH): New macro.
15929         (VARRAY_POP): Likewise.
15930         (VARRAY_TOP): Likewise.
15931         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
15932         types.
15933         * varray.c (varray_init): Initialize elements_used.
15934         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
15935         (INTEGRATE_H): New variable.
15936         (integrate.o): Depend on INTEGRATE_H.
15937         (unroll.o): Likewise.
15938
15939         * function.h (insert_block_after_note): Declare.
15940         * function.c (insert_block_after_note): Split out from ...
15941         (retrofit_block): ... here.
15942
15943         * stmt.c (expand_fixup): Fix typo in comment.
15944
15945 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15946
15947         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
15948         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
15949         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
15950         (regmove_optimize, fixup_match_1): Likewise.
15951
15952 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15953
15954         * flow.c (flow_loops_dump): Add missing argument when calling
15955         flow_loop_nested_p.
15956
15957 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
15958             Greg McGary  <gkm@gnu.org>
15959
15960         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
15961         (init_attributes): Add A_NO_LIMIT_STACK.
15962         (decl_attributes): Handle A_NO_LIMIT_STACK.
15963         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
15964         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
15965         Handle stack bounds checking.
15966         * flags.h (flag_stack_check): Use the word 'probe' rather than
15967         'check', because the flag doesn't actually cause any checking to
15968         be done.
15969         * function.c (expand_function_start): Set
15970         current_function_limit_stack.
15971         * function.h (struct function): Add limit_stack.
15972         (current_function_limit_stack): Define.
15973         * invoke.texi (Code Gen Options): Document new options.
15974         * rtl.h: Declare stack_limit_rtx.
15975         * toplev.c (stack_limit_rtx): New variable.
15976         (decode_f_option): Handle new options -fstack-limit-register=REG,
15977         -fstack-limit-symbol=IDENT, -fno-stack-limit.
15978         (main): Add stack_limit_rtx as GC root.
15979         * tree.h (DECL_NO_LIMIT_STACK): New macro.
15980         (struct tree_decl): New member no_limit_stack.
15981
15982         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
15983         stack_limit_rtx.
15984         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
15985         (conditional_trap+1): Get new mnemonic correct.
15986         (conditional_trap+2): New pattern for DImode traps.
15987
15988         * config/m68k/m68k.c (output_function_prologue): Handle
15989         stack_limit_rtx.
15990         * config/m68k/m68k.md (trap): New insn.
15991         (conditional_trap): New insn.
15992         * md.texi (Standard Names): Document `trap' and
15993         `conditional_trap'.
15994         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
15995         so a cc0 setter doesn't get emitted at some random place in the
15996         function.
15997
15998         * config/i960/i960.md (trap): New insn.
15999         (conditional_trap): New expander.
16000         (conditional_trap+1, conditional_trap+2): New insns for signed
16001         and unsigned cases.
16002         * config/i960/i960.c (i960_function_prologue): Use
16003         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
16004
16005 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
16006                           Geoffrey Keating  <geoffk@cygnus.com>
16007
16008         * flags.h (warn_padded, warn_packed): Add global var decls.
16009         * toplev.c (warn_padded, warn_packed): Add global var defns.
16010         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
16011         * stor-layout.c (layout_record): Add local variable `type'
16012         to hold often-used TREE_TYPE (field).  Add local variable
16013         `unpacked_align' to hold alignment that would be in force
16014         if no `packed' attribute were present.  Warn if `packed' attribute
16015         is unnecessary, or even harmful.  Warn when gcc inserts padding
16016         to satisfy alignment requirements of members.  Use NULL_TREE
16017         when checking whether var_size is set.
16018         * invoke.texi: Document new flags.
16019
16020 1999-12-03  Nathan Sidwell  <nathan@acm.org>
16021
16022         * frame.c (fde_split): Reimplement to avoid variable sized array.
16023
16024 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16025
16026         * combine.c (try_combine): Before fixing up LOG_LINKS for the
16027         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
16028
16029 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
16030
16031         * invoke.texi: Document the mips option -mno-crt0
16032
16033 1999-12-02  Mike Karr  <mkarr@mathworks.com>
16034
16035         * cccp.c (argdata): Added free_ptr member.
16036         (macroexpand): Initialize free_ptr of each argument. When an
16037         argument's buffers are freed, if the argument's free_ptr corresponds
16038         to a buffer on the input stack, then return the free_ptr to that stack
16039         frame, otherwise, free it.
16040         (macarg): If an argument begins and ends on the same input stack level,
16041         then transfer the free_ptr of that buffer to the argument in case
16042         the stack is popped during the processing of a subsequent argument.
16043
16044 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
16045
16046         * loop.c (note_reg_stored): New function.
16047         (struct note_reg_stored_arg): New structure.
16048         (try_copy_prop): Change to be more conservative; only replace within
16049         one extended basic block and stop replacing if a store to the
16050         replacement reg is seen.
16051
16052 1999-12-02  Nick Clifton  <nickc@cygnus.com>
16053
16054         * config/fp-bit.c: Initialise all fields of the NAN
16055         constants.
16056
16057         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
16058         to HANDLE_PRAGMA.
16059
16060 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
16061
16062         * i386.md (extend?f?f2): Force the input into a register, not
16063         the output.
16064
16065 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
16066
16067         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
16068         regclass' sake.
16069         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
16070         alternative because setting up 64bit constant is usually costly,
16071         especially when reload is in progress or completed.
16072         (movdf_const_intreg_sp64): Likewise.
16073         (movdf_const_intreg split): Fix building up constants when
16074         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
16075
16076 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
16077
16078         * combine.c (if_then_else_cond): Use const_true_rtx instead of
16079         const1_rtx for return values in EQ/NE comparison against (const_int 0)
16080         case.
16081
16082         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
16083         (asm_file_start): Emit .am33 into assembly file when compiling for
16084         the AM33.
16085         (print_operand_address): Handle POST_INC addresses.
16086         (can_use_return_insn, initial_offset): Check AM33 registers too.
16087         (expand_prologue): Check & save AM33 registers too.
16088         (expand_epilogue): Similarly.
16089         (secondary_reload_class): Handle AM33 specific secondary reloads.
16090         (output_tst): Emit efficient code for the AM33 too.
16091         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
16092         (TARGET_SWITCHES): Add -mam33 switch.
16093         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
16094         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
16095         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
16096         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
16097         (enum reg_class, REG_CLASS_NAMES): Likewise.
16098         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
16099         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
16100         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
16101         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
16102         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
16103         (HAVE_POST_INCREMENT): Define.
16104         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
16105         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
16106         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
16107         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
16108         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
16109         (zero_extend to SI from QI/HI): Likewise.
16110         (sign_extend to SI from QI/HI): Likewise.
16111         (mulsidi3, umulsidi3): New patterns for the AM33.
16112         (tstsi with zero extension from QI/HI): Add AM33 variants.
16113         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
16114         (return_internal_regs, store_movm): Handle new AM33 registers.
16115         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
16116         (LIBGCC, INSTALL_LIBGCC): Likewise.
16117         * invoke.texi: Document new flags.
16118
16119 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16120
16121         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
16122         (addsi3_carry): Likewise.
16123         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
16124         (sbbsi3_carry): Likewise.
16125         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
16126         (mulhi3): Likewise.
16127         (test?i_1): Ensure that only one operand is memory.
16128         (conditional move patterns): likewise.
16129         (shift and rotate patterns): Rewrite to expander, add
16130         "binary_operator_ok" to the condition.
16131
16132         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
16133         * i386.h (procesor_costs): Add movzbl_load field.
16134         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
16135         non-Q registers, accept DImode registers anywhere.
16136         (Q_CLASS_P): New.
16137         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
16138         * i386.c (*_cost): Set value for movxbl_load field.
16139
16140         * (addsi): New add to lea splitter.
16141         (ashlsi): Likewise.
16142         (lea to add/shift peep2): New.
16143
16144 1999-12-01  Mark Salter <msalter@cygnus.com>
16145
16146         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
16147         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
16148         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
16149
16150 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16151
16152         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
16153         * i386.md (movsi_xor): New.
16154         (movsi_or): New.
16155         (movsi_1, movhi_1, movqi_1): Remove.
16156         (movsi_2): Rename to movsi_1.
16157         (movhi_2): Rename to movhi_1.
16158         (movqi_2): Rename to movqi_1.
16159         (movdi_1): Remove; remove splitter.
16160         (movdi_2): Rename to movdi_1.
16161         (divmodsi4 splitter): Do not emit clobbers for move patterns.
16162         (long move peep2): Do not create QI or HI mode mov0s
16163         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
16164
16165         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
16166         rewrite splitters.
16167
16168         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
16169         (abs?f2_if): Likewise.
16170
16171 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
16172
16173         * ggc.h (ggc_test_and_set_mark): New macro.
16174         (ggc_mark_rtx): Use ggc_test_and_set_mark.
16175         (ggc_mark_tree): Likewise.
16176         (ggc_mark_rtvec): Likewise.
16177         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
16178
16179 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
16180
16181         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
16182         containing types.
16183         (decl_scope_table): Just an array of trees now.
16184         (push_decl_scope): Simplify.
16185         (dwarf2out_init): Adjust.
16186         (local_scope_p): New fn.
16187         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
16188         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
16189         (gen_typedef_die): Likewise.
16190         (gen_lexical_block_die): Don't call push/pop_decl_scope.
16191         (gen_inlined_subroutine_die): Likewise.
16192         (gen_abstract_function): Set current_function_decl temporarily.
16193         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
16194         Handle block extern declarations.  Don't call push/pop_decl_scope.
16195         (gen_decl_die): Fix logic for block externs.
16196
16197 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16198
16199         * calls.c (special_function_p): Remove `realloc' and add `strdup'
16200         to the list of functions which have attribute malloc by default.
16201
16202 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16203
16204         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
16205         integer constant does not match the traditional type, limit the
16206         warnings to cases where the base of the type is ten.
16207
16208         * invoke.texi (-Wtraditional): Document it.
16209
16210 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16211
16212         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
16213         * rs6000.md: Only access a CONST_INT with INTVAL
16214
16215 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
16216
16217         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
16218         (compute_nearerout): Likewise.
16219         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
16220         size_t to unsigned long for formatting.
16221
16222 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
16223
16224         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
16225         Allow the user to override call-used/fixed state of %g2-5
16226         registers from the command line (with the exception of %g4 for
16227         embedded model).
16228         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
16229         there is a higher chance of having a leaf function.
16230         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
16231         for ARCH64 which has %ccr register.
16232         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
16233         patterns.
16234         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
16235         insn accept into delay slot any insn which does not use %[ol]
16236         registers.  Accept some LO_SUM and shift left by 1 for the normal
16237         restore case.
16238         (output_function_epilogue): Likewise.
16239         (epilogue_renumber): Added argument which inhibits any renumbering
16240         and just tests if the rtx does not use any %[ol] registers.
16241         (output_return): Reflect above change.
16242
16243 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
16244
16245         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
16246         aggregate passing for sizes <= 16 bytes.
16247
16248 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
16249
16250         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
16251         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
16252         * reload.c (find_dummy_reload): Likewise.
16253         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
16254         * reload1.c (reload_as_needed): Likewise.
16255         * stupid.c (stupid_find_reg): Likewise.
16256         * tm.texi (Obsolete Register Macros): Delete section.
16257         * gmicro.h: Remove all traces of the two macros.
16258         * i386.h: Likewise.
16259         * m88k.h: Likewise.
16260         * mips.h: Likewise.
16261
16262 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
16263
16264         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
16265         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
16266         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
16267         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
16268         units for the sparclite86x chip.
16269         (flush): Revert October 14th change; add SImode specifically.
16270         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
16271         * invoke.texi: Document it.
16272
16273 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
16274
16275         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
16276         psimode_truncation_operand.
16277
16278         * config/mn10200/mn10200.c (psimode_truncation_operand): New
16279         function.  Return true if the operand is either a MEM valid
16280         for a PSImode address or not a MEM at all.
16281
16282         * config/mn10200/mn10200.md (truncsipsi2): Use
16283         psimode_truncation_operand.
16284
16285 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16286
16287         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
16288         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
16289         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
16290         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
16291         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
16292         (flow_loop_level_compute, low_loops_level_compute): Likewise.
16293         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
16294         * basic-block.h: Protect from multiple inclusion.
16295         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
16296         (struct loops, struct loop): Define structures.
16297         * sbitmap.c (sbitmap_a_subset_b_p): New function.
16298         * sbitmap.h: Protect from multiple inclusion.
16299         (sbitmap_a_subset_b_p): Add prototype.
16300         * Makefile.in (LOOP_H): New macro.
16301         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
16302
16303 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
16304
16305         * cppinit.c (CAT): The argument list of this macro may not contain
16306         spaces !
16307
16308 1999-11-29  David S. Miller  <davem@redhat.com>
16309
16310         Move quantity tables and register equivalence chains into
16311         per-qty and per-register structure arrays respectively.
16312         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
16313         qty_const_insn, qty_comparison_code, qty_comparison_const,
16314         qty_comparison_qty): Delete, replace with...
16315         (qty_table): this structure table.
16316         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
16317         (reg_eqv_table): this structure table.
16318         (make_new_qty): Add argument MODE.  Caller updated.
16319         Update to use qty_table and reg_eqv_table.
16320         (make_regs_eqv, delete_reg_equiv, insert_regs,
16321         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
16322         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
16323         cse_process_notes, cse_main, cse_basic_block): Likewise.
16324
16325 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16326
16327         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
16328         operation if C is negative.
16329         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
16330         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
16331         law for some divisions if constant is negative and change other
16332         divisions to the opposite rounding.
16333
16334         * expr.c (store_constructor_field): If bit position is not multiple
16335         of alignment of TARGET's mode, use BLKmode.
16336
16337         * expr.c (expand_expr_unaligned): Add more code from full case
16338         that is needed when OP0 is in a register.
16339
16340 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16341
16342         * dwarfout.c (field_byte_offset): Size can be zero if there was
16343         an error.
16344
16345 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
16346
16347         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
16348         (associate_trees): Delete unused var TEM.
16349         (extract_muldiv): Delete unused var CANCEL_P.
16350
16351         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
16352         (target_isinf, target_isnan, target_negative): Add return types to
16353         function definitions.
16354
16355 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
16356
16357         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
16358         * fixinc/hackshell.tpl: ditto
16359         * fixinc/fixtests.c(double_slash_test): more C++ header testing
16360         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
16361
16362 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
16363
16364         * reload.c (push_reload): When looking for a register to put into
16365         reg_rtx, make sure all hard regs in a multi-reg register are in the
16366         right class and nonfixed.
16367
16368         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
16369         pending_read_insns, pending_write_insns, pending_read_mems,
16370         pending_write_mems, pending_list_length, last_pending_memory_flush,
16371         last_function_call, sched_before_next_call): Move static variables
16372         into a structure.
16373         (bb_ prefixed versions): Replace with single array bb_deps.
16374         (struct deps): New structure.
16375         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
16376         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
16377         argument of type "struct deps *"; use that instead of global
16378         variables.  All callers changed.
16379         (init_rgn_data_dependencies): Delete function.
16380         (init_rtx_vector): Delete function.
16381         (init_deps): New function.
16382
16383         (free_pending_lists): Simplify, we always use the bb_deps array even
16384         if only one basic block.
16385         (compute_block_backward_dependences): Likewise.
16386         (schedule_region): Likewise.
16387
16388         (propagate_deps): New function, broken out of
16389         compute_block_backward_dependences.
16390         (compute_block_backward_dependences): Use it.
16391
16392         * alpha.md: Delete useless patterns that tried to work around
16393         register elimination problems.
16394
16395         * unroll.c (loop_iterations): Don't abort if iteration variable
16396         was made by loop.
16397
16398         From Joern Rennecke:
16399         * reload1.c (reloads_conflict): Reverse test comparing operand
16400         numbers when testing for conflict between output/outaddr reloads.
16401
16402 1999-11-29  David S. Miller  <davem@redhat.com>
16403
16404         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
16405         arg.
16406         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
16407
16408 1999-11-28  Robert Lipe  <robertl@cygnus.com>
16409
16410         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
16411         table from .fini into .dtor.
16412
16413 1999-11-28  Anthony Green  <green@cygnus.com>
16414
16415         * tree.h (struct tree_decl): Add malloc_flag.
16416         (DECL_IS_MALLOC): Define.
16417         * c-common.c (attrs): Add A_MALLOC attribute.
16418         (init_attributes): Add this attribute to the table.
16419         (decl_attributes): Handle malloc attribute.
16420         * calls.c (special_function_p): Check for the malloc attribute.
16421         * extend.texi (Function Attributes): Document malloc attribute.
16422
16423 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
16424
16425         * pa.md (reload shift-add patterns): Remove.
16426
16427 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16428
16429         * reorg.c (dbr_schedule) Print more statistics. Corrected
16430         problem when printing info when 3 delay slots are filled.
16431
16432 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
16433
16434         * combine.c (setup_incoming_promotions): Pass an outgoing
16435         regno to FUNCTION_ARG_REGNO_P which it expects.
16436
16437 1999-11-28  Andreas Jaeger  <aj@suse.de>
16438
16439         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
16440
16441 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
16442
16443         * cccp.c (do_include): Avoid initialization of automatic variable.
16444
16445         * integrate.c (mark_stores): Function definition made void, to match
16446         previous declaration.
16447         * regclass.c (dump_regclass): Ditto.
16448         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
16449
16450 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16451
16452         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
16453         known to be multiple of divisor.
16454
16455         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
16456
16457         * combine.c (try_combine): Add code to try to merge a set of a
16458         two-word pseudo to a constant with a setting of one of those words
16459         to a constant.
16460
16461         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
16462         (split_tree): Completely rework to make more general.
16463         (make_range, fold): Call negate_expr.
16464         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
16465         (fold, associate): Call new split_tree and associate_trees.
16466         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
16467
16468 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
16469
16470         * loop.c (try_copy_prop): Avoid GNU C extension.
16471
16472 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
16473
16474         * except.c (init_eh_for_function): Still zero eh_return_context,
16475         eh_return_stack_adjust, and eh_return_handler.
16476
16477         * except.h (eh_status): Adjust documentation for x_protect_list.
16478         (begin_protect_partials): New function.
16479         * except.c (enqueue_eh_entry): Fix formatting.
16480         (get_first_handler): Add consistency check.
16481         (add_partial_entry): Adjust usage of protect_list.
16482         (emit_cleanup_handler): Save and restore ehqueue.
16483         (expand_start_all_catch): Add comment.
16484         (begin_protect_partials): New function.
16485         (end_protect_partials): Adjust usage of protect_list.
16486         (init_eh_for_function): Use xcalloc.
16487
16488 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16489
16490         * c-common.c (check_format_info): Don't call a variadic function
16491         with a non-literal format string.
16492
16493         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
16494
16495         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
16496         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
16497         Likewise.
16498
16499         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
16500         Likewise.
16501
16502         * collect2.c (collect_wait): Likewise.
16503
16504         * dbxout.c (dbxout_type): Likewise.
16505
16506         * gcc.c (do_spec_1): Likewise.
16507
16508         * genemit.c (gen_insn, gen_expand): Likewise.
16509
16510         * genrecog.c (write_switch, write_subroutine): Likewise.
16511
16512         * mips-tfile.c (catch_signal, botch): Likewise.
16513
16514         * print-rtl.c (print_rtx): Likewise.
16515
16516         * toplev.c (default_print_error_function, report_error_function,
16517         _fatal_insn): Likewise.
16518
16519 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
16520
16521         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
16522
16523 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16524
16525         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
16526         operations when needed.
16527         * i386.md (fop_?f_comm): New.
16528         (fop_?f_1): Do not accept commutative operands.
16529
16530 1999-11-25  Andreas Jaeger  <aj@suse.de>
16531
16532         * config/mips/mips.md (casesi_internal): Add missing brace.
16533
16534 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
16535
16536         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
16537         (splice_child_die): Handle moving a child DIE from the declaration
16538         DIE of a class to its specification.
16539         (gen_struct_or_union_type_die): Use 'complete' consistently.
16540         (gen_decl_die): Generate the virtual context DIE first.
16541         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
16542
16543 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
16544
16545         * config/mips/mips.md (call_value_multiple_interanal1): New.
16546
16547 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
16548
16549         * dwarf2out.c (free_AT, free_die): New fns.
16550         (remove_children): Call them.
16551         (output_line_info): Disable removal of duplicate notes.
16552
16553         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
16554         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
16555         means pretend the type isn't defined.
16556         Don't defer emitting types.
16557         (gen_type_die_for_member): New fn.
16558         (gen_decl_die): Call it.
16559         (splice_child_die): New fn.
16560         (gen_member_die): Call it rather than generate duplicate dies.
16561
16562         Defer emitting information for the abstract instance of an inline
16563         until we either inline it or emit an out-of-line copy.
16564         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
16565         from output_inline_function if DECL_ABSTRACT is also set.
16566         (block_ultimate_origin): Likewise.
16567         (gen_abstract_function): New fn.
16568         (gen_decl_die, gen_inlined_subroutine_die): Call it.
16569         (gen_subprogram_die):  An abstract instance is not a declaration
16570         just because it doesn't match current_function_decl.  Don't abort
16571         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
16572         has an abstract origin.
16573         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
16574         abstract instance here.
16575
16576 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
16577
16578         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
16579         where we need to reload fpul from a system register.
16580
16581 1999-11-24  Andreas Jaeger  <aj@suse.de>
16582
16583         * config/mips/linux.h (CPP_PREDEFINES): Added.
16584         (LINK_SPEC): Remove -Y since this is only needed on sparc.
16585
16586 1999-11-24  Andreas Jaeger  <aj@suse.de>
16587
16588         * config/mips/linux.h (TARGET_VERSION): Added.
16589         (HANDLE_SYSV_PRAGMA): Added.
16590         (DEFAULT_VTABLE_THUNKS): Added.
16591
16592 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16593
16594         * local-alloc.c (qty): New structure and static variable.
16595         (qty_phys_reg): Remove, all references changed to qty.
16596         (qty_n_refs): Likewise.
16597         (qty_min_class): Likewise.
16598         (qty_birth): Likewise.
16599         (qty_death): Likewise.
16600         (qty_size): Likewise.
16601         (qty_mode): Likewise.
16602         (qty_n_calls_crossed): Likewise.
16603         (qty_alternate_class): Likewise.
16604         (qty_changes_size): Likewise.
16605         (qty_first_reg): Likewise.
16606         (alloc_qty): Rename variable QTY to QTYNO.
16607         (finf_free_reg): Likewise.
16608         (local_alloc): Allocate qty, do not allocate the removed variables.
16609
16610 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
16611
16612         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
16613         when -membedded-pic is passed.
16614
16615         * config/mips/mips.md (casesi): Handle 64-bit case too.
16616         (casesi_internal_di): New insn.
16617
16618         * config/mips/mips.c (embedded_pic_offset): Always make the
16619         embedded-pic subtractions relative to the name of the current
16620         function by use of the magic string "..CURRENT_FUNCTION".
16621         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
16622
16623 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
16624
16625         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
16626         of (const_int 0), when what we really care about is
16627         whether it's a zero constant anyway.
16628         (div_trap_mips16): Likewise.
16629
16630 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
16631
16632         * loop.c (loop_optimize): Always find_loop_tree_blocks and
16633         unroll_block_trees when generating debuggable code.
16634
16635         * tree.h (unsave_expr_1): New function.
16636         (lang_unsave): New variable.
16637         (get_callee_fndecl): New function.
16638         * tree.c (unsave_expr_now_r): New function.
16639         (lang_unsave): Define.
16640         (unsave_expr_1): Likewise.
16641         (unsave_expr_now_r): Split out from unsave_expr_now.
16642         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
16643         call unsave_expr_now_r.
16644         (get_callee_fndecl): Define.
16645
16646         * Makefile.in (gencheck): Don't depend on lang_tree_files.
16647         (gencheck.o): Do depend on lang_tree_files.
16648
16649         * integrate.h (copy_decl_for_inlining): New declaration.
16650         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
16651         (copy_decl_for_inlining): New function.
16652         (integrate_parm_decls): Use it.
16653         (integrate_decl_tree): Likewise.
16654
16655 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
16656
16657         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
16658         the second two from the first.
16659         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
16660         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
16661         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
16662         ISA_HAS_FP4.
16663         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
16664         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
16665         ISA_HAS_FP4.
16666
16667 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
16668
16669         * pa.md (call_internal_symref, call_value_internal_symref): No mode
16670         needed on the address operand.
16671         * pa.c (call_operand_address): Check for the correct mode.
16672
16673 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
16674
16675         * loop.c: Include "basic-block.h".
16676         (try_copy_prop, replace_loop_reg): New functions.
16677         (load_mems): Detect registers that just hold copies of the hoisted
16678         mem, and call try_copy_prop to eliminate them.
16679         * Makefile.in (loop.o): Update dependencies.
16680
16681 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
16682
16683         * Makefile.in (gencheck.o): Depend on gencheck.h.
16684         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
16685         (insn-peep.o): Depend on except.h and function.h.
16686         (insn-attrtab.o): Depend on RECOG_H.
16687         (insn-output.o): Depend on toplev.h and flags.h.
16688         (gengenrtl.o): Depend on real.h.
16689         (gen-protos.o): Depend on cpplib.h and cpphash.h.
16690         Unify all dependencies to be on RECOG_H rather than recog.h.
16691
16692 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16693
16694         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
16695         * configure.in: Try building a bi-arch 32/64-bit compiler on
16696         sparc-*-solaris2.7 and higher.
16697         * configure: Rebuild.
16698
16699 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
16700
16701         * config/freebsd.h: New, FreeBSD architecture independent file.
16702         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
16703         independent pieces.
16704         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
16705         directly by i386/freebsd.h.
16706         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
16707         independent configuration file.
16708         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
16709         directly by i386/freebsd.h.
16710         * configure: Rebuilt.
16711
16712         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
16713         which is in the user's namespace.
16714         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
16715         `i386' which is not in our namespace.
16716
16717 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
16718
16719         * invoke.texi (ARM Options): Add in -mno-alignment-traps
16720
16721 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
16722
16723         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
16724         (add_dwarf_attr, add_child_die): Just push onto the front.
16725         (reverse_die_lists): New fn.
16726         (add_sibling_attributes): Use it.
16727         (push_decl_scope): Reorganize.
16728         (add_name_and_src_coords_attributes): Don't set file and line for
16729         an artificial decl.
16730         (gen_subprogram_die): An artificial function doesn't need to match
16731         file and line.
16732         (gen_compile_unit_die): Return the generated die.  Only add
16733         AT_comp_dir if the filename is relative.
16734         (remove_AT): Simplify loop.  Also free string values.
16735         (output_die): A DIE ref can't be null.
16736         (output_value_format, value_format): Take a dw_attr_ref.
16737         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
16738         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
16739         AT_addr, AT_lbl): New fns.
16740         (various): Use them.
16741         (various): Constify.
16742
16743 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16744
16745         * combine.c (combine_simplify_rtx): When handling a SUBREG,
16746         take SUBREG_WORD into account.
16747         (if_then_else_cond): Likewise.
16748
16749 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
16750
16751         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
16752         clause from BSD license, pursuant with
16753
16754           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
16755
16756 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
16757
16758         * loop.c (load_mems): Reformat slightly.
16759         * basic-block.h (regset_head): New typedef.
16760         (INIT_REG_SET): New macro.
16761
16762 1999-11-22  Bruce Korb  <autogen@linuxbox.com
16763
16764         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
16765         (mips-dec-bsd*): non-functional code
16766         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
16767
16768         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
16769         added three replacement fixes
16770         (no_double_slash): removed comments that are not (any longer) pertinent
16771         (bad_lval): this fix currently runs against many files.
16772         The comment seems to indicate that we should select for files
16773         containing 'pragma extern_prefix'.
16774
16775         * fixinc/fixinc.x86-linux-gnu: deleted
16776         * fixinc/inclhack.sh:  regen
16777         * fixinc/fixincl.x:  regen
16778         * fixinc/fixincl.sh:  regen
16779
16780 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
16781
16782         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
16783         its code is INSN and it has no notes.
16784
16785 1999-11-22  Andrew Haley  <aph@cygnus.com>
16786
16787         * varasm.c (function_defined): Remove.
16788         (make_function_rtl): Don't set function_defined.
16789         (make_decl_rtl): Remove global register warning.
16790         * regclass.c (no_global_reg_vars): New variable.
16791         (globalize_reg): Warn if function has already been defined.
16792         (regclass_init): Set no_global_reg_vars.
16793
16794 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16795
16796         * regclass.c (reg_pref): New structure and static variable
16797         (prefclass): Delete.
16798         (altclass): Delete.
16799         (all uses of prefclass and altclass): Use reg_pref instead.
16800
16801 1999-11-21  Nick Clifton  <nickc@cygnus.com>
16802
16803         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
16804         -malignment-traps.
16805         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
16806         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
16807         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
16808
16809 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
16810
16811         * varasm.c (output_constructor): Solve problem with long long
16812         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
16813
16814 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16815
16816         * global.c (allocno): New structure and static variable.
16817         (allocno_reg): Remove, all references replaced by allocno.
16818         (allocno_size): Likewise.
16819         (hard_reg_conflicts): Likewise.
16820         (hard_reg_preferences): Likewise.
16821         (hard_reg_copy_preferences): Likewise.
16822         (hard_reg_full_preferences): Likewise.
16823         (regs_someone_prefers): Likewise.
16824         (allocno_calls_crossed): Likewise.
16825         (allocno_n_refs): Likewise.
16826         (allocno_live_length): Likewise.
16827         (find_reg): Rename ALLOCNO to NUM.
16828
16829         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
16830         references updated.
16831         (may_move_out_cost): New variable.
16832         (init_reg_sets_1): Initialize may_move_out_cost.
16833         (record_reg_classes): Use may_move_out_cost.
16834
16835         * regclass.c (dump_regclass): New function.
16836         (regclass): New parameter DUMP, call DUMP_REGCLASS.
16837         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
16838         pass rtl_dump_file to regclass.
16839         * rtl.h (regclass): Update prototype.
16840
16841 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16842
16843         * i386.md (neg, not and abs patterns): Revmap to use
16844         ix86_expand_unary_operator and ix86_unary_operator_ok.
16845         (add?f and sub?f expanders): Force operand 1 to register.
16846         * i386.c (ix86_expand_unary_operator): Rewrite.
16847         (ix86_unary_operator_ok): Ensure that memory operands
16848         match real opcode.
16849         (ix86_binary_operator_ok): Do not allow operand 1 to
16850         come into memory and operand 0 not.
16851         (ix86_expand_binary_operator): Ensure that
16852         src1 is not non-matching memory.
16853
16854         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
16855         to support integer registers and memory.
16856         (abss?2_integer): Likewise.
16857
16858         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
16859         (REG_CLASS_NAMES): Likewise.
16860         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
16861         and GENERAL_REGS.
16862         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
16863         (movsf): Likewise; unify 4th and 5th alternative.
16864         (pushdf): Likewise.
16865         (movdf_1): Likewise; rename to movdf_integer.
16866         (pushxf): Likewise; rename to pushxf_integer; fix output template;
16867         remove redundant splitter.
16868         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
16869         (movdf_nointeger): New.
16870         (movxf_nointeger): New.
16871         (pushxf_nointeger): New.
16872
16873         * i386.md (extend?f?f): Split to expander and pattern, refuse two
16874         memory operands in patterns.
16875         (fop*): Refuse two memory operands.
16876
16877         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
16878         on !TARGET_USE_CLTD CPUs.
16879
16880 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
16881
16882         * extend.texi: Document C++ restricted pointers and references.
16883
16884 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
16885
16886         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
16887         (invalidate_skipped_set): Call it unconditionally.
16888         (cse_set_around_loop): Likewise.
16889
16890 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
16891
16892         * rtl.texi (mem): Add documentation for alias-set argument
16893         to RTX `mem'.
16894
16895 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
16896
16897         * i386.h (struct_processor_costs): New fields int_load, int_store,
16898         fp_move, fp_load and fp_store
16899         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
16900         fp->int moves
16901         (MEMORY_MOVE_COST): New macro.
16902         * i386.c (386_cost): Define new fields.
16903         (i486_cost): Likewise.
16904         (pentium_cost): Likewise.
16905         (pentiumpro_cost): Likewise.
16906         (k6_cost): Likewise.
16907
16908 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
16909                           Geoffrey Keating  <geoffk@cygnus.com>
16910
16911         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
16912
16913         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
16914         MASK_ALIGN_INT.
16915
16916         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
16917         (TARGET_STRICT_ALIGNMENT): New macro.
16918         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
16919         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
16920         * invoke.texi (M680x0 Options): Document -mstrict-align.
16921
16922 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
16923                           Richard Henderson  <rth@cygnus.com>
16924
16925         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
16926         (ix86_split_long_move): Declare.
16927         * i386.c (split_xf, ix86_split_movdi): Remove.
16928         (ix86_split_to_parts, ix86_split_long_move): New.
16929         * i386.md (dimode move splitters): Use ix86_split_long_move.
16930         (dfmode move splitters): Likewise.
16931         (xfmode move splitters): Likewise.
16932         (movsf_1): Allow F->r.
16933         (movdf_1, movxf_1): Allow F->ro.
16934
16935 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
16936
16937         * except.h (struct eh_entry): Add goto_entry_p.
16938         (eh_region_from_symbol): Remove prototype.
16939         * except.c (find_func_region_from_symbol): New function.
16940         (emit_cleanup_handler): Likewise.
16941         (eh_region_from_symbol): Make it static.
16942         (add_new_handler): Verify the argument.
16943         (find_func_region): Update comment.
16944         (expand_eh_region_end): Expand handlers here, rater than waiting
16945         until expand_leftover_cleanups or start_all_catch.
16946         (expand_leftover_cleanups): Don't expand here.
16947         (expand_start_all_catch): Or here.
16948         (expand_rethrow): Check the return value from find_func_region.
16949         * function.c (expand_function_end): Emit the catch_clauses.
16950
16951 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
16952
16953         * integrate.c (expand_inline_function): Add necessary check for NULL.
16954
16955 1999-11-18  Nick Clifton  <nickc@cygnus.com>
16956
16957         * toplev.c (main): Correctly detect an unrecognised option.
16958
16959         * cppinit.c (cpp_handle_option): Do not claim to have consumed
16960         a -f option if it has not been recognised.
16961
16962 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
16963
16964         * basic-block.h (update_life_extent): Remove trailing comma on
16965         enumeration type list.
16966
16967 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16968
16969         * varasm.c (output_constructor) Solved problem with long long
16970         bitfields. Corrected calculating this_time and shift. Also
16971         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
16972
16973 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
16974
16975         * flow.c (split_edge): Take looping structure into account when
16976         determining where to put the new block note.
16977
16978 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
16979
16980         * Makefile.in (ggc-none.o): Provide host specific version if
16981         needed.
16982
16983 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
16984
16985         * cse.c (delete_trivially_dead_insns): Identify no-op insns
16986         containing subregs too.
16987
16988 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
16989
16990         * invoke.texi: Add documentation for -muninit-const-in-rodata.
16991         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
16992         (TARGET_UNINIT_CONST_IN_RODATA): Define.
16993         (text_section): Add switches -munint-const-in-rodata and
16994         -mno-uninit-const-in-rodata.
16995         (ASM_OUTPUT_COMMON): Remove.
16996         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
16997         const objects should be placed in read-only data. Otherwise declare
16998         them in common.
16999
17000 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
17001
17002         * jump.c (jump_optimize_1): Revert last change.
17003
17004 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
17005
17006         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
17007         test if optimizing for size.
17008
17009 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
17010
17011         * Makefile.in (toplev.o): Depend on except.h.
17012         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
17013
17014 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
17015
17016         * i386.md (divmodsi4): Rewrite to expander.
17017         (*divmodsi4_nocltd): New.
17018         (*divmodsi4_cltd): New.
17019         (divmodsi4 splitter): Handle the case when input comes in edx.
17020         (udivmodhi4): Do not use constraints in exander.
17021         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
17022
17023 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
17024
17025         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
17026         for the common case.
17027
17028 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
17029
17030         * explow.c (hard_function_value): Add outgoing argument.
17031         * expr.h (hard_function_value): Declare it.
17032         * calls.c (expand_call, emit_library_call_value): Update callers.
17033         * function.c (aggregate_value_p): Ditto.
17034         (diddle_return_value): Must look at the outgoing registers
17035         on archs with register windows.
17036
17037 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
17038
17039         * alpha.c (alpha_build_va_list): Use make_lang_type and
17040         initialize TYPE_NAME for the va_list record.
17041
17042         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
17043
17044         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
17045         for printing.
17046         * ggc.h (struct ggc_statistics): Rearrange elements for better
17047         packing on 64-bit hosts.
17048         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
17049         (compute_nearerout): Likewise.
17050
17051 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
17052
17053         * config/rs6000/rs6000.c (first_reg_to_save): Save
17054         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
17055
17056 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
17057
17058         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
17059         notion of nesting to find the DIE for a type or function.
17060         DIEs can go in limbo even if we got a context_die.
17061         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
17062         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
17063         for local type.
17064         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
17065         (gen_type_die): Writing out the context doesn't cause member class
17066         template instantiations to be written out as well.
17067
17068 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
17069
17070         * rs6000.h (ASM_OUTPUT_DEF): New.
17071         Based on proposed addition from David Edelsohn.
17072
17073 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
17074             Bruce Korb  <autogen@linuxbox.com>
17075
17076         * fixinc/inclhack.def
17077         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
17078         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
17079                 in net/inet.h.
17080         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
17081         (svr4_endian): enabled with SVR5
17082         (svr4_mkdev): simplified syntax and enabled with SVR5
17083
17084 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
17085
17086         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
17087         * configure: Rebuilt.
17088         * config/t-freebsd-thread: New file.
17089
17090 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
17091
17092         * i386.c (ix86_decompose_address): Verify the base is a REG
17093         before trying to examine its register number.
17094
17095         * basic-block.h: Remove all #defines and prototypes related to
17096         integer lists.
17097         (free_bb_mem, compute_preds_succs): Remove prototype.
17098         * rtl.h (free_bb_mem): Remove prototype.
17099         * flow.c (alloc_int_list_node); Remove function.
17100         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
17101         (compute_preds_succs, free_bb_mem): Likewise.
17102         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
17103         * toplev.c (rest_of_compilation): Likewise.
17104         * haifa-sched.c (build_control_flow): Use flow generated edge
17105         list to build the haifa specific edge list.
17106         (find_rgns): Use new CFG data structures instead of pred/succ lists.
17107         (schedule_insns): Do not build pred/succ lists anymore.  Instead
17108         build the edge table.
17109
17110         * basic-block.h (dump_bb_data): Remove declaration.
17111         * flow.c (dump_bb_data): Remove function.
17112         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
17113         (sbitmap_union_of_predsucc): Likewise.
17114
17115         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
17116         argument.  All callers changed.
17117         (delete_null_pointer_checks_1): No longer need to compute the
17118         pred/succ lists.
17119
17120         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
17121         All callers changed.
17122         (pre_expr_reaches_here_p_work): Likewise.
17123         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
17124         * lcm.c (compute_laterin): Fix initialization of LATER.
17125         (compute_nearerout): Similarly for NEARER.
17126
17127 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17128
17129         * cse.c (set_nonvarying_address_components): Delete unused function.
17130         (refers_to_p): Likewise.
17131
17132 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
17133
17134         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
17135         needed.
17136
17137 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17138
17139         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
17140         definition in do while (0).
17141
17142 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
17143
17144         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
17145
17146 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
17147
17148         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
17149
17150 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
17151
17152         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
17153         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
17154         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
17155         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
17156
17157         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
17158         saved on the stack.  Output more accurate stack frame statistics
17159         into assembler file.
17160
17161 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
17162
17163         * genextract.c (record_insn_name): New function.
17164         (get_insn_name): No longer a stub.
17165         (main): Call record_insn_name for each insn.  After each label
17166         written, print the insn name in a comment.
17167
17168 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17169
17170         * output.h (const_section, init_section, fini_section): Add
17171         prototypes.
17172
17173         * alpha/elf.h (const_section): Delete declaration.
17174
17175         * svr4.h (const_section): Likewise.
17176
17177 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
17178
17179         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
17180         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
17181         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
17182         expressions.
17183         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
17184         variable-sized array bounds.
17185
17186 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
17187
17188         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
17189         ASM_OUTPUT_LABEL.
17190
17191 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17192
17193         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
17194         addresses the same way GO_IF_LEGITIMATE_INDEX does.
17195
17196 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17197
17198         * cse.c (hash_arg_in_struct): Delete.
17199         (struct table_elt): Delete elt in_struct.
17200         (struct set): Delete elt src_in_struct.
17201         (merge_equiv_classes): Don't set either hash_arg_in_struct or
17202         the corresponding in_struct elts.
17203         (canon_hash): Likewise.
17204         (safe_hash): Likewise.
17205         (find_best_addr): Likewise.
17206         (record_jump_cond): Likewise.
17207         (cse_insn): Likewise.
17208
17209 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
17210
17211         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
17212
17213         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
17214         unsigned types.
17215
17216 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
17217
17218         * function.c (diddle_return_value): Put back check that the DECL_RTL
17219         for the function is a register.
17220
17221         * function.c (diddle_return_value): Use hard_function_value to
17222         get an rtx suitable for use in the USE/CLOBBER insn.
17223
17224         * global.c (global_conflicts): Update comments.
17225         (record_conflicts): No need to record conflicts between pseudos here.
17226
17227 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
17228
17229         * fixinc/fixincl.c: Added verbose levels for status messages
17230
17231 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17232
17233         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
17234         operand as argument to expand_and or expand_binop.
17235
17236 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
17237
17238         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
17239         gcc_add_string_root.
17240
17241 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
17242
17243         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
17244
17245 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
17246
17247         * flow.c (compute_flow_dominators): Initially put all blocks on
17248         the worklist.
17249         * lcm.c (compute_antinout_edge, compute_available): Similarly.
17250         * gcse.c (compute_cprop_avinout): Remove.
17251         (compute_cprop_data): Use compute_available.
17252         (delete_null_pointer_checks_1): Use compute_available.
17253
17254         * basic-block.h (compute_available): Returns a void now.
17255         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
17256         to return a value anymore.
17257         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
17258         worklists.  Fix boundary cases. Compute maximal solutions.
17259         (compute_laterin, compute_nearerout): Similarly.
17260
17261         * dwarf2out.c (add_AT_location_description): Allow
17262         (mem (plus (pseudo) (...)) too.
17263
17264 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
17265
17266         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
17267
17268 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
17269                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17270
17271         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
17272
17273         * gansidecl.h: Likewise.
17274
17275         * rtl.c: Likewise.
17276
17277         * rtl.h: Likewise.
17278
17279         * toplev.h: Likewise.
17280
17281         * tree.c: Likewise.
17282
17283         * tree.h: Likewise.
17284
17285         * varray.c: Likewise.
17286
17287         * varray.h: Likewise.
17288
17289 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
17290
17291         * gcov.c (struct arcdata): Add hits and total, remove prob.
17292         (output_branch_counts): New.
17293         (process_args): Set output_branch_counts if -c.
17294         (calculate_branch_probs): Store hits and total instead of
17295         percentage.
17296         (output_data): Emit counts if output_branch_counts is true.
17297         * gcov.texi (Invoking Gcov): Document -c switch..
17298
17299 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
17300
17301         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
17302         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
17303
17304 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
17305
17306         * invoke.texi (C Dialect Options): Add missing builtins from
17307         c-common.c to list.
17308         * extend.texi (Other Builtins): Copy to this list.
17309
17310 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17311
17312         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
17313         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
17314         redundant bitmap.h.
17315
17316 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
17317
17318         * flow.c (compute_flow_dominators): No longer treat basic block 0
17319         or (n_basic_blocks - 1) specially.  Clear the AUX field before
17320         starting computation of doms/pdoms.  Fix initial state for pdoms.
17321
17322 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17323
17324         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
17325         match rtl.o's: added ggc.h and toplev.h
17326         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
17327         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
17328         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
17329
17330 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
17331
17332         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
17333         from HAVE_DOS_BASED_FILESYSTEM.
17334         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
17335         HAVE_DOS_BASED_FILESYSTEM.
17336         (main): Likewise.
17337         (split_directories): Only special-case DOS file names if
17338         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
17339         instead of explicit tests.  Conditionalize on !VMS.
17340         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
17341         tests.  Conditionalize on !VMS.
17342         (process_command): Only use make_relative_prefix if !VMS.
17343         (free_split_directories): Conditionalize on !VMS.
17344         (DIR_UP): Conditionalize on !VMS.
17345
17346 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
17347
17348         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
17349
17350 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
17351
17352         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
17353         case.
17354
17355 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
17356
17357         * invoke.texi (Environment Variables): Document relative path
17358         lookup.
17359         * gcc.c (DIR_UP): If not defined, define as "..".
17360         (standard_bindir_prefix): New static, holds target location to
17361         install binaries.
17362         (split_directories): New function to split a filename into
17363         component directories.
17364         (free_split_directories): New function, release memory allocated
17365         by split_directories.
17366         (make_relative_prefix): New function, make a relative pathname if
17367         the compiler is not in the expected location.
17368         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
17369         can figure out an appropriate prefix from argv[0].
17370         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
17371         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
17372         STANDARD_BINDIR_PREFIX.
17373
17374 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17375
17376         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
17377         in c4x.c.
17378         * config/c4x/c4x.h: Moved prototypes to c4x.h.
17379         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
17380         c4x_secondary_memory_needed) Delete.
17381         (fp_zero_operand): Add mode argument.
17382
17383 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
17384
17385         * reload1.c (reload_reg_free_for_value_p): Don't use a register
17386         that is in reload_reg_used.
17387
17388 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
17389
17390         * config/arm/arm-protos.h: New file: Prototypes for functions
17391         defined in arm.c and pe.c.
17392         * config/arm/arm.h: Fix compile time warnings.
17393         * config/arm/arm.c: Fix compile time warnings.
17394         * config/arm/pe.h: Fix compile time warnings.
17395         * config/arm/aout.h: Fix compile time warnings.
17396
17397 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
17398
17399         * config/m32r/m32r-protos.h: New file: Prototypes for functions
17400         defined in m32r.c
17401
17402         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
17403         Add support for subtargets.
17404         Add prototypes for new predicates.
17405         Add scheduling macros.
17406
17407         * config/m32r/m32r.c: Fix compile time warnings.
17408         (int8_operand): New predicate function.
17409         (reg_or_cmp_int16_operand): New predicate function.
17410         (extend_operand): New predicate function.
17411         (m32r_adjust_code): New scheduling function.
17412         (m32r_adjust_priorty): New scheduling function.
17413         (m32r_sched_init): New scheduling function.
17414         (m32r_sched_reorder): New scheduling function.
17415         (m32r_sched_variable_issue): New scheduling function.
17416         (direct_return): New codegen function.
17417         (m32r_not_same_reg): New rtl testsing function.
17418
17419         * config/m32r/m32r.md: Fix compile time warnings.
17420         Add support for pre decrement and post increment memory
17421         references.
17422         Add S<cc> patterns.
17423         Add fabs patterns.
17424
17425 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17426
17427         * global.c (EXECUTE_IF_CONFLICT): Don't define.
17428         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
17429         (find_reg): Likewise.
17430
17431 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
17432
17433         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
17434         to avoid assembler errors.
17435
17436 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
17437
17438         * config/v850/v850-protos.h: New file: Prototypes for functions
17439         defined in v850.c
17440         * config/v850/v850.h: Move prototypes to v850-protos.h
17441         * config/v850/v850.c: Move prototypes to v850-protos.h
17442         * config/v850/v850.md: Fix compile time warnings.
17443
17444         * config/fr30/fr30-protos.h: New file: Prototypes for functions
17445         defined in fr30.c
17446         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
17447         * config/fr30/fr30.c: Fix compile time warnings.
17448         * config/fr30/fr30.md: Fix compile time warnings.
17449
17450 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
17451
17452         * tree.h (get_containing_scope): Declare it.
17453         * tree.c (get_containing_scope): New fucntion.
17454         (decl_function_context): Use it.
17455         * toplev.c (rest_of_compilation): Use get_containing_scope.
17456
17457 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17458
17459         * Makefile.in (rtl.o): Depend on toplev.h.
17460
17461 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
17462
17463         * cse.c (delete_trivially_dead_insns): Replace alloca with
17464         xmalloc/xcalloc.
17465         * except.c (update_rethrow_references): Likewise.
17466         (init_eh_nesting_info): Likewise.
17467         * function.c (identify_blocks): Likewise.
17468         * gcse.c (dump_hash_table): Likewise.
17469         * graph.c (print_rtl_graph_with_bb): Likewise.
17470         * loop.c (combine_movables): Likewise.
17471         (move_movables): Likewise.
17472         (count_loop_regs_set): Likewise.
17473         (strength_reduce): Likewise.
17474         * profile.c (compute_branch_probabilities): New function, split
17475         out from ...
17476         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
17477         * regclass.c (regclass): Likewise.
17478         * regmove.c (regmove_optimize): Likewise.
17479         * toplev.c (compile_file): Likewise.
17480         (main): Don't mess with the stack rlimit.
17481
17482 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
17483
17484         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
17485         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
17486
17487 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
17488
17489         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
17490
17491 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
17492
17493         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
17494         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
17495         macro expansion.
17496
17497 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
17498
17499         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
17500
17501 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
17502
17503         * gcse.c (post_dominators): Kill.
17504         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
17505         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
17506         pass in a pdom array since we do not need pdoms.
17507         * haifa-sched.c (schedule_insns): Similarly.
17508         * flow.c (compute_dominators): Remove dead function.
17509         (compute_flow_dominators): Do not compute doms or pdoms if the
17510         caller does not request them.  Split up loop to build doms and
17511         pdoms.  Use a worklist to compute doms and pdoms.
17512         * basic-block.h (compute_dominators): Remove prototype.
17513
17514 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
17515
17516         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
17517         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
17518         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
17519         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
17520         (cant_move, fed_by_spec_load, is_load_insn): Remove.
17521         (schedule_region): Remove unused variable.
17522         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
17523
17524 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
17525
17526         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
17527         (update_equiv_regs): Likewise.
17528         (block_alloc): Likewise.
17529         * reg-stack.c (reg_to_stack): Likewise.
17530         (convert_regs_2): Likewise.
17531         * reload1.c (reload_as_needed): Likewise.
17532
17533 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
17534
17535         * Makefile.in (dbxout.o): Depend on ggc.h.
17536         (dwarf2out.o): Likewise.
17537         (xcoffout.o): Likewise.
17538         * dbxout.c: Include ggc.h.
17539         (dbxout_init): Register lastfile as a root.
17540         * dwarf2out.c: Include ggc.h.
17541         (dwarf2out_line): Register lastfile as a root.
17542         * xcoffout.c: Include ggc.h.
17543         (xcoffout_source_line): Register xcoff_lastfile as a root.
17544
17545 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
17546
17547         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
17548
17549 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
17550
17551         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
17552         defined.
17553         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
17554
17555 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17556
17557         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
17558         (EXECUTE_IF_CONFLICT): Likewise.
17559         (ALLOCNO_LIVE_P): Avoid signed division.
17560         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
17561         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
17562         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
17563
17564 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
17565
17566         * haifa-sched.c (schedule_block): Don't crash if there's no
17567         next insn for an interblock movement.
17568         (add_branch_dependences): Don't allow clobber insns to move either.
17569
17570 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
17571
17572         * i386.c (split_xf): New.
17573         * i386-protos.h: Declare it.
17574         * i386.md (movxf_1): Add general regs alternatives.
17575         (movxf_1+1): New splitter for same.
17576
17577 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
17578
17579         * function.c (purge_addressof_1): Add missing return values.
17580
17581 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
17582
17583         * function.c (is_addressof): New function.  Returns true if
17584         the given piece of RTL is an ADDRESSOF.
17585         (purge_addressof_1): Make boolean.  Return false if the
17586         ADDRESSOFs could not be purged.
17587         (purge_addressof): If ADDRESSOFs could not be purged from the
17588         notes attached to an insn, remove the offending note(s),
17589         unless they are attached to a libcall.
17590
17591 1999-11-05  Andreas Jaeger  <aj@suse.de>
17592
17593         * genoutput.c (null_operand =): Initialize all fields.
17594
17595         * errors.h: Add extern to prototypes.
17596
17597 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
17598
17599         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
17600         * configure: Rebuilt.
17601
17602 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17603
17604         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
17605         (mirror_conflicts): New function.
17606         (global_alloc): Call it.
17607         (expand_preferences): Remove redundant CONFLICTP test.
17608         (find_reg, dump_conflicts): Likewise.
17609         (prune_preferences): Process conflicts one word at a time.
17610
17611 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
17612
17613         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
17614         instead of an explicit loop.
17615
17616 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
17617
17618         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
17619         if REG_RETVAL check succeeds, then put classp in src_elt.
17620
17621 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
17622
17623         * function.c (pad_to_arg_alignment): Only update argument_pad
17624         if the argument's alignment is greater than STACK_BOUNDARY.
17625
17626 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
17627
17628         * bitmap.h (BITMAP_XFREE): New.
17629         * flow.c (life_analysis): Use it.
17630         (life_analysis_1): Free blocks.
17631
17632         * combine.c (undo_commit): New.
17633         (try_combine): Use it.  Don't zap undobuf.undos.
17634         (combine_instructions): Don't zap undobuf.undos; free the
17635         undobuf.frees list.
17636
17637         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
17638
17639         * stmt.c (cost_table_): New.
17640         (estimate_case_costs): Use it instead of xmalloc.
17641
17642         * toplev.c (compile_file): Reuse dumpname memory instead
17643         of strdup'ing it.
17644
17645 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
17646
17647         * reg-stack.c (convert_regs_1): Initialize target_stack->top
17648         after verifying an EH edge.
17649
17650         * haifa-sched.c (init_rgn_data_dependences): Correctly
17651         size bb_pending_lists_length when zeroing.
17652
17653 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
17654
17655         * function.c (diddle_return_value): New.
17656         (expand_function_end): Use it.
17657         * stmt.c (expand_null_return): Likewise.
17658         (expand_value_return): Likewise.
17659
17660         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
17661
17662         * reload1.c (reload): Don't remove return value clobbers.
17663
17664 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
17665
17666         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
17667
17668 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
17669
17670         * cse.c (cse_main): Use xmalloc, not alloca.
17671         (cse_basic_block): Likewise.
17672         * local-alloc.c (local_alloc): Likewise.
17673
17674 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
17675                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17676
17677         * rtl.c: Include toplev.h.
17678         (fatal): Remove declaration.
17679
17680 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
17681
17682         * haifa-sched.c (schedule_block): Fix thinko.
17683
17684 1999-11-03  James McKelvey <mckelvey@fafnir.com>
17685
17686         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
17687         S_IR* defined values
17688
17689 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
17690
17691         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
17692         call `malloc' instead.
17693
17694 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
17695
17696         * flags.h (flag_renumber_insns): Declare.
17697         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
17698         renumbering table.
17699         * rtl.h (renumber_insns): Change prototype.
17700         * toplev.c (flag_renumber_insns): Define.
17701         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
17702
17703 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
17704
17705         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
17706         and fpsqrtd.  Use them and create fdiv function unit to more
17707         accurately represent fpu sqrt pipeline semantics on UltraSparc.
17708         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
17709
17710 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
17711
17712         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
17713         3 on UltraSparc.
17714         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
17715         insn into ready list, do not use just a raw swap.
17716
17717 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
17718
17719         * rtl.h (renumber_insns): New function.
17720         (remove_unnecessary_notes): Likewise.
17721         * emit-rtl.c (renumber_insns): Define.
17722         (remove_unncessary_notes): Likewise.
17723         * toplev.c (rest_of_compilation): Remove dead code.
17724         Use renumber_insns and remove_unncessary_notes.
17725
17726         * gcse.c (struct null_pointer_info): New type.
17727         (get_bitmap_width): New function.
17728         (current_block): Remove.
17729         (nonnull_local): Likewise.
17730         (nonnull_killed): Likewise.
17731         (invalidate_nonnull_info): Take a null_pointer_info as input.
17732         (delete_null_pointer_checks_1): New function.
17733         (delete_null_pointer_checks): Use it.
17734
17735         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
17736         (split_edges): Likewise.
17737         (schedule_block): Likewise.
17738         (compute_block_backward_dependencies): Likewise.
17739         (schedule_region): Likewise.
17740         (schedule_insns): Likewise.
17741
17742 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
17743
17744         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
17745         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
17746         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
17747         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
17748         * jump.c (delete_unreferenced_labels): Don't delete if
17749         LABEL_ALTERNATE_NAME is set.
17750         * print-rtl.c (print_rtx): Dump alternate name.
17751         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
17752         * rtl.h (LABEL_ALTERNATE_NAME): Define.
17753         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
17754         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
17755
17756 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17757
17758         * fix-header.c (recognized_extern, recognized_function): Constify
17759         a char*.
17760
17761         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
17762         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
17763         (compute_available): Remove unused variable `last'.
17764         (compute_nearerout): Remove unused variable `temp_bitmap'.
17765         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
17766         Remove unused variable `x'.
17767
17768         * scan.h (recognized_function, recognized_extern): Constify a
17769         char*.
17770
17771         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
17772
17773 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17774
17775         * varasm.c (decode_rtx_const): Use XSTR to access the string
17776         of a SYMBOL_REF.
17777
17778 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
17779
17780         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
17781
17782 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17783
17784         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
17785
17786 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
17787
17788         * pa.c (ireg_operand): New function.
17789         * pa.h (PREDICATE_CODES): Handle ireg_operand.
17790         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
17791         Fix out of date comment.
17792
17793         * pa.md (negdi2): Turn into expander + anonymous pattern.
17794
17795         * reload.c (find_reloads): Fix typos in recent change.
17796
17797         * dwarf2out.c: Do not include ctype.h.
17798
17799 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17800
17801         * regclass.c (record_reg_classes): Always use may_move_cost when
17802         seeing how operand fits with various register classes.
17803
17804 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
17805
17806         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
17807         * toplev.c: Revert Nov 1 13:22 change.
17808
17809 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
17810
17811         * config/pa/pa.md (height reduction patterns): Add checks for
17812         overlapping operands to avoid semantic-destroying splits for
17813         height reduction patterns.
17814
17815 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17816
17817         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
17818         have been an hyphen, fixed.
17819         * configure: Rebuilt.
17820
17821 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
17822
17823         * config/arm/tpe.h: Add prototypes for exported functions.
17824         * config/arm/pe.c: Fix compile time warnings.
17825         * config/arm/semi.h: Fix compile time warnings.
17826         * config/arm/arm.c: Fix compile time warnings.
17827         * config/arm/arm.h: Fix compile time warnings.
17828         * config/arm/arm.md: Fix compile time warnings.
17829         * config/arm/thumb.c: Fix compile time warnings.
17830         * config/arm/thumb.h: Fix compile time warnings.
17831         * config/arm/thumb.md: Fix compile time warnings.
17832
17833 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
17834
17835         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
17836         detection code
17837
17838         * unroll.c (unroll_loop): Remove LOOP notes when loop is
17839         completely unrolled.
17840
17841 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17842
17843         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
17844
17845 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
17846
17847         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
17848         * rtl.h (rtx_equal_p): Move prototype.
17849         * rtl.c (rtx_equal_function_value_matters): Move from
17850         rtlanal.c
17851         (rtx_equal_p): Likewise.
17852         * rtlanal.c (rtx_equal_function_value_matters): Delete.
17853         (rtx_equal_p): Likewise.
17854
17855 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
17856
17857         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
17858         ! HAS_INIT_SECTION.
17859
17860 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
17861
17862         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
17863
17864         * pa.h (ADDR_VEC_ALIGN): Define.
17865
17866         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
17867         notes when presented with "if (foo) break; end_of_loop" and
17868         the break sequence gets moved out of the loop.
17869
17870         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
17871         Remove explicit zero initializations of entries within MAP.
17872
17873 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
17874
17875         * reg-stack.c (convert_regs_1): Handle EH edges specially.
17876
17877 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
17878
17879         * bitmap.h (BITMAP_XMALLOC): New macro.
17880         * flow.c (CLEAN_ALLOCA): Remove.
17881         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
17882         (life_analysis): Likewise.
17883         (update_life_info): Don't use CLEAN_ALLOCA.
17884         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
17885         (calculate_global_regs_live): Likewise.
17886         (print_rtl_with_bb): Likewise.
17887         (verify_flow_info): Likewise.
17888         * global.c (global_alloc): Likewise.
17889         (global_conflicts): Likewise.
17890         * integrate.c (save_for_inline_nocopy): Likewise.
17891         (expand_inline_function): Likewise.
17892         * jump.c (jump_optimize_1): Likewise.
17893         (duplicate_loop_exit_test): Likewise.
17894         (thread_jumps): Likewise.
17895         * loop.c (loop_optimize): Likewise.
17896         (combine_givs): Likewise.
17897         (recombine_givs): Likewise.
17898         * reorg.c (dbr_schedule): Likewise.
17899         * unroll.c (unroll_loop): Likewise.
17900
17901         * combine.c (combine_instructions): Use xmalloc instead of alloca.
17902
17903 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
17904
17905         * toplev.c (rest_of_compilation): Don't optimize the CFG
17906         when rebuilding, just before dbr.
17907
17908 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17909
17910         * output.h (assemble_end_function, assemble_destructor,
17911         assemble_constructor, assemble_gc_entry, assemble_global,
17912         assemble_label, output_constant_pool) Constify a char*.
17913
17914         * varasm.c (assemble_destructor, assemble_constructor,
17915         assemble_gc_entry, assemble_end_function, assemble_global,
17916         assemble_label, output_constant_pool): Likewise.
17917
17918 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
17919
17920         * config/arm/thumb.c (thumb_expand_prologue): Add comments
17921         explaining what is goin on in this function.
17922
17923 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17924
17925         * regclass.c (record_reg_classes): In matching case, recompute
17926         costs since the direction of movement is different.
17927
17928 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
17929
17930         * resource.c (mark_target_live_regs): For unconditional branches,
17931         the resources found at the branch target should be added to the
17932         resources found so far, not intersected.
17933
17934 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
17935
17936         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
17937         old cpp's.
17938         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
17939         (sys/mman.h): Include this file only if #HAVE_MMAP.
17940         (run_compiles): Initialize `esac_fmt' with one old KR string, not
17941         with automatically concatenated ANSI strings.
17942
17943 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
17944
17945         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
17946         (DIV_ROUND_UP): Robustify.
17947         (ggc_recalculate_in_use_p): New function.
17948         (release_pages): Don't inline it.
17949         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
17950         outer contexts.
17951         (ggc_pop_context): Use ggc_recalculate_in_use_p.
17952         (clear_marks): Always save in_use_p.
17953         (sweep_pages): Use ggc_recalculate_in_use_p.
17954         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
17955         Release pages before counting statistics.
17956
17957 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
17958
17959         * toplev.c (rest_of_compilation): Fix thinko in this change:
17960
17961         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
17962
17963         (rest_of_compilation): If inside an inlined external function,
17964         pretend we are just being declared.
17965
17966 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
17967
17968         * flow.c (calculate_global_regs_live): Fix thinko.
17969
17970         * integrate.c (expand_inline_function): Fix bugs in previous
17971         change from Oct 28, 1999.
17972
17973 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
17974
17975         * stmt.c (expand_value_return): Fix typo in this change:
17976
17977         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17978         (expand_value_return): Correctly convert VAL when promoting function
17979         return; support RETURN_REG being a PARALLEL.
17980
17981 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
17982
17983         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
17984
17985 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17986
17987         * hard-reg-set.h (reg_names): Constify a char*.
17988
17989         * regclass.c  (reg_names): Likewise.
17990
17991         * regs.h (reg_names): Likewise
17992
17993         * a29k/a29k.c (reg_names): Delete declaration.
17994
17995         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
17996
17997         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
17998         arc_output_function_epilogue): Likewise.
17999
18000         * elxsi/elxsi.c (reg_names): Likewise.
18001
18002         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
18003
18004         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
18005         Likewise.
18006
18007         * m88k/m88k.c (output_function_profiler): Likewise.
18008
18009         * sparc/sparc.c (sparc_flat_output_function_prologue,
18010         sparc_flat_output_function_epilogue): Likewise.
18011
18012 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
18013
18014         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
18015         warning from -Wuninitialized and put it under -W.
18016         * function.c (uninitialized_vars_warning): Warn only when the
18017         corresponding flag is set.
18018
18019 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
18020
18021         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
18022         is nonzero and the single set does not have an elt, then assign
18023         it an elt.
18024
18025         * simplify-rtx.c: New file.
18026         * Makefile.in (OBJS): Add simplify-rtx.o
18027         (simplify-rtx.o): Add dependencies.
18028         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
18029         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
18030         (cse_gen_binary, simplify_unary_operation): Delete.
18031         (simplify_binary_operation, simplify_plus_minus): Likewise.
18032         (check_fold_consts, simplify_relation_operation): Likewise.
18033         (simplify_ternary_operation): Likewise.
18034         (delete_trivially_dead_insns): Simplify the contents of the
18035         REG_EQUAL note before trying to substitute it into the source
18036         of the reg-reg copy at the end of a libcall sequence.
18037
18038         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
18039         references/callers changed.
18040
18041         * mn10200.c (mn10200_va_arg): Force the return value into a
18042         register.
18043
18044         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
18045
18046         * cccp.c (macroexpand): Avoid out of range accesses for omitted
18047         arguments.
18048
18049 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
18050
18051         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
18052
18053 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
18054
18055         * fold-const.c (fold): Fix thinko when optimizing comparisons
18056         against -0.0.
18057
18058 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
18059
18060         * gcc.texi (Passes): Update front-end files to their current
18061         location.
18062
18063 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
18064
18065         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
18066         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
18067         (PREDICATE_CODES): Add addition_operation.
18068         * alpha-protos.h (addition_operation): Declare.
18069         (secondary_reload_class): Likewise.
18070         * alpha.c (addition_operation): New.
18071         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
18072         * alpha.md (adddi3): Turn into expander.
18073         (*lda, *adddi_2): New.
18074         (movsf, movdf patterns): Don't preference integer regs.
18075         (movsi, movdi patterns): Don't preference fp regs.
18076
18077 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
18078
18079         * genrecog.c (write_switch): Check for duplicate CODE cases.
18080
18081 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
18082
18083         * ggc-common.c: Update pre-function commentary.
18084         * ggc-page.c: Likewise.
18085         (poison): Remove.
18086         (poison_pages): Use memset directly.
18087         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
18088         (ggc_collect): Poison before sweeping.
18089         * ggc-simple.c: Update pre-function commentary.
18090         (ggc_alloc_obj): Poison non-zeroed memory.
18091
18092 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
18093
18094         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
18095         match format string, even on 64-bit hosts.
18096         * gcc-page.c (ggc_page_print_statistics): Likewise.
18097
18098 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
18099
18100         * config/i386/i386.c (ix86_cpu): Revert last patch.
18101         * config/i386/i386.h (ix86_cpu): Ditto.
18102
18103 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
18104
18105         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
18106         TYPE_SIZE, convert type of result to sizetype.
18107
18108 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
18109
18110         * flow.c (count_or_remove_death_notes): Equate NULL with the
18111         universal set.
18112
18113         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
18114         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
18115         dbr_schedule.
18116
18117         * i386.c (pic_label_no): Delete.
18118         (ix86_attr_length_default): Don't use single_set to peek
18119         inside a parallel.
18120
18121         * recog.c (peephole2_optimize): Allow recog_next_insn to index
18122         the first insn after bb->end.
18123         * i386.md (push mem peeps): Scratch is live after evaluation
18124         of the memory.
18125         (cmp mem peep): Similarly.
18126
18127 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
18128
18129         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
18130         * function.c (pad_to_arg_alignment): Add missing braces.
18131
18132 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18133
18134         * alpha/alpha-protos.h (literal_section): Add prototype.
18135         (alpha_need_linkage, alpha_start_function,alpha_end_function):
18136         Constify a char*.
18137
18138         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
18139         prototype.
18140         (alpha_start_function, alpha_end_function, float_strings,
18141         alpha_need_linkage): Constify a char*
18142
18143         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
18144
18145         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
18146
18147         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
18148
18149         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
18150
18151 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18152
18153         * flow.c (debug_flow_info): Add prototype.
18154
18155         * gcc.c (main): Likewise.
18156
18157         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
18158         Likewise.
18159
18160         * reload1.c (failed_reload, set_reload_reg): Likewise.
18161
18162         * mips-tfile.c (main): Likewise.
18163         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
18164         with ATTRIBUTE_NORETURN.
18165
18166 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
18167
18168         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
18169         DECL is not a memory ref.
18170
18171 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
18172
18173         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
18174         * config/i386/i386.c (ix86_cpu): Add extern attribute.
18175
18176 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
18177
18178         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
18179         * config/mips/elf64.h: ditto.
18180
18181 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
18182
18183         * expr.c (emit_push_insn): New argument alignment_pad.
18184         Update all callers.  Adjust stack pointer based on alignment pad.
18185         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
18186         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
18187         (locate_and_pad_parm): New argument alignment_pad.  Update all
18188         callers.
18189         * expr.h (emit_push_insn): Update prototype.
18190         (locate_and_pad_parm): Update prototype.
18191         * calls.c (arg_data):  Add new field alignment_pad.
18192         (initialize_argument_information): Initialize alignment_pad.
18193
18194 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
18195
18196         * except.c (free_eh_nesting_info): Free the info itself.
18197         * function.c (free_after_compilation): Don't free NULL.
18198         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
18199         (pre_edge_insert): Free inserted.
18200         * stmt.c (free_stmt_status): Don't free NULL.
18201
18202 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
18203
18204         * gcov.c (DIR_SEPARATOR): Provide default.
18205         (output_data): Add test for MS-DOS format absolute filename.
18206         (fancy_abort): Correct program name.
18207         (open_files): Open all files in binary mode.
18208         * libgcc2.c (__bb_exit_func): Likewise.
18209
18210         * profile.c (init_branch_prob): Specify binary when opening files.
18211
18212         * flags.h (flag_unwind_tables): New decl.
18213         * toplev.c (flag_unwind_table): New definition.
18214         (f_options): Add -funwind-tables.
18215         (decode_g_option): Clarify warning when unknown -g option is given.
18216         (rest_of_compilation): If inside an inlined external function,
18217         pretend we are just being declared.
18218
18219         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
18220         (dwarf2out_frame_finish): Likewise.
18221
18222 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
18223
18224         * fold-const.c (merge_ranges): If not in0, but in1, handle
18225         upper bounds equal like subset case.
18226
18227 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
18228
18229         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
18230         passed in a register but moved to the stack.
18231
18232 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
18233
18234         * gcc.c (pass_exit_codes, greatest_status): New variables.
18235         (struct option_map): Add entry for "--pass-exit-codes".
18236         (execute): Update greatest_status if error.
18237         (display_help): Add documentation for -pass-exit-codes.
18238         (process_command): Handle -pass-exit-codes.
18239         (main): Look at pass_exit_codes and greatest_status on call to exit.
18240
18241 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18242
18243         * reload.c (find_reloads): Refine test for no input reload
18244         case to not includes reloads emitted after insn.
18245
18246         * function.c (find_temp_slots_from_address): Handle sum involving
18247         a register that points to a temp slot.
18248         (update_temp_slot_address): Make recursive call if both old and
18249         new are PLUS with a common operand.
18250         * calls.c (expand_call): Mark temp slot for result as having
18251         address taken.
18252
18253         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
18254
18255         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
18256         component as well as "BINUTILS".
18257
18258         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
18259         * integrate.c (copy_rtx_and_substitute): Likewise.
18260         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
18261         All callers changed.
18262         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
18263
18264         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
18265         gdb extensions, write size of type; also be more consistent
18266         in using references when this is a subtype.
18267
18268         * pa.md (extv, extzv, insv): Use define_expand to reject constant
18269         that is out of range.
18270
18271         * loop.c (unknown_constant_address_altered): New variable.
18272         (prescan_loop): Initialize it.
18273         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
18274         (invariant_p, case MEM): Remove handling for volatile and readonly;
18275         check new variable if readonly.
18276         (check_dbra_loop): Chdeck unknown_constant_address_altered.
18277
18278         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
18279         (addr_affects_sp_p): Removed from note_mem_written and only
18280         define #ifdef AUTO_INC_DEC.
18281
18282         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
18283
18284         * regclass.c (record_reg_classes): Properly handle register move
18285         directions.
18286
18287         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
18288         Don't think valid if both operands are invalid.
18289         (struct constant_descriptor): New field RTL.
18290         (mark_const_hash_entry): Mark it.
18291         (record_constant{,_rtx}): Initialize it.
18292         (output_constant_def): Allocate RTL in permanent obstack and
18293         save in table.
18294         ({record,compare}_constant_1): Modes must match for
18295         CONSTRUCTOR of ARRAY_TYPE.
18296
18297         * c-common.h (initializer_constant_valid_p): Delete decl from here.
18298         * output.h (initializer_constant_valid_p): Move decl to here.
18299         * c-common.c (initializer_constant_valid_p): Delete function from here.
18300         * varasm.c (initializer_constant_valid_p): Move function to here.
18301
18302         * tree.h (STRIP_SIGN_NOPS): New macro.
18303         * fold-const.c (optimize_minmax_comparison): New function.
18304         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
18305         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
18306         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
18307         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
18308         widening conversions.
18309         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
18310         to look at size of mode, not precision of type; also add missing cases.
18311         (optimize_bit_field_compare, decode_field_reference): Don't try to
18312         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
18313
18314         * dwarf2out.c (ctype.h): Include.
18315         (dwarf2out_set_demangle_name_func): New function.
18316         (size_of_line_info): Deleted.
18317         (output_line_info): Compute size of line info table from difference
18318         of labels.
18319         (base_type_die, add_name_attribute): Call demangle function, if any.
18320         (field_byte_offset): Use bits per word for variable length fields.
18321         (gen_array_type_die): Add array name.
18322         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
18323         (dwarf2out_add_library_unit_info): New function.
18324
18325         * explow.c (set_stack_check_libfunc): New function.
18326         (stack_check_libfunc): New static variable.
18327         (probe_stack_range): Allow front-end to set up a libfunc to call.
18328
18329         * combine.c (simplify_comparison): When making comparison in wider
18330         mode, check for having commuted an AND and a SUBREG.
18331         (contains_muldiv): New function.
18332         (try_combine): Call it when dividing a PARALLEL.
18333         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
18334         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
18335         a PLUS.
18336         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
18337         use one of the CLOBBERs instead.
18338         (if_then_else_cond): If comparing against zero, just return thing
18339         being compared.
18340
18341         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
18342         Don't generate shifts and subtract if have conditional arithmetic.
18343
18344         * rtl.h (delete_barrier): New declaration.
18345         * jump.c (jump_optimize): Set up to handle conditional call.
18346         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
18347         (delete_barrier): New function.
18348
18349         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
18350
18351         * recog.c (nonmemory_operand): Accept ADDRESSOF.
18352
18353         * tree.c (build_type_attribute_variant): Push to obstack of
18354         ttype around type_hash_canon call.
18355
18356         * expr.c (placeholder_list): Move decl to file scope.
18357         (expand_expr): Don't force access to volatile just because its
18358         address is taken.
18359         If ignoring reference operations, just expand the operands.
18360         (expand_expr, case COMPONENT_REF): Propagate
18361         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
18362         Refine test for using bitfield operations vs pointer punning.
18363         (expand_expr, case CONVERT_EXPR): If converting to
18364         BLKmode UNION_TYPE from BLKmode, just return inner object.
18365         Use proper mode in store_field call.
18366         Properly set sizes of object to store and total size in store_field
18367         call for convert to union.
18368         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
18369         memory (like for ADDR_EXPR).  Also, don't put constant in register if
18370         we'll want it in memory.
18371         (readonly_fields_p): New function.
18372         (expand_expr, case INDIRECT_REF): Call it if LHS.
18373         (expand_assignment): Handle a RESULT_DECL where
18374         DECL_RTL is a PARALLEL.
18375         (do_jump, case WITH_RECORD_EXPR): New case.
18376         (get_inner_reference): Always go inside a CONVERT_EXPR
18377         and NOP_EXPR if both modes are the same.
18378         (store_field): Use bitfield operations if size of bitsize is not same
18379         as size of RHS's type.
18380         Check for bitpos not a multiple of alignment in BLKmode case.
18381         Do block move in largest possible alignment.
18382         (store_constructor): Set BITSIZE to -1 for variable size and properly
18383         in case of array of BLKmode.
18384         (expand_expr_unaligned): New function.
18385         (do_compare_and_jump): Call it.
18386
18387         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
18388         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
18389         does not include 'o'.
18390
18391         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
18392         both SET_DEST and SET_SRC reference a virtual register.
18393         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
18394
18395         * integrate.c (expand_inline_function): Handle case of setting
18396         virtual stack vars register (from built in setjmp); when parameter
18397         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
18398         (subst_constant): Add new parm, MEMONLY.
18399         (expand_inline_function, integrate_parm_decls): Pass new parm.
18400         (integrate_decl_tree): Likewise.
18401         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
18402         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
18403         (copy_rtx_and_substitute, case SET): Add explicit calls to
18404         copy_rtx_and_substitute for both sides.
18405
18406         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
18407         constraints.
18408         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
18409         within INDEX_TYPE, instead of before.
18410         (fixup_gotos): Use f->target_rtl, not the next insn,
18411         since latter may be from a later fixup.
18412         (expand_value_return): Correctly convert VAL when promoting function
18413         return; support RETURN_REG being a PARALLEL.
18414         (expand_return): When checking for result in regs and having
18415         cleanup, consider PARALLEL in DECL_RTL as being in regs.
18416
18417 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
18418
18419         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
18420         last_nominal_fname): Mark const.
18421         (struct include_hash: name, nshort, control_macro): Mark
18422         const.
18423         (struct macrodef: symnam): Mark const.
18424         (struct if_stack: fname): Mark const.
18425         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
18426         (IStable): New character-syntax array which encompasses all
18427         the old is_foo arrays.
18428         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
18429         is_space): New macros for interrogating IStable.
18430         (check_macro_name): Kill last argument.  All callers changed.
18431
18432         * cppinit.c (initialize_char_syntax): Delete.
18433         (is_idchar, is_idstart, is_hor_space, is_space,
18434         trigraph_table): Delete.
18435         (IStable): New.  Initialize with clever macros to avoid
18436         information duplication.
18437         (builtin_array): Table of builtins to get rid of explicit list
18438         in initialize_builtins.
18439         (initialize_builtins): Use builtins_array.
18440         (cpp_start_read): Call init_IStable, and set IStable['$'] if
18441         opts->dollars_in_ident.
18442
18443         * cppexp.c: Change all refs to is_xyz[] arrays to use new
18444         is_xyz() macros.
18445         (cpp_parse_expr): Avoid 'format string is not constant'
18446         warning. Use ISGRAPH to identify printable chars.
18447         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
18448         is_xyz() macros.
18449         (read_and_prescan): Map trigraphs to chars with open-coded
18450         if-else-if-... sequence, not a lookup table.
18451         * cpphash.c: Change all refs to is_xyz[] arrays to use new
18452         is_xyz() macros.
18453         * cpplib.c: Change all refs to is_xyz[] arrays to use new
18454         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
18455         (check_macro_name): Remove ability to report an invalid
18456         assertion name, which is never used.
18457         (do_line): Constify a couple of char *'s.
18458         * cppmain.c (main): Call cpp_cleanup before returning.
18459
18460 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
18461
18462         * ggc.h (struct ggc_statistics): New type.
18463         (ggc_get_size): New function.
18464         (ggc_print_statistics): Likewise.
18465         * ggc-common.c (ggc_stats): New variable.
18466         (ggc_mark_rtx_children): Keep statistics.
18467         (ggc_mark_tree_children): Likewise.
18468         (ggc_print_statistics): New function.
18469         * ggc-page.c (struct globals): Add bytes_mapped field.
18470         (alloc_anon): Update it.
18471         (release_pages): Likewise.
18472         (ggc_get_size): New function.
18473         (ggc_page_print_statistics): New function.
18474         * ggc-simple.c (ggc_get_size): New function.
18475
18476 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
18477
18478         * flow.c (propagate_block): When the last reference to a label
18479         before an ADDR_VEC is deleted because the reference is a dead
18480         store, delete the ADDR_VEC.
18481
18482 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
18483
18484         * resource.c (find_free_register): Don't use the frame pointer
18485         if frame_pointer_needed.
18486
18487 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
18488
18489         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
18490         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
18491
18492         * config/i960/i960.c (i960_va_start): New locals base, num.
18493         Use INDIRECT_REF instead of ARRAY_REF on valist.
18494         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
18495
18496 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
18497
18498         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
18499
18500 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
18501
18502         * tree.def (PLACEHOLDER_EXPR): Update comments.
18503
18504 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18505
18506         * c-common.c (check_format_info): Avoid non-literal format string
18507         warnings when `first_arg_num' is zero.
18508
18509 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18510
18511         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
18512
18513 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
18514
18515         * arm.md (casesi_insn): Add a clobber of the condition code
18516         register.
18517
18518 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
18519
18520         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
18521         used by both cc1 and cc1plus.
18522
18523 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
18524
18525         * config/arm/arm.c: Initialise arm_structure_size_boundary to
18526         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
18527         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
18528         to the value 32 if it has not already been defined.
18529         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
18530         Override definition in arm.h with a value of 8.
18531
18532 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
18533
18534         * c-pragma.c (push_alignment): Don't check the return value
18535         of xmalloc.
18536
18537 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
18538
18539         * sparc.h (ADJUST_COST): Fix thinko.
18540
18541 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
18542
18543         * cccp.c (rescan): Fixed obp pointer handling around call to
18544         check_expand subroutine.
18545
18546 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
18547
18548         * gcse.c (delete_null_pointer_checks): Only record non-null info
18549         for pseudos when examining stores.
18550
18551         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
18552         splitters for these patterns.  Use "#" for output templates.
18553         (addsi3_carryin_shift): New pattern.
18554
18555 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
18556
18557         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
18558         of the function return register into a plain REG until
18559         after function inlining is done.
18560
18561 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
18562
18563         * jump.c (jump_optimize_1): If we did cross-jumping, and
18564         the data will matter, rebuild the CFG.
18565         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
18566         not optimizing.  Don't run shorten_branches.
18567         * toplev.c (rest_of_compilation): Run shorten_branches after
18568         reg_to_stack.
18569
18570 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
18571
18572         * rtl.h (note_stores): Add additional paramter.
18573         * rtlanal.c (reg_set_p_1): Take additional paramter.
18574         (reg_set_last_1): Likewise.
18575         (reg_set_p): Adjust call to note_stores.
18576         (reg_set_last): Likewise.
18577         (note_stores): Pass data parameter to worker function.
18578         * alias.c (record_set): Take additional parameter.
18579         (init_alias_analysis): Pass it.
18580         * caller-save.c (mark_set_regs): Take additional parameter.
18581         (save_call_clobbered_regs): Pass NULL to note_stores.
18582         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
18583         parameter.
18584         (record_dead_and_set_regs_1): Likewise.
18585         (reg_dead_at_p_1): Likewise.
18586         (combine_instructions): Adjust calls to note_stores.
18587         (try_combine): Likewise.
18588         (record_dead_insn): Remove.
18589         (record_dead_and_set_regs): Adjust calls to note_stores.
18590         (reg_dead_at_p): Likewise.
18591         * cse.c (invalidate_skipped_set): Take additional parameter.
18592         (cse_check_loop_start): Likewise.
18593         (cse_check_loop_start_value): Remove.
18594         (cse_set_around_loop): Adjust calls to note_stores.
18595         * flow.c (notice_stack_pointer_modification): Take additional
18596         parameter.  Remove duplicate declaration.
18597         (record_volatile_insns): Adjust calls to note_stores.
18598         * gcse.c (record_set_info): Take additional parameter.
18599         (record_last_set_info): Likewise.
18600         (invalidate_nonnull_info): Likewise.
18601         (record_set_insn): Remove.
18602         (compute_sets): Adjust calls to note_stores.
18603         (last_set_insn): Remove.
18604         (compute_hash_table): Adjust calls to note_stores.
18605         (insert_insn_end_bb): Likewise.
18606         (delete_null_pointer_checks): Likewise.
18607         * global.c (mark_reg_store): Take additional parameter.
18608         (mark_reg_clobber): Likewise.
18609         (reg_becomes_live): Likewise.
18610         (global_conflicts): Adjust calls to note_stores.
18611         (build_insn_chain): Likewise.
18612         * integrate.c (note_modified_parmregs): Take additional parameter.
18613         (mark_stores): Likewise.  Make it static.
18614         (save_for_inline_nocopy): Adjust calls to note_stores.
18615         (try_constants): Likewise.
18616         * integrate.h (mark_stores): Remove declaration.
18617         * jump.c (mark_modified_reg): Take additional parameter.
18618         (thread_jumps): Adjust calls to note_stores.
18619         * local-alloc.c (validate_equiv_mem_from_store): Take additional
18620         parameter.
18621         (no_equiv): Likewise.
18622         (reg_is_set): Likewise.
18623         (validate_equiv_mem): Adjust calls to note_stores.
18624         (update_equiv_regs): Likewise.
18625         (block_alloc): Likewise.
18626         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
18627         (note_addr_stored): Take additional parameter.
18628         (note_set_pseudo_multiple_uses): Likewise.
18629         (record_initial): Likewise.
18630         (prescan_loop): Adjust calls to note_stores.
18631         (strength_reduce): Likewise.
18632         (check_dbra_loop): Likewise.
18633         * regmove.c (flags_set_1): Take additional paramter.
18634         (mark_flags_life_zones): Adjust calls to note_stores.
18635         * reload1.c (mark_not_eliminable): Take additional parameter.
18636         (forget_old_reloads_1): Likewise.
18637         (reload_cse_invalidate_rtx): Likewise.
18638         (reload_cse_check_clobber): Likewise.
18639         (reload_combine_note_store): Likewise.
18640         (move2add_note_store): Likewise.
18641         (reload): Adjust calls to note_stores.
18642         (reload_as_needed): Likewise.
18643         (emit_reload_insns): Likewise.
18644         (reload_cse_regs_1): Likewise.
18645         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
18646         (reload_combine): Adjust calls to note_stores.
18647         * resource.c (update_live_status): Take additional paramter.
18648         (mark_target_live_regs): Adjust calls to note_stores.
18649         * stupid.c (find_clobbered_regs): Take additional parameter.
18650         (stupid_life_analysis): Adjust calls to note_stores.
18651
18652 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
18653
18654         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
18655         definition.
18656
18657         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
18658         definition.
18659
18660         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
18661         of the variable arm_structure_size_boundary.
18662
18663 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
18664
18665         * alias.c (init_alias_analysis): Allocate reg_known_value and
18666         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
18667         and reg_seen.
18668         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
18669         * cse.c (cse_main): Call end_alias_analysis.
18670         * haifa-sched.c (schedule_insns): Likewise.
18671         * local-alloc. (update_equiv_regs): Likewise.
18672         * reload1.c (reload_cse_regs): Likewise.
18673
18674 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18675
18676         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
18677         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
18678         mapping from MASK_FPU.
18679
18680 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
18681
18682         * sparc.md (call): Don't bound structure return size to 0xfff.
18683
18684 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
18685
18686         * resource.c (mark_target_live_regs): Check that the target
18687         insn wasn't created after compute_bb_for_insn.
18688
18689 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
18690
18691         * ggc-page.c (poison_pages): Don't be overzealous.
18692
18693 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
18694
18695         * alias.c: Update comments for ADDRESS.
18696         (nonlocal_reference_p): Look inside the ADDRESS to determine if
18697         it is a local memory reference.
18698
18699         * c-typeck.c (build_function_call): Check that the built-in
18700         function is of class BUILT_IN_NORMAL before trying to recongize
18701         it as BUILT_IN_ABS.
18702         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
18703         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
18704
18705 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
18706
18707         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
18708         of alloca.
18709         (pre_gcse): Likewise.
18710         (hoist_expr_reaches_here_p): Likewise.
18711         (hoist_code): Likewise.
18712         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
18713         code to ...
18714         (pre_expr_reaches_here_p_work): ... here.
18715         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
18716         code to ...
18717         (expr_reaches_here_p_work): ... here.
18718
18719 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
18720
18721         * resource.c (find_basic_block): Delete.
18722         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
18723         (init_resource_info): Call compute_bb_for_insn.
18724
18725 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
18726
18727         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
18728         with already adjacent blocks, but no fallthru.
18729         (merge_blocks_move_successor_nojumps): Simplify.
18730         (debug_flow_info): New.
18731
18732         * toplev.c (rest_of_compilation): Open jump1 dump file before
18733         jump and close after, as opposed to just using dump_rtl.
18734
18735 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
18736
18737         * reload.h (earlyclobber_operand_p): Declare.
18738         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
18739         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
18740         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
18741         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
18742
18743 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
18744                           Richard Henderson  <rth@cygnus.com>
18745
18746         * emit-rtl.c (emit_block_insn_before): New.
18747         (emit_block_insn_after): New.
18748         * basic-block.h: Declare them.
18749
18750         * bitmap.h: Protect from multiple inclusion.
18751
18752         * recog.c (scratch_operand): Handle VOIDmode correctly.
18753
18754         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
18755
18756         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
18757         * function.c (assign_parms): Likewise.
18758         * global.c (global_conflicts): Clarify STACK_REGS commentary.
18759
18760         * reg-stack.c (max_uid): Remove.
18761         (blocks, block_begin, block_end, block_drops_in): Remove.
18762         (block_stack_in, block_out_reg_set, block_number): Remove.
18763         (struct block_info_def, BLOCK_INFO): New.
18764         (enum emit_where): New.
18765         (current_block): New.
18766         (BLOCK_NUM): Remove.
18767         (mark_regs_pat, record_label_references): Remove.
18768         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
18769         (nan): New.
18770         (goto_block_pat, print_blocks, dump_stack_info): Remove.
18771         (reg_to_stack): Simplified test for existance of fp code.  Use
18772         flow.c code.  Call shorten_branches after cross-jump opt.
18773         (check_asm_stack_operands): Renamed from record_asm_reg_life.
18774         Return false if the asm doesn't use stack regs.  Don't do life
18775         analysis on the asm.
18776         (emit_pop_insn): Replace function pointer arg `when' with
18777         enum `where'.  Update all callers.
18778         (change_stack): Likewise.  Update basic block end.
18779         (emit_swap_insn): Use current_block->head to limit reverse search
18780         for start of block.  Use emit_block_insn_after.
18781         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
18782         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
18783         structure assignment instead of bcopy.
18784         (print_stack): New.
18785         (convert_regs_entry, convert_regs_exit): New.
18786         (convert_regs_1, convert_regs_2): Split out from convert_regs.
18787         Work on basic blocks and the CFG.
18788         (convert_regs): Use them.
18789
18790         * i386.c (output_fix_trunc): Remove code for DImode input operand
18791         not at top-of-stack.
18792         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
18793         appropriate mode.
18794         (fix_truncdi_1): Allow any mode scratch.
18795
18796 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
18797
18798         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
18799         * linux.h, netbsd.h, vms.h: Not here.
18800
18801 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
18802
18803         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
18804         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
18805         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
18806         CONDITIONAL_REGISTER_USEAGE): Use them.
18807         * config/mips/mips.c (mips_move_1word,mips_move_2words,
18808         gen_conditional_branch,override_options) : Use them.
18809         * config/mips/mips.md : Use them.
18810
18811 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
18812
18813         * i386.md (zero_extendqihi2): Use SImode register name with andl.
18814
18815 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
18816
18817         * integrate.c (function_cannot_inline_p): Don't allow inlining
18818         if setjmp is used.
18819
18820 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18821
18822         * c-parse.in (cast_expr): Constify.
18823
18824         * cccp.c (special_symbol): Likewise.
18825
18826         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
18827
18828         * dwarf2out.c (base_type_die): Likewise.
18829
18830         * global.c (allocno_compare): Likewise.
18831
18832         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
18833
18834         * regclass.c (fix_register): Likewise.
18835
18836         * rtl.h (fix_register): Likewise.
18837
18838         * stupid.c (stupid_reg_compare): Likewise.
18839
18840         * toplev.c (decode_f_option): Likewise.
18841
18842         * tree.c (build_complex_type): Likewise.
18843
18844 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
18845
18846         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
18847
18848 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18849
18850         * reload.c (find_reloads): Compute mode and nregs fields of all
18851         reloads.
18852         * reload1.c (calculate_needs_all_insns): Simplify a bit.
18853         (calculate_needs): Use precomputed mode/nregs values.
18854         (allocate_reload_reg): Likewise.
18855         Break out two...
18856         (failed_reload, set_reload_reg): ... new functions.
18857         (choose_reload_regs_init): New function, mostly broken out from...
18858         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
18859         Also lose one #if 0 block.
18860
18861 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
18862
18863         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
18864         substitution.
18865
18866 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
18867
18868         * tree.h (BLOCK_TYPE_TAGS): Remove.
18869         (BLOCK_END_NOTE): Likewise.
18870         (BLOCK_LIVE_RANGE_FLAG): Likewise.
18871         (BLOCK_LIVE_RANGE_START): Likewise.
18872         (BLOCK_LIVE_RANGE_END): Likewise.
18873         (tree_block): Remove live_range_flag, live_range_var_flag, and
18874         type_tags.  Remove end_note, live_range_start, and live_range_end.
18875         (remember_end_note): Remove prototype.
18876         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
18877         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
18878         remember_end_note.
18879         * ggc-common.c (ggc_mark_tree_children): Don't mark
18880         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
18881         * integrate.c (adjust_copied_decl_tree): Remove.
18882         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
18883         * stmt.c (last_block_end_note): Remove.
18884         (init_stmt): Don't add a GC root for it.
18885         (expand_fixup): Don't set it.
18886         (remember_end_note): Remove.
18887         (expand_end_bindings): Don't set last_block_end_note.
18888
18889 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18890
18891         * reload1.c (reload_reg_free_for_value_p): Show
18892         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
18893         reloads.
18894
18895 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
18896
18897         * expmed.c (extract_bit_field): Allow for the case of non-integer
18898         objects that are smaller than a word (like SFmode on a 64-bit
18899         machine).
18900
18901         * loop.c (basic_induction_var): A non-integer variable which is
18902         being set by a paradoxical subreg is probably not a biv.
18903
18904 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
18905
18906         * prefix.c (translate_name) Check for empty prefix string.
18907
18908 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
18909
18910         * Makefile.in (CPP_CROSS_NAME): New variable.
18911         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
18912         xcpp.
18913         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
18914         names of the files to be uninstalled.
18915
18916 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
18917
18918         * collect2.c (IS_DIR_SEPARATOR): Define.
18919         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
18920
18921         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
18922         functions too.
18923
18924         * haifa-sched.c (add_dependence): Update the true dependency
18925         cache the first time we add a true dependence to the LOG_LINKS chain.
18926
18927 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
18928
18929         * fold-const.c (fold): Fix comment.
18930
18931 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18932
18933         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
18934         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
18935         dbxout_start_new_source_file, dbxout_source_file,
18936         dbxout_source_line, dbxout_finish, dbxout_type_fields,
18937         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
18938         Constify a char*.
18939         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
18940         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
18941         (dbxout_block): Initialize variable `blocknum'.
18942
18943         * dbxout.h (dbxout_init, dbxout_finish,
18944         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
18945         dbxout_args, dbxout_source_line): Constify a char*.
18946
18947         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
18948         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
18949         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
18950         low_pc_attribute, high_pc_attribute, body_begin_attribute,
18951         body_end_attribute, comp_dir_attribute, sf_names_attribute,
18952         src_info_attribute, mac_info_attribute, producer_attribute,
18953         lookup_filename, generate_macinfo_entry, fundamental_type_code,
18954         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
18955         dwarfout_undef): Constify a char*.
18956         (add_incomplete_type, retry_incomplete_types): Add prototypes.
18957
18958         * dwarfout.h (dwarfout_define, dwarfout_undef,
18959         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
18960
18961 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
18962
18963         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
18964         (MULTILIB_ISA_DEFAULT): New.
18965         (MULTILIB_DEFAULTS): Use it.
18966         * config/mips/mips.c (): Remove the now unnecessary definition
18967         of MIPS_ISA_DEFAULT.
18968         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
18969         unnecessary definition.
18970
18971 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
18972
18973         * arm.md (pic_load_addr): Add constraints to operand 1.
18974
18975 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
18976
18977         * fixinc/genfixes:  Provide a means for specifying -D options to
18978         AutoGen
18979
18980 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
18981
18982         * arm.c (arm_override_options): Correct initialization of
18983         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
18984         arm_is_strong, and arm_is_6_or_7.
18985
18986         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
18987         (note_set_pseudo_multiple_uses): New function.
18988         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
18989         if a pseudo set in the loop exit is used elsewhere.
18990
18991 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
18992
18993         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
18994
18995 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
18996
18997         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
18998         a single load-address pattern.
18999
19000 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
19001
19002         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
19003         depending on whether or not line-number notes are present.
19004
19005 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19006
19007         * cccp.c (progname, file_buf, default_include, include_file,
19008         macrodef, definition, hashval, wchar_type, user_label_prefix,
19009         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
19010         expand_to_temp_buffer, is_system_include, base_name,
19011         absolute_filename, read_name_map, open_include_file,
19012         record_control_macro, check_precompiled, check_preconditions,
19013         pcfinclude, pass_thru_directive, create_definition,
19014         check_macro_name, comp_def_part, collect_expansion,
19015         check_assertion, read_token_list, assertion_install,
19016         assertion_lookup, eval_if_expression, conditional_skip,
19017         validate_else, skip_quoted_string, quote_string, macarg1,
19018         error_from_errno, install, lookup, hashf, dump_defn_1,
19019         perror_with_name, pfatal_with_name, main, trigraph_pcp,
19020         check_white_space, rescan, handle_directive, monthnames,
19021         special_symbol, do_include, remap_include_file, write_output,
19022         arglist, do_assert, do_unassert, do_line, do_error, do_once,
19023         do_ident, do_sccs, do_xifdef, skip_if_group,
19024         output_line_directive, macroexpand, macarg, change_newlines,
19025         initialize_builtins, make_definition): Constify a char*.
19026
19027         * pcp.h (stringdef): Likewise.
19028
19029 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
19030
19031         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
19032         not of pattern.
19033
19034 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
19035                           Richard Henderson  <rth@cygnus.com>
19036
19037         * alias.c: Include ggc.h.
19038         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
19039         (record_set): Verify enough room in reg_base_value.
19040         (init_alias_analysis): Allocate reg_base_value with xcalloc.
19041         Register it as a GC root.
19042         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
19043         * Makefile.in (alias.o): Depend on ggc.h.
19044
19045         * unroll.c (unroll_loop): Verify the insn before a barrier
19046         is a JUMP_INSN before checking JUMP_LABEL.
19047
19048 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19049
19050         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
19051         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
19052         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
19053         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
19054         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
19055         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
19056
19057 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19058
19059         * output.h (ctors_section, dtors_section, bss_section): Prototype.
19060
19061         * alpha/alpha-interix.h (text_section): Delete prototype.
19062         * alpha/elf.h (text_section): Likewise.
19063         * arm/linux-elf.h (text_section): Likewise.
19064         * arm/linux-telf.h (text_section): Likewise.
19065         * c4x/c4x.h (text_section): Likewise.
19066         * dsp16xx/dsp16xx.h (bss_section): Likewise.
19067         * elfos.h (text_section): Likewise.
19068         * i386/aix386ng.h (text_section): Likewise.
19069         * i386/i386-interix.h (text_section): Likewise.
19070         * i386/sco5.h (text_section): Likewise.
19071         * i386/svr3gas.h (text_section): Likewise.
19072         * nextstep.h (text_section): Likewise.
19073         * psos.h (text_section): Likewise.
19074         * ptx4.h (text_section): Likewise.
19075         * svr3.h (text_section): Likewise.
19076         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
19077
19078 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19079
19080         * final.c (peephole): Delete prototype.
19081
19082         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
19083         (pre_insert_copies): Remove unused variable `bb'.
19084
19085         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
19086         prototypes.
19087
19088         * output.h (peephole): Add prototype.
19089
19090 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
19091
19092         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
19093         -O0.
19094
19095 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
19096
19097         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
19098         for inlined declarations.
19099
19100 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
19101
19102         * arm.c (logical_binary_operator): New fucntion.
19103         * arm.h (logical_binary_operator): Declare it.
19104         (PREDICATE_CODES): Handle logical_binary_operator.
19105         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
19106         output constraints.  Add appropriate splitters.
19107         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
19108         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
19109         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
19110
19111 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19112
19113         * genoutput.c (struct operand_data): New elt eliminable.
19114         (output_operand_data): Write it.
19115         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
19116         (compare_operands): Take it into account.
19117         * recog.h (struct insn_operand_data): New elt eliminable.
19118         * reload1.c (check_eliminable_occurrences, elimination_effects): New
19119         functions.
19120         (old_asm_operands_vec, new_asm_operands_vec): Delete.
19121         (eliminate_regs): Move code that detects changes to elimination
19122         target regs into new function elimination_effects.
19123         Delete one #if 0 block.
19124         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
19125         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
19126         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
19127         Only call eliminate_regs for real operands of the insn, not for parts
19128         of its structure or parts matched by things like match_operator.
19129         Use elimination_effects and check_eliminable_occurrences.  Use
19130         copy_insn to duplicate the pattern when not in the final pass.
19131
19132 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
19133
19134         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
19135         and fld.
19136
19137 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
19138
19139         * fixinc/README: document the "mach" machine matching test
19140         * fixinc/fixfixes.c: Implement the #else/#endif label fix
19141         * fixinc/fixtests.c: Implement the #else/#endif label test
19142         * fixinc/inclhack.def: utilize these tests and fixes
19143         * fixinc/inclhack.sh:  regen
19144         * fixinc/fixincl.x:  regen
19145         * fixinc/fixincl.sh:  regen
19146
19147 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
19148
19149         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
19150         depend on ggc.h.
19151
19152 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
19153
19154         * gcc.1: Document exit codes.
19155
19156 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19157
19158         * calls.c: Include tm_p.h later, so everything we need is defined.
19159         * expr.c: Likewise.
19160         * function.c: Likewise.
19161
19162         * except.c: Include tm_p.h.
19163
19164         * sparc.c: Likewise.
19165         (dwarf2out_cfi_label): Don't prototype.
19166         (check_return_regs, epilogue_renumber,
19167         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
19168         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
19169         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
19170         ultra_schedule_insn): Add static prototype.
19171         (data_segment_operand, text_segment_operand): Call itself with the
19172         proper number of arguments.
19173         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
19174
19175         * sparc.h: Move all declarations to sparc-protos.h.
19176         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
19177         symbolic_operand.
19178
19179         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
19180
19181         * config/svr4.h (text_section, ctors_section, dtors_section): Add
19182         Prototypes.
19183         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
19184         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
19185         ASM_OUTPUT_ASCII): Constify a char*.
19186
19187         * sparc-protos.h: New file for sparc prototypes.
19188
19189 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19190
19191         * function.c (record_insns, contains): Always declare and define.
19192         (record_insns): Mark with ATTRIBUTE_UNUSED.
19193
19194 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
19195
19196         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
19197         to .section when outputting a .bss section to deal with multiple
19198         .bss input sections (as happens with -fdata-sections)
19199         Also output %progbits, not @progbits so the assembler doesn't treat as
19200         a comment.
19201         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
19202
19203         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
19204         thumb parts even when building with non-thumb CPUs, by forcing
19205         thumb mode.
19206
19207 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
19208
19209         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
19210         (movdf_const_intreg_sp64): Similarly.
19211
19212         * local-alloc.c (update_equiv_regs): Check the correct insn
19213         for pre-existing REG_EQUIV notes.
19214
19215 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
19216
19217         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
19218         block reached by a branch if we're not going to actually process
19219         this block.
19220
19221 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
19222
19223         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
19224         a local extern function declaration.
19225
19226 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
19227
19228         * i386.c (ix86_expand_prologue): Properly wrap USE around
19229         reg for CALL_INSN_FUNCTION_USAGE.
19230
19231 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
19232
19233         * config/mips/mips.md (movdf_internal1a): Allow floating-point
19234         move between GP_REGs.
19235
19236 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
19237
19238         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
19239         the mode size when finding out if an offset is legal.
19240
19241 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
19242
19243         * basic-block.h (PROP_*): Move constants from ...
19244         * flow.c: ... here.
19245         (compute_bb_for_insn): Free the array before reallocating.
19246         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
19247         (allocate_reg_life_data): Reset all reg variables collected by
19248         propagate_block.
19249         (get_block_head_tail): Don't convert from bb to block.
19250         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
19251         (find_insn_reg_weight): Take block not bb.
19252         (schedule_block): Don't set block num for moved insns.
19253         (schedule_region): Don't update_life_info or find_insn_reg_weight.
19254         (schedule_insns): Do it here instead.
19255         * combine.c (combine_instructions): Invoke compute_bb_for_insn
19256         before update_life_info.
19257         * recog.c (split_all_insns, peephole2_optimize): Update for
19258         new arg to update_life_info.
19259         * rtlanal.c (remove_note): Cope with NULL note.
19260         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
19261         if we did sched1.
19262
19263 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
19264
19265         * jump.c (jump_optimize_1): More accurately detect casesi insns.
19266
19267         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
19268         block records so that merge_blocks_nomove will clean up correctly.
19269         (split_edge): Handle casesi insns.
19270
19271         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
19272
19273 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
19274
19275         * pa.md (call, call_value): Do not emit a blockage after restoring
19276         the PIC register.
19277
19278 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
19279
19280         * c-typeck.c (c_expand_asm_operands): Fix typo.
19281
19282 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19283
19284         * arm.c (fpu_rhs_operand): Verify modes.
19285         (fpu_add_operand): Likewise.
19286         (di_operand): Likewise.
19287         (soft_df_operand): Likewise.
19288
19289 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
19290
19291         * arm.c (arm_return_in_memory): APCS rules state that the elements
19292         of a structure returned in a register must be 'integer-like'.
19293
19294 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
19295
19296         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
19297         in the source tree when the generated targets are out of date
19298         * fixinc/genfixes: Alter it to run individual fixes for make.
19299         * fixinc/README: rewrite
19300         * fixinc/inclhack.def: moved initial comments to README
19301
19302 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
19303
19304         * toplev.c (main): Do not generate an error message if an
19305         unrecognised command line switch is recognisable by another
19306         language.  If extra_warnings are enabled, then generate a
19307         warning message instead.
19308
19309 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
19310
19311         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
19312         (insert_pack_attributes): Delete prototype.
19313
19314         * c-pragma.c (default_alignment): New static variable.
19315         (push_alignment): Initialize to current effective alignment.
19316         (pop_alignment): Use to set new alignment.
19317         (insert_pack_attributes): Delete function.
19318         (handle_pragma_token): Set default_alignment as well each time
19319         a #pragma pack(<n>) is encountered.
19320
19321 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
19322
19323         * reg-stack.c (stack_result): Aggregates are not returned in
19324         stack registers.
19325
19326 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
19327
19328         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
19329
19330 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
19331
19332         * basic-block.h (set_block_num): Declare.
19333         * flow.c (update_life_info): Don't call compute_bb_for_insn
19334         or free_basic_block_vars.
19335         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
19336         (insn_orig_block): Remove.
19337         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
19338         (schedule_block): Keep BLOCK_NUM up-to-date.
19339         (schedule_insns): Use compute_bb_for_insn.
19340         * recog.c (split_all_insns): Likewise.
19341         (peephole2_optimize): Likewise.
19342
19343 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
19344
19345         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
19346         if the pic register is used.
19347
19348 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19349
19350         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
19351         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
19352         if that tests TREE_PERMANENT.
19353
19354 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
19355
19356         * cse.c (invalidate_for_call): Do not remove memory references from
19357         the table here.  It's handled elsewhere.
19358
19359         * haifa-sched.c (add_dependence): Protect references to the
19360         true dependency cache with #ifdef INSN_SCHEDULING.
19361         (remove_dependence): Similarly.
19362
19363         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
19364         to the cfg code that this is a return instruction.
19365         * mn10300.md (return_internal): Similarly.
19366
19367         * combine.c (get_last_value): If the last set of a register
19368         is after subst_low_cuid, then we can not use it to determine
19369         the register's last value.
19370
19371 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
19372
19373         * Makefile.in: Back out previous change.
19374
19375 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
19376
19377         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
19378
19379         * haifa-sched.c (add_dependence): Only check/update the cache
19380         if it exists.
19381         (remove_dependence): Likewise.
19382         (schedule_insns): Only create the true_dependency_cache if the
19383         average number of instructions in a basic block is very large.
19384
19385 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
19386
19387         * Makefile.in (ggc-common.o): Depend on genrtl.h.
19388         (ggc-simple.o): Likewise.
19389         (ggc-page.o): Likewise.
19390
19391 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
19392
19393         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
19394         Prototype for exported functions.
19395         (pre_lcm, pre_rev_lcm): Remove prototypes.
19396         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
19397         (compute_available): Move to lcm.c, and change parameter order.
19398         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
19399         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
19400         (gcse_main): No longer call compute_preds_succs.  Rebuild the
19401         set table after reach pre pass.
19402         (pre_insert_map, pre_delete_map, edge_list): New.
19403         (alloc_pre_mem): Allocate edge vectors.
19404         (free_pre_mem): Delete edge vectors.
19405         (compute_pre_data): Call new edge based lcm routines.
19406         (process_insert_insn): New function.
19407         (insert_insn_end_bb): Use it.
19408         (pre_edge_insert): New function.
19409         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
19410         needed.
19411         (pre_insert_copies): Revamp using new edge based lcm outputs.
19412         (pre_delete): Likewise.
19413         (one_pre_gcse_pass): Insert & remove fake edges to the exit
19414         block.
19415         (compute_code_hoist_vbeinout): New new edge based routines.
19416         * lcm.c: Remove all the old LCM functions.  Replace with new ones
19417         that work with the new cfg datastructures and work with edges
19418         instead of blocks.
19419
19420 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19421
19422         * reload.h (struct reload): Add new fields "mode" and "nregs".
19423         * reload1.c: Change all occurrences of reload_mode and reload_nregs
19424         to reference the "mode" and "nregs" field within struct reload.
19425
19426 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
19427
19428         * haifa-sched.c (true_dependency_cache): New.
19429         (add_dependence): Use the true dependency cache to avoid expensive
19430         walks down the LOG_LINKS dependency list.  Add entries to the
19431         cache as necessary.
19432         (remove_dependence): Remove entries from the true dependency cache
19433         as needed.
19434         (schedule_insns): Allocate and initialize and free the true
19435         dependency cache.
19436
19437         * haifa-sched.c (schedule_insns): Do not remove inter-block
19438         dependencies anymore.
19439
19440 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
19441
19442         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
19443         * i386/t-winnt: Likewise.
19444
19445 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
19446
19447         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
19448
19449 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
19450
19451         * Makefile.in (LANGUAGES): Omit "proto".
19452         (clean): Remove stale comment about removing unprotoize.c.
19453
19454 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19455
19456         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
19457         using arithmetic on void pointers.
19458
19459 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
19460
19461         * haifa-sched.c (compute_block_forward_dependencies): Only check
19462         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
19463
19464 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
19465
19466         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
19467         (expr_equiv_p): Reject memories with different alias sets.
19468
19469 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
19470
19471         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
19472         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
19473         (f_options): Add "bounded-pointers" and "bounds-check" entries.
19474         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
19475         (lang_init): Set default for flag_bounds_check if still "unspecified".
19476
19477 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19478
19479         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
19480
19481 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19482
19483         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
19484         instructions.
19485
19486 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19487
19488         * config/c4x/c4x.md (*db_noclobber,
19489         *decrement_and_branch_until_zero_noclobber): New patterns and
19490         associated splitters.
19491
19492 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19493
19494         * config/c4x/c4x.md (parallel instruction patterns): Rework
19495         constraints to keep reload happy.
19496
19497 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19498
19499         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
19500         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
19501         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
19502         Add new patterns and associated post-reload splitters.
19503
19504 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19505
19506         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
19507
19508 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19509
19510         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
19511         if appropriate.
19512         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
19513
19514 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19515
19516         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
19517         memory mode.
19518
19519 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
19520
19521         * pa.c (move_operand): Rely on memory_address_p to determine the
19522         validity of non-indexed memory addresses.
19523         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
19524         operand in DFmode and SFmode when generating PA2.0 code.
19525
19526 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
19527
19528         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
19529
19530 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
19531
19532         * mips.c (function_prologue): Fix argument types.
19533         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
19534         (casesi_internal): Write to the scratch register.
19535
19536 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
19537
19538         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
19539         to U_CHAR **.
19540         (parse_charconst): Delete unnecessary cast when calling
19541         cpp_parse_escape.
19542         (cpplib.h): Kill prototype of cpp_parse_escape.
19543
19544 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
19545
19546         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
19547         * unroll.c (unroll_loop): Cast return value of alloca.
19548         * i370/i370.c: Include function.h and toplev.h.
19549         (i370_label_scan): Remove c++ commented abort.
19550         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
19551         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
19552         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
19553         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
19554
19555 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
19556
19557         * config/t-freebsd: Do not override USER_H.
19558         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
19559
19560 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
19561                           Mumit Khan  <khan@xraylith.wisc.edu>
19562
19563         * c-parse.in (component_decl): Support anonymous struct/union.
19564         (%expect): Update.
19565         * c-parse.y: Regenerate.
19566         * c-parse.c: Likewise.
19567         * objc/objc-parse.y: Likewise.
19568         * objc/objc-parse.c: Likewise.
19569         * c-decl.c (finish_struct): Don't sort the fields.
19570         (field_decl_cmp): Delete unused function.
19571
19572 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
19573
19574         * sparc.md (movsf_const_intreg): Revert last constraint change.
19575         (movdf_const_intreg_sp32): Likewise.
19576
19577 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
19578
19579         * cse.c: Include hashtab.h instead of splay-tree.h
19580         (struct cse_reg_info): No longer use variant union.  Add new
19581         field "regno".  All references changed to avoid union.
19582         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
19583         (free_cse_reg_info): Remove.
19584         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
19585         (get_cse_reg_info): Revamp to use expandable hash tables instead
19586         of splay trees.  Initialize new fields in cse_reg_info structure.
19587         (new_basic_block): Similarly.
19588
19589 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
19590
19591         * genrecog.c (message_with_line): Prototype.
19592         (validate_pattern): Pass along the set for the dest, not a flag.
19593         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
19594         Check for PC/CC0 as sources.
19595         (nodes_identical): Check for children position match before
19596         allowing the combination.
19597
19598         * rtl.c (read_rtx): Track line number across \\\n.
19599
19600 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
19601
19602         * mips.h (SPECIAL_MODE_PREDICATES): New.
19603         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
19604         (movdi+1, movsi+1): Add output reload constraint.
19605         (casesi_internal): Likewise.  Fix commentary.
19606         (return_internal): Use pmode_register_operand.
19607
19608 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
19609
19610         * 1750a.md (movstrqi): Add missing output reload constraint.
19611         (call_value): Likewise.
19612         * a29k.md (cpxxx patterns): Add missing match_operator mode.
19613         (jmpfdec): Add missing inout reload constraint.
19614         * elxsi.md (addsi patterns): Add missing output reload constraint.
19615         (move from sp): Use @ alternates.
19616         (call_value): No constraint on output.
19617         * fr30.md (movsi_pop): Add missing output reload constraint.
19618         (movsf_constant_store): Likewise.
19619         (splits): Remove constraints.
19620         (subsi3): Add missing mode.
19621         * i370.md (cmpstrsi+1): Add missing output reload constraint.
19622         (call_value): Likewise.
19623         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
19624         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
19625         * m32r.md (movsicc_internal): Add output reload constraint.
19626         (movstrsi_internal): Add inout reload constraints.
19627         * m88k.h (reg_names): Don't declare.
19628         (SPECIAL_MODE_PREDICATES): New.
19629         * m88k.md (*): Use register_operand not reg_or_0_operand
19630         on destinations.
19631         * mn10200.h (PREDICATE_CODES): New.
19632         * ns32k.md (ffs pattern): Add output reload constraint.
19633         * pdp11.md (sob pattern): Add inout reload constraint.
19634         * sh.md (splits): Remove constraints.
19635         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
19636         * v850.md (pattern_is_ok_for_epilogue): Likewise.
19637         * vax.md (jgequ pattern): Add inout reload constraint.
19638
19639 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
19640
19641         * configure.in (djgpp): Revert previous patch.
19642         * configure: Rebuit.
19643         * config/i386/djgpp.h: Revert previous patch.
19644
19645 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
19646
19647         * fixinc/inclhack.def: Restore patch lost during last merge of
19648         "no_bogosity" branch.
19649         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
19650
19651 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
19652
19653         * fixincludes: Add a HPUX 11 fix for inttypes.h.
19654         * fixinc/inclhack.def: Same.
19655         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
19656
19657 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
19658
19659         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
19660         as the base of a PLUS.
19661
19662 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19663
19664         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
19665         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
19666
19667 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
19668
19669         * pa.md (post_stw+1): Use pmode_register_operand.
19670         (dcacheflush, icacheflush): Likewise.
19671
19672         * i386.md (movstricthi_1): Allow r/r.
19673
19674 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
19675
19676         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
19677         to (not (and (arg0) (arg1))). Similary for and.
19678
19679         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
19680         fallthrough to associate code.
19681         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
19682         bits in common.
19683
19684         * combine.c (simplify_logical): Convert XOR to IOR if operands have
19685         no bits in common; remove XOR to ROTATE conversion.
19686
19687 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19688
19689         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
19690
19691 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19692
19693         * config/c4x/c4x.c (dst_operand): New.
19694         (PREDICATE_CODES): Update.
19695         * config/c4x/c4x.h (dst_operand): Declare it.
19696         * config/c4x/c4x.md:  Define mode for each unspec usage.
19697         (move patterns):  Use dst_operand predicate instead of src_operand.
19698         (movqi_update, movqf_update): Delete.
19699
19700 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
19701
19702         * recog.c (pmode_register_operand): New.
19703         * recog.h: Declare it.
19704         * genrecog.c (pred_codes): Likewise.
19705         (special_mode_pred_table): Likewise.
19706         (validate_pattern): Don't warn no mode for address_operand.
19707
19708         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
19709         if the operand is not insn-like.
19710
19711 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
19712                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
19713
19714         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
19715
19716 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
19717
19718         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
19719         instead of general_operand in a SET_DEST.  Use const_double_operand
19720         instead of an explicit test against CONST_DOUBLE.
19721         (movsf_const_lo): Add missing register mode.
19722         (goto_handler_and_restore): Add auxiliary test for Pmode.
19723         (flush): Adjust to use address_operand.
19724         (return_sf_no_fpu): Add missing output constraint.
19725
19726 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
19727
19728         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
19729         for call return value.
19730         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
19731
19732 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
19733
19734         * toplev.c (main): Only warn about options for other languages.
19735         * collect2.c (main): Pass -w to sub-gcc.
19736
19737 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
19738
19739         * flow.c (propagate_block): Add call-clobbered registers to
19740         significant too.
19741
19742         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
19743         zapping mem_set_list.
19744         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
19745         (mark_set_1, mark_used_regs): Likewise.
19746
19747 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
19748
19749         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
19750
19751 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
19752
19753         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
19754         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
19755         options. Also add a new item "C-only Warning Options" to the
19756         option summary.
19757
19758 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
19759
19760         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
19761         from multiple calls.
19762
19763 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
19764
19765         * i386.md (call value patterns): Move to the end of the file.
19766         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
19767
19768 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
19769
19770         * configure.in (djgpp configuration): Define extra_objects..
19771         * configure: Rebuilt.
19772         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
19773         (DTORS_SECTION_ASM_OP): Define.
19774         (INIT_SECTION_ASM_OP): Define.
19775         (FINI_SECTION_ASM_OP): Define.
19776         (DATA_SECTION_ASM_OP): Define.
19777         (TEXT_SECTION_ASM_OP): Define.
19778         (EH_FRAME_SECTION_ASM_OP): Define.
19779         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
19780         (STARTFILE_SPEC): Add crtbegin.o.
19781         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
19782         to here from LINK_COMMAND_SPEC.
19783         (DO_GLOBAL_CTORS_BODY): Define.
19784         (CRTSTUFF_USE_FINI_SECTION): Define
19785         (HAS_INIT_SECTION): Delete.
19786
19787 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
19788
19789         * Makefile.in (all.cross): Depend on xcpp$(exeext).
19790
19791 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
19792
19793         * pa.h (PREDICATE_CODES): New.
19794
19795         * genrecog.c (validate_pattern): Condense the destination
19796         non-lvalue message.
19797
19798 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
19799
19800         * alpha.md (call-1): Supply missing mode for operator.
19801         (*): Add missing output reload constraints.  Remove constraints
19802         from define_splits.
19803
19804         * i386.h (SPECIAL_MODE_PREDICATES): New.
19805         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
19806         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
19807         (addsi_lea_3): Add missing mode for op 3.
19808         (prologue_set_got, prologue_get_pc): Add missing modes.
19809         (*) Add missing output reload constraints.
19810
19811 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
19812
19813         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
19814         check for member bit-size overflow and use var_size if it occurs.
19815         (layout_record): Use bitsize_int() to define the type size in bits.
19816         Likewise for computation and assignment to DECL_FIELD_BITPOS.
19817         (layout_decl): Likewise when assigning to DECL_SIZE.
19818
19819 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
19820
19821         * genrecog.c (validate_pattern): Typo last change.  Verify
19822         that output operands have output reloads.
19823
19824 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
19825
19826         * genrecog.c (special_mode_pred_table): New.
19827         (NUM_SPECIAL_MODE_PREDS): New.
19828         (find_operand): New.
19829         (validate_pattern): New argument `insn'.  Warn for assignment to
19830         any predicate accepting non-lvalues.  Conditionaly warn for
19831         match_operand without a mode.  Try much harder to match source
19832         and destination modes on a set.
19833         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
19834
19835 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
19836
19837         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
19838
19839 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
19840
19841         * combine.c (simplify_logical): Recognize xor pattern that encodes
19842         rotation.
19843
19844 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
19845
19846         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
19847         alignment.
19848
19849 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
19850
19851         * ggc-page.c (MAP_FAILED): Provide default.
19852
19853 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
19854
19855         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
19856         * sparc.h (PREDICATE_CODES): Update.
19857
19858 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
19859
19860         * alpha.c (some_ni_operand): New.
19861         * alpha-protos.h: Declare it.
19862         * alpha.h (PREDICATE_CODES): Update.
19863         * alpha.md (sXaddq reload insns): Use some_ni_operand
19864         for SET_DEST instead of some_operand.
19865
19866 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
19867                           Jim Wilson  <wilson@cygnus.com>
19868
19869         * genrecog.c (maybe_both_true_2): Don't compare modes of
19870         two DT_pred tests.
19871         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
19872         after find_afterward.
19873         (debug_decision_1): Dump next and afterward codes.
19874
19875 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
19876
19877         * rtl.c (dump_and_abort): Remove.
19878         (fatal_with_file_and_line): New.
19879         (fatal_expected_char): New.
19880         (read_rtx_lineno, read_rtx_filename): New.
19881         (read_skip_spaces): Track line number.
19882         (read_name): Use fatal_with_file_and_line.
19883         (read_rtx): Use fatal_expected_char.  Track line number.
19884         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
19885
19886         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
19887         if it isn't a CODE_LABEL.
19888
19889         * genattr.c (main): Set read_rtx_filename.
19890         * genattrtab.c (main): Likewise.
19891         * gencodes.c (main): Likewise.
19892         * genconfig.c (main): Likewise.
19893         * genemit.c (main): Likewise.
19894         * genextract.c (main): Likewise.
19895         * genflags.c (main): Likewise.
19896         * genopinit.c (main): Likewise.
19897         * genoutput.c (main): Likewise.
19898         * genpeep.c (main): Likewise.
19899
19900         * genrecog.c (decision_test.u.insn): Add `lineno'.
19901         (pattern_lineno, error_count): New variables.
19902         (message_with_line): New.
19903         (add_to_sequence): Break out checking code to ...
19904         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
19905         (merge_insn): Use message_with_line.
19906         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
19907         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
19908
19909 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19910
19911         * expr.c (store_constructor): Clear union if constructor is empty.
19912
19913 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
19914
19915         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
19916         Add !endian checks.  Change %{...} to %(...).
19917
19918 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
19919
19920         * i386.md (*addsi3_cc): Renamed from addcsi3.
19921         (*addsi3_carry): Renamed from addxsi3.
19922         (*subsi3_cc): Renamed from subcsi3.
19923         (*subsi3_carry): Renamed from subxsi3.
19924         (*xorqi_cc_1): Renamed from xorcqi_1.
19925         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
19926         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
19927
19928 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
19929
19930         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
19931         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
19932
19933 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
19934
19935         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
19936         climb up the chain of insns.
19937
19938 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
19939
19940         * genrecog.c (write_subroutine): Careful for null trees.
19941         (process_tree): Don't elide empty functions.
19942
19943 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
19944
19945         * Makefile.in (genrtl.o): Depend on ggc.h.
19946         * configure.in (valloc): Probe for it.
19947         (with-gc): Use ggc-page if valloc present.
19948         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
19949         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
19950         (ggc_alloc_string): Moved from ggc-page.c.
19951         * ggc-none.c (ggc_alloc_obj): New.
19952         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
19953         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
19954         (struct globals): Likewise for dev_zero_fd.
19955         (init_ggc): Likewise for it's initialization.
19956         (ggc_allocated_p): Move careful dereference from ...
19957         (ggc_lookup_page_table): ... here.  Delete.
19958         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
19959         (alloc_anon): Use valloc if no mmap.
19960         (release_pages): Use free if using valloc.
19961         (ggc_alloc_obj): Renamed from alloc_obj.
19962         (ggc_set_mark): Renamed from mark_obj.
19963         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
19964         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
19965         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
19966         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
19967         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
19968         (ggc_collect): Use fp printing instead of our own rounding.
19969         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
19970         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
19971         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
19972         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
19973         (struct ggc_string, struct ggc_any): Delete.
19974         (offsetof): Provide default definition.
19975         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
19976         (PTR_KEY): New.
19977         (struct ggc_mem): New, from corpse of ggc_any.
19978         (struct ggc_status): Delete.
19979         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
19980         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
19981         (n_strings_collected, n_anys_collected): Delete.
19982         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
19983         (ggc_alloc_string, ggc_alloc): Delete.
19984         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
19985         (ggc_free_string, ggc_free_any): Delete.
19986         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
19987         (ggc_compare_addresses, ggc_mark_string): Delete.
19988         (ggc_mark_string_if_gcable, ggc_mark): Delete.
19989         (search_data): Delete.
19990         (struct globals): New.
19991         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
19992         (tree_insert, tree_lookup): New.
19993         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
19994         (clear_marks, sweep_objs): New.
19995         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
19996         (init_ggc): Set allocated_last_gc.
19997         (ggc_push_context): Gut.  Use G.context.
19998         (ggc_pop_context): Likewise.
19999         (ggc_pop_context_1): New.
20000         (debug_ggc_tree): New.
20001         (debug_ggc_balance, tally_leaves): New.
20002         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
20003         (ggc_mark_string_if_gcable): Remove decl.
20004         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
20005         (ggc_mark_rtvec_children): New.
20006         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
20007         (ggc_mark_if_gcable): New decl.
20008         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
20009         (ggc_alloc_tree, ggc_alloc): Likewise.
20010         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
20011         (ggc_alloc_obj): New decl.
20012         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
20013         (ggc_alloc_tree, ggc_alloc): Likewise.
20014         (ggc_set_mark): New decl.
20015         * rtl.h (struct rtx_def): Remove gc_mark.
20016         (struct rtvec_def): Likewise.
20017         * tree.h (struct tree_common): Likewise.
20018
20019 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
20020
20021         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
20022         float_format and thread_file definitions.
20023         * configure: Rebuilt.
20024
20025 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
20026
20027         * extend.texi (Function Names): Document types of function names.
20028
20029 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20030
20031         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
20032         an earlyclobbered output conflict with RELOAD_INPUT reloads.
20033
20034 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20035
20036         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
20037
20038 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20039
20040         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
20041
20042 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
20043
20044         * collect2.c (main): Do prelimnary link on AIX if rflag.
20045
20046 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
20047
20048         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
20049         __CTOR_LIST__ in opposite order, which is the correct order for sorted
20050         constructors.
20051         (__do_global_dtors): similarly for __DTOR_LIST__.
20052
20053 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
20054                                 Diego Novillo <dnovillo@cygnus.com>
20055
20056         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
20057         FPUL_REGS.
20058
20059 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
20060
20061         * fixincl/*: Merged "no_bogosity" branch
20062         * fixincl/fixlib.h: protect against doubly defining t_bool
20063         * fixincl/server.h: protect against doubly defining t_bool
20064
20065 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
20066
20067         * genoutput.c: Include toplev.h.
20068
20069 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
20070
20071         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
20072         Undef.
20073         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
20074         * configure: Regenerate.
20075
20076 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
20077
20078         * gcse.c (delete_null_pointer_checks): Returns void.
20079
20080 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20081
20082         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
20083         * emit-rtl.c (copy_insn_1): Likewise.
20084
20085 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
20086
20087         * config/mips/mips.c (mips_build_va_list): Correct
20088         TREE_CHAIN setting when hard-float.
20089         (mips_va_start): Use corrected setting.
20090         (mips_va_arg): Likewise.  Also pass a tree to build of
20091         POSTINCREMENT_EXPR rather than a naked 'int'.
20092
20093 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
20094
20095         * ggc.h (ggc_push_context): Fix comment.
20096         (ggc_pop_context): Likewise.
20097         (mark_string_if_gcable): Likewise.
20098         * ggc-common.c (ggc_mark_rtx_children): Use
20099         ggc_mark_string_if_gcable.
20100         * ggc-page.c (ggc_lookup_page_table): New function.
20101         (ggc_allocated_p): Likewise.
20102         (mark_obj): Fix formatting.
20103         (ggc_mark_string_if_gcable): New function.
20104         * ggc-simple.c (ggc_allocated_strings): New variable.
20105         (ggc_strings_used): Likewise.
20106         (ggc_compare_addresses): New function.
20107         (ggc_pop_context): Pop the `any' memory too.
20108         (ggc_mark_string_if_gcable): New function.
20109         (ggc_collect): Initialize and tear down ggc_allocated_strings.
20110
20111 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
20112
20113         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
20114         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
20115         * rs6000.c (expand_block_move): Match movstrsi_?reg register
20116         changes.
20117
20118 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
20119
20120         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
20121         (sched_reg_live_length, sched_reg_basic_block): Delete.
20122         (current_block_num, bb_live_regs, old_live_regs): Delete.
20123         (dead_notes, struct sometimes): Delete.
20124         (sched_note_set, birthing_insn_p): Delete.
20125         (adjust_priority): Gut useless reg lifetime code.
20126         (create_reg_dead_note, attach_deaths): Delete.
20127         (attach_deaths_insn, new_sometimes_live): Delete.
20128         (finish_sometimes_live): Delete.
20129         (find_pre_sched_live, find_post_sched_live): Delete.
20130         (update_reg_usage): Delete.
20131         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
20132         (schedule_insns): Delete reg lifetime code.
20133         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
20134         (unlink_other_notes): Adjust REG_NOTE commentary.
20135         (reemit_notes): Use REG_SAVE_NOTE.
20136         (schedule_block): Likewise.
20137         (schedule_region): Allocate bitmap of blocks in region.  Use
20138         count_or_remove_death_notes.  Use update_life_info.
20139
20140         * rtl.h (REG_SAVE_NOTE): New.
20141         * rtl.c (reg_note_name): Update.
20142
20143 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
20144
20145         * combine.c (refresh_blocks, need_refresh): New.
20146         (combine_instructions): Allocate refresh_blocks.  Invoke
20147         update_life_info if needed.
20148         (distribute_notes): Mark refresh_blocks instead of installing
20149         USE insns.
20150         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
20151         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
20152
20153         * Makefile.in (recog.o): Depend on basic-block.h.
20154
20155 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
20156
20157         * genrecog.c (add_to_sequence): Thinko last change: delete
20158         shadowing allow_const_int variable.
20159
20160 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20161
20162         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
20163         __GNUC__ and __GNUC_MINOR__.
20164
20165         * gansidecl.h: Likewise.
20166
20167         * rtl.c: Likewise.
20168
20169         * rtl.h: Likewise.
20170
20171         * toplev.h: Likewise.
20172
20173         * tree.c: Likewise.
20174
20175         * tree.h: Likewise.
20176
20177         * varray.c: Likewise.
20178
20179         * varray.h: Likewise.
20180
20181 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20182
20183         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
20184         use one before a jump table.
20185
20186         * rtl.def (ADDRESS): Change documentation to match reality.
20187         * md.texi: Don't document it.
20188         * gmicro.md (load address pattern): Use 'p' constraint, delete use
20189         of ADDRESS rtx.
20190
20191         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
20192
20193 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
20194
20195         * genrecog.c (add_to_sequence): Move allow_const_int test outside
20196         known predicate block; default allow_const_int true.
20197         (debug_decision_list): New.
20198
20199 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
20200
20201         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
20202
20203 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
20204
20205         * gcse.c (gcse_main): Avoid global optimizations if we have a
20206         large number of basic blocks and the ratio of edges to blocks
20207         is high.
20208         (delete_null_pointer_checks): Likewise.
20209
20210 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
20211
20212         * c-common.c (check_format_info): Warn if format string isn't a
20213         string literal.
20214
20215 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
20216
20217         * configure.in (arm*-*-*): Don't let autoconf remove brackets
20218         * configure: regenerate
20219
20220 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
20221
20222         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
20223         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
20224         (peepholes): Re-enable.
20225
20226 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
20227
20228         * Makefile.in (flow.o): Depend on TREE_H.
20229         * basic-block.h (REG_SET_EQUAL_P): New.
20230         (XOR_REG_SET): New.
20231         (n_edges): Declare.
20232         (free_regset_vector): Remove declaration.
20233         (flow_delete_insn_chain): Declare.
20234         (enum update_life_extent): New.
20235         (update_life_info, count_or_remove_death_notes): Declare.
20236         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
20237         Verify register live at bb->global_live_at_start before adding USE.
20238         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
20239         (CLEAN_ALLOCA): New.
20240         (n_edges): New.
20241         (PROP_*): New flags.
20242         (find_basic_blocks_1): Use alloc_EXPR_LIST.
20243         (clear_edges): Zero n_edges.
20244         (make_edge): Increment n_edges.
20245         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
20246         (flow_delete_insn_chain): Export.
20247         (delete_block): Decrement n_edges.
20248         (merge_blocks_nomove): Likewise.
20249         (life_analysis): Give life_analysis_1 PROP flags.
20250         (verify_wide_reg_1, verify_wide_reg): New.
20251         (verify_local_live_at_start): New.
20252         (update_life_info): Rewrite to call into propogate_block.
20253         (mark_reg): New.
20254         (mark_regs_live_at_end): After reload, if epilogue as rtl,
20255         always mark stack pointer.  Conditionally mark PIC register.
20256         After reload, mark call-saved registers, return regsiters.
20257         (life_analysis_1): Accept PROP flags not remove_dead_code.
20258         Call mark_regs_live_at_end before zeroing regs_ever_live.
20259         Use calculate_global_regs_live.  Copy global_live_at_end before
20260         calling final propagate_block.  Zero reg_next_use on exit.
20261         (calculate_global_regs_live): New.
20262         (allocate_bb_life_data): Don't allocate bb->local_set.
20263         (init_regset_vector, free_regset_vector): Remove.
20264         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
20265         Test flags before every operation.  Warn if prologue/epilogue insn
20266         would have been deleted.
20267         (mark_set_regs, mark_set_1): Accept and use FLAGS.
20268         Use alloc_EXPR_LIST.
20269         (mark_used_regs): Accept and use FLAGS, not FINAL.
20270         Remove special handling for RETURN.
20271         (try_pre_increment): Use alloc_EXPR_LIST.
20272         (dump_flow_info): Dump n_edges.
20273         (unlink_insn_chain, split_hard_reg_notes): Remove.
20274         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
20275         (find_insn_with_note, new_insn_dead_notes): Remove.
20276         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
20277         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
20278         (replace_insns): Remove.
20279         (count_or_remove_death_notes): New.
20280         (verify_flow_info): Abort on error after all checks.
20281         (remove_edge): Decrement n_edges.
20282         (remove_fake_edges): Tweak format.
20283         * haifa-sched.c (schedule_insns): Use split_all_insns.
20284         * output.h (update_life_info): Remove declaration.
20285         * recog.c (split_all_insns): From the corpse of split_block_insns,
20286         do the whole function block by block.  Use update_life_info.
20287         (recog_last_allowed_insn): New.
20288         (recog_next_insn): Mind it.
20289         (peephole2_optimize): Set it.  Walk backwards through blocks.
20290         Use update_life_info.
20291         * rtl.h (update_flow_info, replace_insns): Remove declarations.
20292         (split_all_insns): Declare.
20293         * toplev.c (rest_of_compilation): Thread prologue before flow2.
20294         Use split_all_insns.
20295
20296         * i386.md (or -1 peep2s): Disable.
20297
20298 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
20299
20300         * config/mips/mips.md (movstrsi+[123]) : Combine these into
20301         a single pattern.  Scrap the 'd' versions as unnecessary.
20302
20303         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
20304         tablejump_mips162,tablejump_internal4): The operands to a
20305         label_ref must be VOIDmode.
20306
20307 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20308
20309         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
20310
20311 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
20312
20313         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
20314
20315 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
20316
20317         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
20318         cache every function if ggc_p.
20319
20320 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20321
20322         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
20323         instead of copy_rtx.  Accept sequences that contain asm statements.
20324         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
20325         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
20326         orig_asm_operands_vector, copy_asm_operands_vector,
20327         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
20328         variables.
20329         * rtl.h (copy_insn, copy_insn_1): Declare.
20330
20331 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20332
20333         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
20334
20335         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
20336         arguments to `current_file_function_operand'.
20337
20338         * genrecog.c: Include hard-reg-set.h and resource.h in the
20339         generated output file.
20340
20341         * real.c: Include tm_p.h.
20342
20343 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20344
20345         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
20346         output operand.
20347
20348 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
20349
20350         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
20351         before the fctiwz insn.
20352
20353 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20354                           Mark Mitchell  <mark@codesourcery.com>
20355
20356         * tree.c (make_lang_type_fn): New funtion pointer.
20357         (make_lang_type): Call it.
20358         * tree.h (make_lang_type): Declare.
20359         (make_lang_type_fn): Likewise.
20360         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
20361
20362 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
20363
20364         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
20365         make sure that HIGH instructions are copied into BASE_REGS.
20366
20367 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
20368
20369         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
20370
20371 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
20372
20373         * c-decl.c (finish_struct): Use simpler method of
20374         removing elements of a singly-linked list.
20375
20376 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
20377
20378         * alpha.md (peephole2's): Comment out peephole2's that generate
20379         buggy code.
20380
20381 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
20382
20383         * genrecog.c (add_to_sequence): Disable mode check for
20384         wildcard matches.
20385
20386 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20387
20388         * ggc-simple.c (init_ggc): Set empty_string.
20389
20390 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
20391
20392         * configure.in: Detect mmap.  Add --with-gc=foo to select
20393         garbage collector; default to page if mmap available.
20394         * Makefile.in (GGC): Substitute.
20395
20396 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
20397
20398         * c-decl.c (ggc_p): Enable.
20399
20400 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20401
20402         * flow.c (verify_flow_info): Make it extern & unconditionally define.
20403
20404 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
20405
20406         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
20407         string for little-endian-data.
20408
20409 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
20410
20411         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
20412         case somebody tries to compile --enable-checking code with gcc
20413         1.34 or such.
20414
20415 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
20416
20417         * genrecog.c (add_to_sequence): Verify operand to label_ref is
20418         VOIDmode.
20419
20420 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
20421
20422         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
20423         * jump.c (jump_optimize_1): Document why.
20424
20425 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20426
20427         * collect2.c (scan_prog_file, scan_libraries): Prototype function
20428         pointers and casts for `int_handler' and `quit_handler'.
20429
20430         * flow.c (verify_flow_info, split_hard_reg_notes,
20431         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
20432         remove_edge, remove_fake_successors): Add static prototypes.
20433         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
20434         (mark_set_1): Initialize variable `regno'.
20435         (unlink_insn_chain): Likewise for variable `curr'.
20436         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
20437
20438         * loop.c (strength_reduce): Initialize variable
20439         `unrolled_insn_copies'.
20440         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
20441         prototypes.  Change these functions to take const PTR parameters
20442         to avoid prototype conflict when used as the comparson argument
20443         for qsort.
20444         (check_dbra_loop): Initialize variable `comparison_val'.
20445
20446         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
20447         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
20448         (find_valid_class): Initialize variable `best_class'.
20449         (find_reloads): Call memcpy, not bcopy.
20450
20451         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
20452         (hard_reg_use_compare): Don't needlessly cast away const.
20453         (reload_reg_class_lower): Likewise.
20454         (choose_reload_regs): Initialize variable `regno'.
20455
20456 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
20457
20458         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
20459
20460 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
20461
20462         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
20463         ({,d}discard): Add forward declarations.  Declare parameter as
20464         unused.
20465         (main_without_main): Explicitly declare return type to be int.
20466         (memcpy): Properly declare.
20467
20468         * libgcc2.c (toplevel): If inhibit_libc is defined and not
20469         building the trampoline support, declare malloc, free, and
20470         atexit.
20471         (__clear_cache): Mark arguments as potentially unused.
20472
20473         * frame.c (toplevel): If inhibit_libc is defined, declare
20474         malloc and free.
20475
20476 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
20477
20478         * flow.c (make_edge): Accept an optional 2D bitmap in which
20479         to cache edge existence.  Update all callers.
20480         (make_label_edge, make_eh_edge): Pass through the edge cache.
20481         (make_edges): Provide the cache.
20482
20483 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20484
20485         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
20486         a char*.
20487         (local_mbtowc): Change the type of variable `i' from int to size_t.
20488
20489         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
20490         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
20491
20492 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
20493
20494         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
20495         after other includes that define the appropriate types.  Include
20496         tm_p.h for getting user prototypes.
20497         * ggc-callbacks.c (toplevel): Ditto.
20498         * ggc-none.c (toplevel): Ditto.
20499         * gcc-page.c (toplevel): Ditto.
20500         * ggc-simple.c (toplevel): Ditto.
20501
20502 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
20503                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
20504
20505         * config/mips/mips.c (mips_move_2words): Split doubles if
20506         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
20507
20508 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
20509
20510         * genrecog.c (struct decision_test): New.
20511         (struct decision): Remove test-related members, sort the rest by size.
20512         (IS_SPLIT): Simplify.
20513         (new_decision, new_decision_test): New.
20514         (add_to_sequence): Use them.  No special handling for args of
20515         non-MATCH codes.
20516         (maybe_both_true): Renamed from not_both_true; return sense changed.
20517         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
20518         of maybe_both_true and adjusted for decision_test.
20519         (position_merit): Remove.
20520         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
20521         (merge_accept_insn): New, broken out of merge_trees.
20522         (merge_trees): Use them.  No special case for c_test; no node
20523         splitting; use test type instead of position_merit.
20524         (factor_tests): New.
20525         (simplify_tests): New.
20526         (break_out_subroutines): Don't write code now.
20527         (find_afterward): New.
20528         (write_afterward, write_switch, write_cond): New.
20529         (write_action, is_unconditional): New.
20530         (write_node): New.  Use them.
20531         (write_tree_1): Rewrite.  Use the new functions above.
20532         (write_tree): Remove afterward processing.
20533         (write_subroutine): Simplify function variant emission.
20534         (write_subroutines): New.
20535         (same_codes, clear_codes): Remove.
20536         (same_modes, clear_modes): Remove.
20537         (write_header): New, broken out of main.
20538         (make_insn_sequence): Use new_decision and new_decision_test.
20539         (process_tree): New, broken out of main.
20540         (main): Adjust for merge_trees interface change.
20541         Don't #define operands in the output file.
20542         (record_insn_name): New, broken out of make_insn_sequence.
20543         (debug_decision_2, debug_decision_1, debug_decision_0): New.
20544         (debug_decision): New.
20545
20546 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
20547
20548         * resource.c (find_free_register): Mark class_str argument const.
20549         * resource.h: Update prototype to match.
20550
20551         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
20552         * i386.md: Give all anonymous insns names.
20553
20554 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
20555
20556         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
20557         blocks.
20558
20559 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
20560
20561         * toplev.c (dbr_sched_time): Unconditional.
20562         (peephole2_time): New.
20563         (compile_file): Add pass numbers to all of the dump file suffixes.
20564         Dump peephole2_time.  Don't dump times for non-applicable passes.
20565         (rest_of_compilation): Add pass numbers to dump file suffixes.
20566         Conditionalize calls to the scheduler.
20567         * invoke.texi: Update.
20568
20569 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
20570
20571         * flow.c (make_edges): Fix insn iteration.
20572         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
20573         (find_basic_blocks_1): Fix spelling mistake.
20574
20575 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
20576
20577         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
20578         always have side-effects.  Use memset not bzero.
20579         (make_node): Likewise.
20580
20581 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
20582
20583         * stmt.c (expand_anon_union_decl): When any of the elements of the
20584         union is addressable, so is the entire union.
20585
20586 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
20587
20588         * sbitmap.c (sbitmap_ones): Don't set too many bits.
20589
20590         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
20591         * bitmap.c (bitmap_operation): Return true iff TO changed.
20592         (bitmap_equal_p): New.
20593         (bitmap_bit_p): Tidy arithmetic.
20594         (debug_bitmap_file): Likewise.
20595
20596 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
20597
20598         * toplev.c (rest_of_compilation): Turn on cse_not_expected
20599         before cse2 instead of after.
20600
20601 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
20602
20603         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
20604         register offsets.
20605
20606 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
20607
20608         * cppinit.c (is_idchar initializer): Loosen tests to accept
20609         gcc 2.>6 and >2.
20610
20611 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
20612
20613         * mips.md: Define conditional move patterns for floating point
20614         operands and DI mode conditions.
20615
20616 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
20617
20618         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
20619         always have side-effects.
20620
20621 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
20622
20623         * mn10200.c (asm_file_start): Fix typo.
20624
20625         * cppinit.c (is_idchar initializer): Tighten tests for when
20626         to put the table into initialized memory.
20627
20628         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
20629         not an array of rtunion.
20630         * gcc-page.c (ggc_alloc_rtvec): Similarly.
20631         * gcc-simple (ggc_free_rtvec): Similarly.
20632
20633         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
20634         of rtunions.
20635
20636         * mbchar.h: Add missing #endif.
20637
20638         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
20639         (FPBIT, DPBIT): Define.
20640
20641 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20642
20643         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
20644
20645         * profile.c (instrument_arcs, output_gcov_string,
20646         tablejump_entry_p): Add static prototypes.
20647         (output_gcov_string): Constify a char*.
20648
20649         * regmove.c (replacement_quality, fixup_match_2): Add static
20650         prototypes.
20651
20652         * resource.h (reg_dead_p): Add extern prototype.
20653
20654         * rtl.c (trim_filename): Add static prototype.
20655
20656         * scan-decls.c (skip_to_closing_brace): Likewise.
20657
20658         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
20659         (expand_end_case): Initialize variable `range'.
20660         (emit_case_nodes): Remove unused prototype `rtx_fn'.
20661
20662         * varasm.c (asm_emit_uninitialised): Add static prototype.
20663         (asm_emit_uninitialised, assemble_variable): Mark parameter with
20664         ATTRIBUTE_UNUSED.
20665
20666 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20667
20668         * cpplib.c (if_directive_nameo): Add static prototype.
20669
20670         * cse.c (cse_insn): Remove unused variable `p'.
20671
20672         * except.c (create_rethrow_ref, push_entry,
20673         receive_exception_label, new_eh_region_entry, find_func_region,
20674         clear_function_eh_region, process_nestinfo): Add static prototypes.
20675         (get_reg_for_handler): Hide definition.
20676         (process_nestinfo): Initialize variable `extra_handlers'.
20677
20678         * expr.h (expand_builtin_longjmp): Add extern prototype.
20679
20680         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
20681
20682         * function.c (prepare_function_start): Likewise.
20683         (pop_function_context_from): Mark parameter `context' with
20684         ATTRIBUTE_UNUSED.
20685         (push_temp_slots_for_block, flush_addressof): Hide definition.
20686
20687         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
20688         solve_program_flow_graph, calculate_branch_probs,
20689         function_summary, main, fancy_abort): Add prototypes.
20690
20691         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
20692         (add_hash): Constify a char*.
20693
20694         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
20695         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
20696         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
20697
20698         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
20699
20700         * lists.c (free_list, zap_lists): Likewise.
20701
20702 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20703
20704         * alias.c (nonlocal_reference_p): Add static prototype.
20705
20706         * bitmap.c (bitmap_element_allocate): Prototype args in function
20707         pointer cast.
20708
20709         * builtins.c (stabilize_va_list): Add static prototype.
20710         (expand_builtin_va_arg): Constify a char*.
20711
20712         * c-lex.c (getch, put_back, extend_token_buffer_to,
20713         read_line_number, token_getch, token_put_back): Add static
20714         prototypes.
20715
20716         * c-parse.gperf (hash, is_reserved_word): Likewise.
20717
20718         * cccp.c (is_dir_separator): Likewise.
20719
20720 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20721
20722         * graph.h: New file to prototype functions exported by graph.c.
20723
20724         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
20725
20726         * graph.c: Include graph.h.
20727
20728         * toplev.c: Likewise.  Remove redundant prototypes.
20729
20730 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
20731
20732         * invoke.texi: Removed duplicated description for -Q.
20733
20734 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
20735
20736         * extend.texi: Grammar fix in __extension__ text.
20737
20738 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
20739
20740         * md.texi (define_peephole2): New section.
20741
20742 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
20743
20744         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
20745         (mov $-1 to or peepholer): Enable for pentium when optimizing for
20746         speed.
20747
20748 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
20749
20750         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
20751
20752 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
20753
20754         * i386.md (ffs expander): Emit Pentium friendly code for
20755         TARGET_PENTIUM.
20756
20757 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
20758
20759         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
20760         for non-trees.
20761         (build1): Likewise.
20762
20763 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20764
20765         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
20766
20767 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
20768
20769         * config/m68k/m68k.c (use_return_insn): Return false if the pic
20770         register is in use.
20771
20772 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20773
20774         * md.texi (No Constraints): Delete section.
20775         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
20776         * final.c (final_scan_insn): We always have register constraints.
20777         * genattrtab.c: Don't include "insn-config.h".
20778         (write_attr_case): We always have register constraints.
20779         * genconfig.c (register_constraint_flag): Delete.
20780         (walk_insn_part): Don't check whether we have register constraints.
20781         (main): Don't write out "#define REGISTER_CONSTRAINTS".
20782         * genoutput.c (have_constraints): Delete.
20783         (main): Don't set it.
20784         (output_operand_data): We always have constraints.
20785         (scan_operands): Likewise.
20786         (compare_operands): Likewise.
20787         * local-alloc.c (block_alloc): We always have constraints.
20788         (requires_inout): Always compile this function.
20789         * recog.c (extract_insn): We always have constraints.
20790         (constrain_operands, reg_fits_class_p): Always compile these
20791         functions.
20792         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
20793         fields.
20794         (struct insn_operand_data): Likewise.
20795         * regclass.c (regclass): We always have constraints.
20796         (record_reg_classes, copy_cost, record_address_regs,
20797         auto_inc_dec_reg_p): Always compile these functions.
20798         * regmove.c (regmove_optimize): We always have constraints.
20799         * reload.c (find_reloads): Likewise.
20800         * reload1.c (reload): Likewise.
20801         (reload_cse_simplify_operands): Likewise.
20802         * i860.c (output_delay_insn): Likewise.
20803
20804 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
20805
20806         * iris6.h (BUILD_VA_LIST_TYPE): Define.
20807
20808 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
20809
20810         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
20811         for the va_list record.
20812
20813 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
20814
20815         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
20816         prologues.
20817
20818 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
20819
20820         * alias.c: Include insn-flags.h.
20821         * Makefile.in (alias.o): Update.
20822
20823 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
20824
20825         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
20826         to LTU and GEU.  Handle more cases using sbb.
20827
20828 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
20829
20830         * i386.md (truncatexfdf splitters): Do not use subreg.
20831         (fop XFmode patterns): Fix mode in operand testing.
20832
20833 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
20834
20835         * jump.c (jump_optimize_1): Amend last change to test only the
20836         form of the operand, not the insn.
20837
20838         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
20839         not register_operand to determine when B may need preloading.
20840
20841 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
20842
20843         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
20844         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
20845         (call-value patterns): Move to end of file.
20846         (*): Remove mode from label_ref in (pc) context.
20847         (movstrqi): Use memory not general_operand for BLKmode operands.
20848         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
20849         to register_operand operands.
20850         (peep2 patterns): Convert from commented-out peephole patterns.
20851
20852 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20853
20854         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
20855         to BUILT_IN_INIT_DWARF_REG_SIZES.
20856         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
20857         Renamed from BUILT_IN_DWARF_REG_SIZE; call
20858         expand_builtin_init_dwarf_reg_sizes.
20859         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
20860         with __builtin_init_dwarf_reg_size_table.
20861         * dwarf2out.c (struct reg_size_range): Delete.
20862         (expand_builtin_init_dwarf_reg_sizes): New function.
20863         (expand_builtin_dwarf_reg_size): Delete.
20864         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
20865         (expand_builtin_dwarf_reg_size): Don't declare.
20866         * libgcc2.c (dwarf_reg_size_table_initialized): New.
20867         (dwarf_reg_size_table): New.
20868         (init_reg_size_table): New function.
20869         (copy_reg): Use dwarf_reg_size_table.
20870         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
20871         before use.
20872
20873 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
20874
20875         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
20876         Correctly build argument list to constructor and destructor functions.
20877
20878 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
20879
20880         * c-tree.h (warn_float_equal): Declare.
20881         * c-decl.c (warn_float_equal): Define.
20882         (c_decode_option): Recognize -W[no-]float-equal.
20883         * c-typeck.c (build_binary_op): Conditionally warn
20884         about equality tests of floating point types.
20885         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
20886         * invoke.texi: Add docs for -Wfloat-equal warning.
20887
20888 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
20889
20890         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
20891         generating RTL directly.
20892         * mips.h (INIT_TARGET_OPTABS): Likewise.
20893         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
20894
20895         * expr.h (init_mov_optab): Delete declaration
20896
20897         * h8300.c (WORD_REG_USED): Update to avoid useless register
20898         saves in interrupt functions and functions which never return.
20899
20900         * cse.c (struct set): Delete inner_dest_loc field.
20901         (cse_insn): Remove assignments to inner_dest_loc field.
20902
20903 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
20904
20905         * ggc-page.c: Don't include <unistd.h> etc taken care of
20906         by "system.h".  Include <sys/mman.h> afterward.
20907
20908 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
20909
20910         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
20911         ggc_alloc_string.
20912
20913 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
20914
20915         * xcoffout.c (xcoffout_declare_function): Add documentation.
20916         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
20917         TARGET_64BIT.  Compare constant to -1, not bit pattern.
20918         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
20919         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
20920         gen_movsi typos.
20921
20922 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
20923
20924         * dwarf2out.c (add_abstract_origin_attribute): Abort if
20925         origin_die is NULL.
20926         (gen_inlined_enumeration_type_die): Do not abort if the type has
20927         not been writeen out.
20928         (gen_inlined_structure_type_die): Do not abort if the type has
20929         not been writeen out.
20930         (gen_inlined_union_type_die): Do not abort if the type has
20931         not been writeen out.
20932         (gen_tagged_type_instantiation_die): Do not abort if the type
20933         has not been written out.
20934
20935 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20936
20937         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
20938         call it.
20939         * reg-stack.c (straighten_stack): Copy hard reg set with
20940         COPY_HARD_REG_SET.
20941
20942 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
20943
20944         * builtins.c (stabilize_va_list): Stabilize array type va_list
20945         to a pointer type, not the base record type.
20946         (expand_builtin_va_copy): Dereference the pointers explicitly;
20947         use the correct size for the copy.
20948
20949         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
20950         (rs6000_va_arg): Likewise.
20951
20952 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
20953
20954         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
20955
20956 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
20957
20958         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
20959         field.
20960         (DECL_BUILT_IN_CLASS): Adjust accordingly.
20961
20962 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
20963
20964         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
20965         (init_ggc): Use it instead of a constant.
20966         (ggc_collect): Bound allocated_last_gc by it.
20967
20968 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
20969
20970         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
20971         with va_list.
20972
20973 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
20974
20975         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
20976         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
20977         * configure:  Regen.
20978         * config/mips/openbsd.h:  New, OpenBSD little endian target.
20979         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
20980         * config/mips/xm-openbsd.h:  New, OpenBSD host.
20981
20982 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
20983
20984         * config/m68k/m68k.c (output_function_prologue,
20985         output_function_epilogue): Use
20986         current_function_uses_pic_offset_table instead of regs_ever_live
20987         to decide whether to save/restore pic register.
20988         (legitimize_pic_address): Don't modify regs_ever_live any more.
20989
20990 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
20991
20992         * function.h (struct function): Add x_dont_save_pending_sizes_p.
20993         * stor-layout.c (variable_size): Don't add sizes to the pending
20994         sizes list if x_dont_save_pending_sizes_p is set.
20995
20996 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
20997
20998         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
20999         for symbolic_operand().
21000         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
21001
21002 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21003
21004         * combine.c (gen_rtx_combine): Add missing call to va_end().
21005
21006         * final.c (asm_fprintf): Likewise.
21007
21008         * genattrtab.c (attr_rtx): Likewise.
21009
21010 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
21011
21012         * cse.c: Update comments.
21013         (cse_insn): When converting a conditional/computed jump into
21014         an unconditional jump, always make sure a BARRIER immediately
21015         follows the converted jump.  Do not delete unreachable code.
21016         (cse_basic_block): Do not delete unreachable code.
21017         * toplev.c (rest_of_compilation): Move call to
21018         delete_trivially_dead_insns after the conditional call to
21019         jump_optimize.
21020
21021 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21022
21023         * collect2.c (make_temp_file): Don't prototype.
21024
21025         * gcc.c (make_temp_file): Likewise.
21026
21027         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
21028
21029 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
21030
21031         * varasm.c (asm_emit_uninitialised): New function: Generate
21032         the assembler statements necessary to declare an uninitialised
21033         variable.
21034         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
21035         variable.
21036         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
21037         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
21038         section.
21039         (assemble_variable): Use asm_emit_uninitialised to emit an
21040         uninitialised variable.
21041
21042 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
21043
21044         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
21045         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
21046         <geoffk@cygnus.com>.
21047
21048 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21049
21050         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
21051         * c-common.h (builtin_function): Don't declare.
21052
21053         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
21054         DECL_BUILT_IN.
21055         (pushdecl): Likewise.
21056         (finish_decl): Likewise.
21057         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
21058         int.  All callers changed.
21059         Set the builtin's DECL_BUILT_IN_CLASS.
21060         * tree.h (enum built_in_class): New.
21061         (enum built_in_function): Delete NOT_BUILT_IN.
21062         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
21063         in a union.
21064         (DECL_SET_FUNCTION_CODE): Likewise.
21065         (DECL_BUILT_IN_CLASS): New macro.
21066         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
21067         (struct tree_decl): Split builtin function code field into a
21068         struct.
21069         (builtin_function): Declare.
21070
21071 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
21072
21073         * optabs.c (init_traps): Fix typo in last change.
21074
21075 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
21076
21077         * toplev.c (rest_of_decl_compilation): Update comment.
21078
21079 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
21080
21081         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
21082         in .sbss if appropriate.
21083         (EXTRA_SECTION_FUNCTIONS): Add sbss.
21084         (SBSS_SECTION_ASM_OP): New macro.
21085         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
21086         (EXTRA_SECTIONS): Add in_sbss.
21087         * config/mips/mips.h: Prototype sbss_section.
21088
21089 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
21090
21091         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
21092         to disappear.
21093
21094 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
21095
21096         * optabs.c (init_traps): Register trap_rtx as a GC root.
21097
21098 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21099
21100         * config/mips/mips.c (function_arg_pass_by_reference): Define
21101         unconditionally, since it's called unconditionally.
21102
21103 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
21104
21105         * toplev.c (documented_lang_options): Add -fshort-wchar.
21106         * c-decl.c (c_decode_option): Likewise.
21107         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
21108         for wchar_t.
21109         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
21110         * gcc.c (default_compilers): If -fshort-wchar,
21111         override __WCHAR_TYPE__.
21112         * tm.texi (C Dialect Options): Add -fshort-wchar.
21113
21114         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
21115         symbol for a variable.
21116
21117         * cpplib.h (CPP_PREPROCESSED): New macro.
21118         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
21119         we're seeing this input for a second time.
21120
21121 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
21122
21123         * emit-rtl.c (init_emit_once): Initialize modes first.
21124
21125 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
21126
21127         * config/i386/i386.c (pic_label_name): Change to char pointer.
21128         (global_offset_table): New variable.
21129         (load_pic_register): Fill global_offset_table if it hasn't
21130         already been done.  Allocate pic_label_name dynamically.
21131         * ggc.h (empty_string): New variable.
21132         * ggc-simple.c (empty_string): Likewise.
21133         (init_ggc): Allocate empty_string and add as root.
21134         * stmt.c (digit_strings): New variable.
21135         (init_stmt): Add last_block_end_note as root.  Allocate and
21136         initialize digit_strings.
21137         (expand_asm_operands): Use empty_string instead of string
21138         constant.  Use digit_strings instead of string constants.
21139         * profile.c (init_arc_profiler): Allocate string with
21140         ggc_alloc_string instead of xmalloc.
21141         (output_func_start_profiler): Likewise.
21142         * c-typeck.c (digest_init): Check if init is error_mark_node.
21143
21144 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
21145                           Richard Henderson  <rth@cygnus.com>
21146
21147         * ggc-page.c: New file.
21148         * Makefile.in (ggc-page.o): New.
21149
21150 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
21151
21152         * invoke.texi: Document -fdelete-null-pointer-checks
21153         * toplev.c (flag_delete_null_pointer_checks): New.
21154         (f_options): Add entry for -fdelete-null-pointer-checks.
21155         (rest_of_compilation): Conditionalize null pointer check
21156         elimination on flag_delete_null_pointer_checks.
21157         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
21158
21159 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
21160
21161         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
21162         copyright notice and special exception to GPL.
21163
21164 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21165
21166         * abi64.h (mips_function_value): Add prototype arguments.
21167
21168         * mips-protos.h: New file with mips prototypes.
21169
21170         * mips.c: Include "tm_p.h".
21171         (mktemp, lookup_name): Add prototype arguments.
21172         (extern_list, string_constant, mips_fill_delay_slot,
21173         mips_output_external, mips_output_external_libcall,
21174         mips_output_filename, mips_declare_object, function_prologue,
21175         mips_expand_prologue, function_epilogue, mips16_constant,
21176         build_mips16_function_stub, mips_output_conditional_branch):
21177         Constify a char*.
21178         (mips_va_start): Remove unused variable `u'.
21179         (mips_va_arg): Cast value to unsigned when comparing against one.
21180         (trace): Delete.
21181         (save_restore_insns, mips_expand_prologue): Add missing arg in
21182         call to `large_int'.
21183
21184         * mips.h: Move prototypes to mips-protos.h.
21185         (data_section, memory_address_p, rdata_section,
21186         readonly_data_section, simple_epilogue_p, text_section): Delete
21187         prototypes delcared elsewhere.
21188         (mips_epilogue_delay_slots, print_options): Delete unused decls.
21189         (trace): Delete.
21190         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
21191
21192         * mips.md: Delete extra args in call to `mips_move_2words'.
21193
21194         * xm-iris6.h (alloca): Add prototype argument.
21195
21196         * genpeep.c: Include "tm_p.h" in generated output file.
21197
21198 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21199
21200         * basic-block.h (find_edge_index): Change parameters.
21201         * flow.c (verify_edge_list): Pass basic_block parameters to
21202         find_edge_index instead of integers.
21203
21204 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
21205
21206         * combine.c (simplify_comparison): Use an unsigned shift to adjust
21207         the constant.
21208
21209 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
21210
21211         * gcc.1: Fix a formatting error.
21212
21213 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
21214
21215         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
21216         i786, mn10200, mn10300, pdp11, v850.
21217
21218 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
21219
21220         * libgcc2.c (num_digits): Add prototype with
21221         __attribute__((const)).
21222         (__terminate): Add prototype.
21223
21224 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
21225
21226         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
21227
21228         * alpha/alpha.c (print_operand): Fix type of `code'.
21229         (alpha_output_filename): Constify.
21230         * alpha/alpha.h: Move all function declarations ...
21231         * alpha/alpha-protos.h: ... here.  New file.
21232         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
21233         (SECTION_FUNCTION_TEMPLATE): Likewise.
21234
21235 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21236
21237         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
21238         * expr.c (expand_expr): Likewise.
21239         (do_jump): Likewise.
21240         (do_store_flag): Pass ccp_store_flag to can_compare_p.
21241         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
21242         accessor macros.
21243         (enum can_compare_purpose): New.
21244         (can_compare_p): Adjust prototype.
21245         (prepare_cmp_insn, prepare_operand): Declare.
21246         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
21247         * optabs.c (cmp_available_p): Deleted.
21248         (expand_abs): Pass ccp_jump to can_compare_p.
21249         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
21250         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
21251         Call can_compare_p rather than cmp_available_p.
21252         (prepare_operand): No longer static.
21253         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
21254         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
21255         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
21256         sequence to use emit_cmp_and_jump_insns.
21257         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
21258
21259 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
21260
21261         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
21262         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
21263         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
21264         (plus (reg) (const_int 0))
21265         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
21266
21267 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
21268
21269         * rs6000.c (expand_block_move): DImode loads and stores require
21270         word-aligned displacements.  Increment address registers with
21271         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
21272
21273 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
21274
21275         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
21276         is no name for the base type, rather than segfault.  If we are
21277         writing out a complex integer type, use DW_ATE_lo_user.
21278
21279         * expr.c (emit_move_insn_1): If we are copying a complex that fits
21280         in one word or less (complex char, complex short, or on 64 bit
21281         systems complex float) to/from a hard register, copy it through
21282         memory instead of dying in gen_{real,imag}part.  If we have a
21283         short complex type, prevent inlining since it allocates stack
21284         memory.
21285
21286         * tree.c (build_complex_type): If we are writing dwarf2 output,
21287         generate a name for complex integer types.
21288
21289 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21290
21291         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
21292         * flow.c (remove_edge): Remove extra whitespace.
21293         (remove_fake_edges): Fix comment.
21294         (add_noreturn_fake_exit_edges): Use the correct name.
21295
21296 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
21297
21298         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
21299         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
21300         (clean): Depend on INTL_CLEAN.
21301         (maintainer-clean): Adjust.
21302
21303 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21304
21305         * configure.in (AC_PREREQ): Bump to 2.13.
21306         (AC_C_STRINGIZE): Call this instead of using a custom macro.
21307
21308         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
21309
21310         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
21311
21312         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
21313
21314         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
21315         (HAVE_STRINGIZE): Define.
21316
21317 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
21318
21319         * c-parse.in: save and restore warn_pointer_arith on __extension__
21320         along with pedantic.
21321         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
21322         Set the type of extension to itype rather than $<itype>1 kludge.
21323         * extend.texi (Alternate Keywords): Adjust documentation.
21324         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
21325
21326 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
21327
21328         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
21329         most assembler templates.
21330
21331         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
21332         FP loads and stores.
21333         (following_call): Always return zero for the PA8000.
21334         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
21335         FP loads and stores.
21336         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
21337
21338         * pa.h (BRANCH_COST): Define.
21339
21340         * pa.md (return, return_internal): Use bve for PA2.0.
21341
21342         * pa.md (fused multiply): Add variants which reduce height for the
21343         fused multiply, but which still generate 2 insns.
21344         (fnegabs): Similarly.
21345
21346         * pa.md (subsi3): Turn into an expander.  Create two anonymous
21347         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
21348         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
21349
21350         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
21351         for TARGET_PA_20.
21352         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
21353         code generation.
21354         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
21355         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
21356
21357         * regclass.c (init_regs): Add "top_of_stack" as a garbage
21358         collection root.
21359
21360         * flow.c (record_active_eh_regions): Terminate loop after finding
21361         the last insn in the last basic block.
21362
21363 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21364
21365         * config/c4x/c4x.md: Delete parallel instruction peepholes.
21366
21367 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21368
21369         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
21370
21371 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21372
21373         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
21374         splitting to not use output template.
21375
21376 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21377
21378         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
21379         * config/c4x/c4x.c (c4x_va_start): New function.
21380
21381 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
21382
21383         * genrecog.c (not_both_true): Handle correctly cases when called for
21384         tests with different positions in the insn.
21385
21386 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21387
21388         * machmode.h (HOST_PTR_PRINTF): Move from here ...
21389
21390         * system.h (HOST_PTR_PRINTF): ... to here.
21391
21392         * mips-tfile.c: Don't include machmode.h.
21393
21394         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
21395         (mips-tfile.o): Don't depend on machmode.h.
21396
21397 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21398
21399         * haifa-sched.c (sched_analyze): Rename local variable `region' to
21400         avoid conflicts with typedef struct `region' at the top level scope.
21401
21402 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
21403
21404         * basic-block.h (basic_block): Add eh_beg, eh_end.
21405         * flow.c (entry_exit_blocks): Update.
21406         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
21407         Call new functions.
21408         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
21409         lists.c functions to allocate insn lists.
21410         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
21411         edge creation ...
21412         (make_eh_edge): ... here.  New.
21413         (move_stray_eh_region_notes): New.
21414         (record_active_eh_regions): New.
21415         (delete_unreachable_blocks): Split out block merging ...
21416         (try_merge_blocks): ... here.  New.
21417         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
21418         Dump debugging data.
21419         (merge_blocks_move_successor_nojumps): Likewise.
21420         (merge_blocks): Use eh_beg+eh_end to validate block movement.
21421
21422 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
21423
21424         * extend.texi (Bound member functions): Document unbound pmf
21425         conversion.
21426
21427 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21428
21429         * flow.c (split_edge): Handle insertion on a fallthrough edge which
21430         has the EXIT_BLOCK as a dest.
21431
21432 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21433
21434         * flow.c (remove_edge): New function to remove an edge from the
21435         flow graph.
21436         (remove_fake_successors): New function to remove fake successor edges.
21437         (remove_fake_edges): New function to remove all fake edges from the
21438         flow graph.
21439         (add_fake_exit_edges): New function to add fake edges from all blocks
21440         with no successors to the exit block.
21441         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
21442         prototypes for new functions.
21443
21444 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
21445
21446         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
21447         Use Pmode to determine whether to output .dword or .word.
21448
21449 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
21450
21451         * tree.c (built_in_filename): New variable.
21452         (BUILT_IN_FILENAME): New macro.
21453         (init_tree_codes): Allocate built_in_filename.
21454         (make_node): Use built_in_filename instead of string constant.
21455
21456 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
21457
21458         * configure.in: Add fr30 target.
21459         * configure: Regenerate.
21460         * config/fr30: New directory.
21461         * config/fr30/crti.asm: New file.
21462         * config/fr30/fr30.c: New file.
21463         * config/fr30/crtn.asm: New file.
21464         * config/fr30/fr30.h: New file.
21465         * config/fr30/fr30.md: New file.
21466         * config/fr30/lib1funcs.asm: New file.
21467         * config/fr30/t-fr30: New file.
21468         * config/fr30/xm-fr30.h: New file.
21469
21470 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
21471
21472         * flow.c (merge_blocks_move_successor_nojumps): Delete the
21473         BARRIER at the end of the successor, not the BARRIER before
21474         the successor.
21475
21476         * pa.c (pa_add_gc_roots): Fix thinko in last change.
21477
21478 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
21479
21480         * stmt.c (any_pending_cleanups): Don't crash when
21481         current_function->stmt is unset.
21482
21483 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21484
21485         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
21486         other initializations that may use it for relative offsets.
21487
21488 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21489
21490         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
21491         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
21492         * config/i386/sol2dbg.h: Removed.
21493         * config/i386/sol2gas.h: New file, to enable gas work-around.
21494         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
21495         Don't use sol2dbg.h.
21496         * configure: Rebuilt.
21497
21498 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
21499
21500         * invoke.texi (-fthis-is-variable): Remove documentation.
21501
21502 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
21503
21504         * basic-block.h (compute_bb_for_insn): Declare.
21505         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
21506         to use; set size of basic_block_for_insn directly.
21507         (find_basic_blocks): Update.
21508
21509 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21510
21511         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
21512
21513 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21514
21515         * crtstuff.c (ON_EXIT): Delete empty macro definition.
21516         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
21517
21518 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
21519
21520         * c-decl.c (c_decode_option): Extend comment.
21521
21522 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
21523
21524         * toplev.c (progname): Make 'const char *'
21525         (flag_print_mem): Move out of main.
21526         (version_flag): Move out of main.
21527         (filename): Move out of main.
21528         (debug_args): Remove g prefix from options.
21529         (documented_lang_options): Remove cpplib specific options.
21530         (display_help): Add g prefix to debug options.
21531         (check_lang_option): Delete this function.
21532         (decode_d_option): New function: Decode -d... option.
21533         (decode_f_option): New function: Decode -f... option.
21534         (decode_W_option): New function: Decode -W... option.
21535         (decode_g_option): New function: Decode -g... option.
21536         (independent_decode_option): New function: Decode a language
21537         independent command line option.
21538         (main): Invoke lang_decode_option and then
21539         independent_decode_option on each command line option in
21540         turn.
21541
21542 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
21543
21544         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
21545          * fold-const.c (fold_range_test): Do not try to fold the range
21546          test if the rhs or lhs has side effects.
21547
21548         * basic-block.h (compute_flow_dominators): Declare.
21549
21550         * gcse.c (alloc_code_hoist_mem): New function.
21551         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
21552         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
21553         (hoist_code, one_code_hoisting_pass): Likewise.
21554         (gcse_main): If optimizing for size, then hoist expressions
21555         computed in multiple dominated basic blocks.
21556
21557         * gcse.c (invalid_nonnull_info): New function.
21558         (delete_null_pointer_checks): Likewise.
21559         * rtl.h (delete_null_pointer_checks): Declare.
21560         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
21561
21562         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
21563         (merge-blocks_move_successor_nojumps): Likewise.
21564         (merge_blocks): Allow merging of some blocks, even if it requires
21565         physical movement of the blocks, but not if it requires new jumps.
21566
21567         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
21568         Callers and prototype changed.
21569         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
21570
21571 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21572
21573         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
21574         -YP when both -p and -pg are present.  From i386/sol2.h.
21575
21576 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21577
21578         * Makefile.in (distclean): Delete tm_p.h.
21579         * configure.in: Create a new file, "tm_p.h", from a list in
21580         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
21581         "i386/i386-protos.h".
21582
21583         * alias.c: Include "tm_p.h".
21584         * c-typeck.c: Likewise.
21585         * calls.c: Likewise.
21586         * cse.c: Likewise.
21587         * emit-rtl.c: Likewise.
21588         * explow.c: Likewise.
21589         * expmed.c: Likewise.
21590         * expr.c: Likewise.
21591         * final.c: Likewise.
21592         * flow.c: Likewise.
21593         * fold-const.c: Likewise.
21594         * function.c: Likewise.
21595         * gcse.c: Likewise.
21596         * global.c: Likewise.
21597         * haifa-sched.c: Likewise.
21598         * integrate.c: Likewise.
21599         * jump.c: Likewise.
21600         * local-alloc.c: Likewise.
21601         * loop.c: Likewise.
21602         * optabs.c: Likewise.
21603         * recog.c: Likewise.
21604         * reg-stack.c: Likewise.
21605         * regclass.c: Likewise.
21606         * regmove.c: Likewise.
21607         * reload.c: Likewise.
21608         * reload1.c: Likewise.
21609         * reorg.c: Likewise.
21610         * resource.c: Likewise.
21611         * stmt.c: Likewise.
21612         * stor-layout.c: Likewise.
21613         * toplev.c: Likewise.
21614         * tree.c: Likewise.
21615         * unroll.c: Likewise.
21616         * genattrtab.c (main): Make generated file include "tm_p.h".
21617         * genemit.c (main): Likewise.
21618         * genoutput.c (main): Likewise.
21619         * genrecog.c (main): Likewise.
21620
21621         * i386.h: Delete all prototypes.
21622         * i386.c: Include "tm_p.h".
21623         (ix86_attr_length_default): Call constant_call_address_operand
21624         with correct number of arguments.
21625         * i386-protos.h: New file.
21626         * i386.md (unnamed patterns): Call constant_call_address_operand
21627         with correct number of arguments.
21628         (exception_receiver): Call load_pic_register with correct number
21629         of arguments.
21630
21631 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
21632
21633         * c-pragma.c (mark_align_stack): Dereference the void* properly.
21634
21635 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
21636
21637         * rtl.h (insns_safe_to_move_p): New function.
21638         * loop.c (find_and_verify_loops): Use it.
21639         * rtlanal.c (insns_safe_to_move_p): Define it.
21640
21641 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
21642
21643         * c-pragma.c: Include ggc.h.
21644         * Makefile.in (c-pragma.o): Update.
21645
21646 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21647
21648         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
21649         (LIB_SPEC): Likewise.
21650         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
21651         Reindent -YP/-p/-pg.
21652         Copied from config/sparc/sol2.h.
21653
21654 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
21655
21656         * c-pragma.c (mark_align_stack): New.
21657         (init_pragma): New.
21658         * c-pragma.h (init_pragma): Declare it.
21659         * c-lex.c (init_parse): Call it.
21660
21661 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21662
21663         * configure.in: Pick up thread library on Solaris/x86 just
21664         like on Solaris/sparc.
21665         * configure: Rebuilt.
21666
21667 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
21668
21669         * rtl.h (global_rtx_index): New enum.
21670         (global_rtl): Change to array of rtx.
21671         (pc_rtx, cc0_rtx): Redefine accordingly.
21672         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
21673         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
21674         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
21675         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
21676         (const_int_rtx): Change to array of rtx.
21677         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
21678         accordingly.
21679         * emit-rtl.c (global_rtl): Change to array of rtx.
21680         (const_int_rtx): Change to aray of rtx.
21681         (gen_rtx_CONST_INT): Redefine accordingly.
21682         (init_emit_once): Allocate and initialize global_rtl.  Likewise
21683         for const_int_rtx.  Add both as GC roots.
21684         * genattrtab.c (global_rtl): Update declaration.
21685
21686 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
21687
21688         * Makefile (USER_H): Add iso646.h back.
21689
21690 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
21691
21692         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
21693         zapping the LOG_LINKS of sched_before_next_call.
21694
21695         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
21696         * pa.c (insn_refs_are_delayed): Renamed from
21697         insn_sets_and_refs_are_delayed.
21698
21699 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
21700
21701         * functiion.h (struct function): Add x_whole_function_mode_p.
21702         (retrofit_block): Declare.
21703         * function.c (retrofit_block): New function.
21704         (identify_blocks): Add assertions.  Allow an incomplete set of
21705         block notes if we're still generating code for the function.
21706         * integrate.c: Include loop.h.
21707         (expand_inline_function): Call find_loop_tree_blocks to map block
21708         notes to blocks when in whole-function mode.  Use retrofit_block
21709         to insert new BLOCKs for the inlined function, rather than
21710         insert_block.
21711         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
21712         * Makefile.in (integrate.o): Depend on loop.h.
21713
21714 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
21715
21716         * tree.h (warn_about_unused_variables): Declare.
21717         * stmt.c (warn_about_unused_variables): New function, split out
21718         from ...
21719         (expand_end_bindings): Here.
21720
21721 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
21722
21723         * stmt.c (preserve_subexpressions_p): Don't crash when
21724         current_function->stmt is unset.
21725
21726 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
21727
21728         * stmt.c (expand_start_bindings): Allow callers to pass a flag
21729         indicating that no NOTE_INSN_BLOCK_BEG note is required.
21730         (expand_start_target_temps): Use it.
21731         * except.c (expand_eh_region_start_for_decl): Likewise.
21732         * expr.c (expand_expr): Likewise.
21733
21734 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21735
21736         * fold-const.c (operand_equal_p): Pay attention to side effects.
21737
21738 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
21739
21740         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
21741         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
21742
21743         * tlink.c (scan_linker_output): Look for keywords before accepting
21744         a mangled name in quotes.
21745
21746 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
21747
21748         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
21749         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
21750
21751 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
21752
21753         * alpha.md: Revert Thu Nov 26 change that came in through the
21754         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
21755         Avoid earlyclobber when possible.
21756
21757 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21758
21759         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
21760
21761         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
21762         Define HAVE_ON_EXIT.
21763
21764 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21765
21766         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
21767         CTYPE_CONV in all ctype macros.
21768
21769         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
21770         from system.h.
21771
21772         * cexp.y (initialize_random_junk): Likewise.
21773
21774         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
21775
21776         * i370.c (handle_pragma): Likewise.
21777
21778         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
21779
21780         * v850.c (override_options): Likewise.
21781
21782         * doprint.c (_doprnt): Likewise.
21783
21784         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
21785         Likewise.
21786
21787         * fixinc/server.c (load_data): Likewise.
21788
21789         * fold-const.c (real_hex_to_f): Likewise.
21790
21791         * genattr.c (write_upcase, gen_attr): Likewise.
21792
21793         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
21794         write_upcase): Likewise.
21795
21796         * genemit.c (print_code): Likewise.
21797
21798         * genopinit.c (gen_insn): Likewise.
21799
21800         * genpeep.c (print_code): Likewise.
21801
21802         * genrecog.c (print_code): Likewise.
21803
21804         * optabs.c (init_libfuncs): Likewise.
21805
21806 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
21807
21808         * haifa-sched.c (sched_analyze): Keep the list of notes organized
21809         in pairs.
21810         (reemit_notes): Likewise.
21811
21812 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
21813
21814         * ggc.h (ggc_root): Move to ggc-common.c.
21815         (roots): Remove.
21816         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
21817         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
21818         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
21819         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
21820         * ggc-common.c (ggc_root): Move from ggc.h.
21821         (roots): Declare, static.
21822         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
21823         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
21824         null or check/set mark bit.
21825         (ggc_mark_roots): New.
21826         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
21827
21828 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
21829
21830         * m32r.c: Include toplev.h.
21831         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
21832         (gen_compare): Rename swap_p to must_swap to match uses.
21833         Add default abort case.
21834         (m32r_output_function_epilogue): Remove unused variables.
21835         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
21836         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
21837         define to empty parameter list.  Update all uses.
21838         (predicate decls): Use enum machine_mode not int.
21839         * m32r.md (movsi): Call abort, not fatal_insn.
21840         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
21841
21842 1999-09-14  Andrew Haley  <aph@cygnus.com>
21843
21844         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
21845         use $0 instead of 0.
21846
21847 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21848
21849         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
21850         computation out of loop over hard regs.
21851
21852 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
21853
21854         * function.c (identify_blocks): Don't shadow a variable in an
21855         outer scope.
21856         * integrate.c (integrate_decl_tree): Don't use pushlevel,
21857         pushdecl, or poplevel to build up the new BLOCK tree.
21858         (expand_inline_function): Likewise.
21859         (integrate_parm_decls): Likewise.
21860
21861 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
21862
21863         * c-typeck.c (qualify_type): Merge qualifiers from both types.
21864
21865 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
21866
21867         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
21868         * invoke.texi: Document this change.
21869
21870 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
21871
21872         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
21873         Free the struct.
21874         (mark_emit_status): Renamed from mark_emit_state.
21875         * except.c (mark_eh_status): Renamed from mark_eh_state.
21876         Check not null before marking.
21877         (free_eh_status): New.
21878         * expr.c (mark_expr_status, free_expr_status): New.
21879         * function.c (free_machine_status): New.
21880         (free_after_parsing): New.
21881         (free_after_compilation): Move bits to free_after_parsing; call
21882         free_eh_status, free_expr_status; zero the marked members of the
21883         function state.
21884         (prepare_function_start): No can_garbage_collect.
21885         Call init_eh_for_function.
21886         (expand_dummy_function_end): Free up current_function state.
21887         (mark_function_status): Renamed from mark_function_state.
21888         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
21889         * function.h (struct function): No can_garbage_collect.
21890         (free_machine_status, free_after_parsing): Declare.
21891         (free_eh_status, free_expr_status): Declare.
21892         * ggc.h (mark_expr_status): Declare.
21893         * stmt.c (free_stmt_status): Free the struct.
21894         (mark_stmt_status): Renamed from mark_stmt_state.
21895         (init_stmt): Don't call init_eh.
21896         (init_stmt_for_function): Don't call init_eh_for_function.
21897         * toplev.c (compile_file): Call init_eh.
21898         (rest_of_compilation): Free basic block info before ggc_collect.
21899         Call free_after_parsing; conditionally call free_after_compilation.
21900         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
21901         Check not null before marking.
21902         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
21903
21904 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
21905
21906         * c-lex.c (yylex): Initialize warn.
21907
21908 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
21909
21910         * pa.c (emit_move_sequence): Properly set the mode of the scratch
21911         register when performing secondary reloads for the SAR register.
21912
21913 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
21914
21915         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
21916         (NOTE_BLOCK): New macro.
21917         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
21918         * function.h (identify_blocks): Change prototype.
21919         * function.c (identify_blocks): Simplify.
21920         (reorder_blocks): Likewise.
21921         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
21922         NOTE_INSN_BLOCK_{BEG,END}.
21923         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
21924         the list of saved notes if the note isn't a
21925         NOTE_INSN_BLOCK_{BEG,END}.
21926         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
21927         NOTE_BLOCK_NUMBER.
21928         (reemit_notes): Adjust recreation of notes to reflect new saved
21929         note structure.
21930         * print-rtl.c (print_rtx): Print the address of the BLOCK when
21931         printing a block note.
21932         * stmt.c (block_vector): Remove.
21933         (find_loop_tree_blocks): Simplify.
21934         (unroll_block_trees): Likewise.
21935         * tree.h (reorder_block): Change prototype.
21936
21937 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
21938
21939         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
21940         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
21941         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
21942         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
21943         (atexit, exit): Simplify.
21944         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
21945         * config/lots: Remove defns of HAVE_ATEXIT.
21946
21947 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
21948
21949         * calls.c (precompute_arguments): Fix typo in comment.
21950         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
21951         TARGET_EXPR.
21952
21953 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
21954
21955         * dsp16xx.c (override_options): Fix typos in GC root registration.
21956
21957 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
21958
21959         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
21960         from config/svr4.h.
21961         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
21962         (FUNCTION_PROFILER): Redefine appropriately for Linux.
21963         (CC1_SPEC): Likewise.
21964
21965 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21966
21967         * genattr.c (main): Add extern prototype.  Call return, not exit.
21968         * genattrtab.c (main): Likewise.
21969         * gencheck.c (main): Likewise.
21970         * gencodes.c (main): Likewise.
21971         * genconfig.c (main): Likewise.
21972         * genemit.c (main): Likewise.
21973         * genextract.c (main): Likewise.
21974         * genflags.c (main): Likewise.
21975         * gengenrtl.c (main): Likewise.
21976         * genopinit.c (main): Likewise.
21977         * genoutput.c (main): Likewise.
21978         * genpeep.c (main): Likewise.
21979         * genrecog.c (main): Likewise.
21980
21981         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
21982         * genattrtab.c (get_insn_name): Likewise.
21983         * gencodes.c (get_insn_name): Likewise.
21984         * genconfig.c (get_insn_name): Likewise.
21985         * genemit.c (get_insn_name): Likewise.
21986         * genextract.c (get_insn_name): Likewise.
21987         * genflags.c (get_insn_name): Likewise.
21988         * genopinit.c (get_insn_name): Likewise.
21989         * genpeep.c (get_insn_name): Likewise.
21990
21991         * gencheck.c (usage): Add static prototype.
21992         * genextract.c (print_path): Constify a char*.
21993         * genopinit.c (optabs): Likewise.
21994         * genoutput.c (operand_data, data, output_predicate_decls,
21995         compare_operands): Likewise.
21996         * genrecog.c (write_tree): Add default case in switch.
21997
21998 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21999
22000         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
22001
22002         * print-rtl.c (get_insn_name): Remove prototype.
22003
22004         * toplev.h (progname): Declare const.
22005
22006         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
22007         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
22008         dump_sched_info, dump_local_alloc, regset_release_memory,
22009         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
22010         error_with_file_and_line, error_with_decl, error_for_asm, error,
22011         fatal, warning_with_file_and_line, warning_with_decl, warning,
22012         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
22013         Remove redundant prototypes.
22014
22015         (notice, check_lang_option, report_file_and_line, vnotice,
22016         mark_file_stack): Add static prototype.
22017         (set_fatal_function): Add prototype.
22018         (vnotice, report_file_and_line, set_fatal_function,
22019         check_lang_option): Constify a char*.
22020         (main): Prototype.  Call return, not exit.
22021
22022 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22023
22024         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
22025
22026         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
22027
22028         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
22029
22030         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
22031
22032 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22033
22034         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
22035         behave as if it's zero in all cases.
22036         (expand_function_start): Adjust call to assign_parms.
22037         * tree.h (assign_parms): Adjust prototype.
22038         * objc/objc-act.c (hack_method_prototype): Adjust call to
22039         assign_parms.
22040
22041 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
22042
22043         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
22044         arg_pointer_rtx fixed if the argument pointer register is
22045         not fixed.
22046         (NONZERO_BASE_PLUS_P): Likewise.
22047
22048 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
22049
22050         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
22051         match_insn2 to match_insn.
22052         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
22053
22054 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
22055
22056         * Makefile.in (USER_H): Remove va-foo.h.
22057
22058         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
22059         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
22060         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
22061         va-spur.h,va-v850.h}: Remove.
22062
22063 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
22064
22065         * sparc/sparc.md (eligible_for_return_delay): New attribute.
22066         (in_return_delay): Use it instead of match_insn.
22067
22068 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
22069
22070         * config/alpha/va_list.h (va-alpha.h): Do not include.
22071         (__gnuc_va_list): Typedef as in varargs.h.
22072
22073 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
22074
22075         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
22076         DECL_LIVE_RANGE_RTL.
22077
22078 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
22079
22080         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
22081         not NOTE_BLOCK_NUMBER.
22082         (expand_eh_region_end): Likewise.
22083         (find_exception_handler_labels): Likewise.
22084         (scan_region): Likewise.
22085         (exception_optimize): Likewise.
22086         (update_rethrow_references): Likewise.
22087         (set_insn_eh_region): Likewise.
22088         * final.c (final_scan_insn): Likewise.
22089         * flow.c (make_edges): Likewise.
22090         * integrate.c (expand_inline_function): Likewise.
22091         * print-rtl.c (print_rtx): Likewise.
22092
22093 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
22094
22095         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
22096         terms of builtin functions and types.
22097
22098         * mips.c (mips_build_va_list): New.
22099         (mips_va_start, mips_va_arg): New.
22100         * mips.h (BUILD_VA_LIST_TYPE): New.
22101         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
22102
22103         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
22104         (sh_build_va_list, sh_va_start, sh_va_arg): New.
22105         * sh.h (BUILD_VA_LIST_TYPE): New.
22106         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
22107
22108 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
22109
22110         * recog.h (struct recog_data): Make dup_num, operand_address_p,
22111         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
22112         (struct insn_data): Likewise with n_operands, n_dups,
22113         n_alternatives, output_format.
22114         * regclass.c (scan_one_insn): Cast n_operands to int before
22115         arithmetic inside comparison.
22116
22117 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
22118
22119         * toplev.c (compile_function): Unconditionally emit nop.
22120
22121 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22122
22123         * haifa-sched.c (actual_hazard): Move declaration of variable
22124         `this_cost' into the scope where it is used.
22125
22126 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22127
22128         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
22129         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
22130         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
22131
22132         * genrecog.c (make_insn_sequence): Call memset, not bzero.
22133
22134         * jump.c (find_insert_position): Don't declare or define unless
22135         !HAVE_conditional_arithmetic.
22136         (returnjump_p_1, delete_prior_computation): Add static prototypes.
22137
22138         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
22139
22140         * recog.c (offsettable_address_p): Prototype function pointer.
22141         (preprocess_constraints): Call memset, not bzero.
22142
22143         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
22144         (gcc_obstack_init): Don't declare.
22145         (fix_sizetype): Add static prototype.
22146         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
22147         (tree_cons): Call memset, not bzero.
22148
22149         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
22150         definition in macro ASM_WEAKEN_LABEL.
22151         (mark_const_hash_entry): Add static prototype.
22152
22153 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22154
22155         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
22156
22157         * unroll.c (find_common_reg_term, subtract_reg_term,
22158         loop_find_equiv_value): Add static prototypes.
22159         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
22160         (copy_loop_body): Remove unreachable break statement.
22161
22162         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
22163
22164         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
22165
22166 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22167
22168         Undo some changes from the gcc2 merge:
22169         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
22170         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
22171         pointers.
22172
22173         Undo this change:
22174         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
22175         * emit-rtl.c (gen_lowpart_common): Disable optimization of
22176         initialized float-int union if the value is a NaN.
22177
22178 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22179
22180         * gthr-win32.h: New file.
22181
22182         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
22183         shared as a valid attribute.
22184         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
22185         * extend.texi: Document `shared' variable attribute.
22186
22187 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
22188
22189         * configure.in: Handle --enable-threads on FreeBSD.
22190         * configure: Rebuit.
22191
22192 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
22193
22194         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
22195         thread support.
22196         * configure: Rebuilt.
22197
22198 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
22199                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
22200                           Rosimildo DaSilva <rdasilva@connecttel.com>
22201
22202         * configure.in (m68k-*-rtemscoff*): Added.
22203         * configure.in (mips64orion-*-rtems*): Converted to ELF.
22204         * configure.in (sparc-*-rtemsaout*): Added as alias for old
22205         sparc-rtems configuration.
22206         * configure.in (sparc-*-rtemself*): Added.
22207         * configure.in (sparc-*-rtems*): Now ELF not a.out.
22208         * config/i386/rtems.h: Added comment.
22209         * config/sparc/rtemself.h: New file.
22210
22211         * configure.in (m68k-rtemself): Added.
22212         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
22213         and DWARF_DEBUGGING_INFO.
22214         * config/m68k/crti.s: New file.
22215         * config/m68k/crtn.s: New file.
22216         * config/m68k/t-crtstuff: New file.
22217         * config/m68k/rtemself.h: New file.
22218
22219         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
22220         global ctor/dtor and C++ exception handling.
22221         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
22222         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
22223         ENDFILE_SPEC.
22224         * config/i386/t-rtems-i386: New File.
22225
22226 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
22227
22228         * stmt.c (expand_end_case): Return right away if the case stack is
22229         empty.
22230
22231 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
22232
22233         * Makefile.in (version.c): Remove rule incorrectly brought in from
22234         the gcc2 merge.
22235
22236 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
22237
22238         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
22239         * msdos/top.sed:  Take into account a prepended $(SHELL) to
22240         move-if-change.
22241         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
22242
22243         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
22244
22245 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22246
22247         * regmove.c (fixup_match_1): Don't change an unchanging register.
22248         (stable_but_for_p): Renamed to:
22249         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
22250         Changed all callers.
22251
22252 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
22253
22254         * loop.c (strength_reduce): Don't call reg_used_between_p if the
22255         insn from BL2 is after the insn from BL.
22256
22257 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
22258
22259         * recog.h (INSN_OUTPUT_FORMAT_*): New.
22260         (struct insn_data): Merge `template' and `outfun' into `output'.
22261         Add `output_format'.
22262         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
22263         (struct data): Remove `outfun'; add `output_format'.
22264         (name_for_index): Remove declaration.
22265         (output_insn_data): Handle output formats.
22266         (process_template): Emit the bare array for @.
22267         (gen_expand, gen_split): Set output_format to NONE.
22268         * output.h (get_insn_template): Declare.
22269         * final.c (get_insn_template): New.
22270         (final_scan_insn): Use it.
22271         * toplev.c (compile_file): Likewise.
22272
22273         * c4x/c4x.c (c4x_process_after_reload): Likewise.
22274         * i860/i860.c (output_delayed_branch): Likewise.
22275         (output_delay_insn): Likewise.
22276
22277 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
22278
22279         * rtl.c (obstack_alloc_rtx): Removed.
22280
22281 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
22282
22283         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
22284
22285 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
22286
22287         * i386.c (call_insn_operand): Reject const_int.
22288         (expander_call_insn_operand): Use call_insn_operand.
22289
22290 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22291
22292         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
22293
22294 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
22295
22296         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
22297         Use DImode operation.
22298
22299 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
22300
22301         * gcc.c: Include sys/resource.h.
22302         (report_times): New flag.
22303         (execute):  If report_times is set, calculate and report the
22304         CPU time consumed by each subprocess.
22305
22306         (rus, prus): New globals.
22307         (option_map): Add --time.
22308         (display_help): Document -time.
22309         (process_command): Set report_times if -time is given.
22310         Turn off -pipe if -time is given.
22311
22312         * invoke.texi: Document new option -time.
22313
22314         * configure.in: Check for getrusage.  Check if we have to
22315         prototype getrusage.
22316         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
22317         * configure: Regenerate.
22318         * config.in: Regenerate.
22319
22320 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
22321
22322         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
22323         fields.
22324
22325 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
22326
22327         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
22328         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
22329         (nan): Return _thenan_sf or _thenan_df as appropriate.
22330         (L_thenan_sf): Define _thenan_sf.
22331         (L_thenan_df): Define _thenan_df.
22332
22333         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
22334         (DPBIT_FUNCS): Add _thenan_df.
22335
22336 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
22337
22338         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
22339         TYPE_SIZE_UNIT.
22340
22341 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22342
22343         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
22344
22345         * gcc.h: New file.
22346         (lang_specific_driver): Don't take a function pointer parameter.
22347         All callers changed.
22348
22349         * gcc.c: Include gcc.h.
22350         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
22351         lang_specific_extra_outfiles, fatal): Don't declare.
22352         (multilib_defaults_raw): Constify.
22353         (read_specs): Call memset, rather than bzero.
22354         (main): Call return, not exit.
22355         (lookup_compiler): Call memcpy, not bcopy.
22356         (fatal): Make extern.
22357
22358         * cppspec.c: Include gcc.h.
22359         (lang_specific_driver): Initialize variable `quote'.  Constify a
22360         char*.  All calls to the function pointer parameter now
22361         explicitly call `fatal'.
22362
22363         * gccspec.c (lang_specific_driver): Include gcc.h.
22364
22365 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
22366
22367         * arm.c (note_invalid_constants): Use recog_data.operand_type
22368         for recog_op_type.
22369
22370 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22371
22372         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
22373         Declare.
22374
22375         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
22376         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
22377         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
22378         reload_secondary_in_reload, reload_secondary_out_reload,
22379         reload_secondary_in_icode, reload_secondary_out_icode,
22380         reload_reg_rtx, reload_when_needed): Delete declarations.
22381         (struct reload): New structure.
22382         (rld): Declare new array.
22383         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
22384         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
22385         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
22386         reload_secondary_in_reload, reload_secondary_out_reload,
22387         reload_secondary_in_icode, reload_secondary_out_icode,
22388         reload_reg_rtx, reload_when_needed): Delete definitions.
22389         (rld): New array.
22390         (whole file): Replace uses of the deleted arrays with uses of rld.
22391         * reload1.c (whole file): Replace uses of the deleted arrays with
22392         uses of rld.
22393         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
22394         explicit loops, not with bcopy.
22395
22396 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
22397
22398         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
22399         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
22400         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
22401         insn_name): Delete and consolidate into new structures.
22402         (insn_operand_predicate_fn): New.
22403         (insn_output_fn): New.
22404         (insn_gen_fn): New.
22405         (struct insn_operand_data): New.
22406         (struct insn_data): New.
22407         (insn_data): New.
22408         (OUT_FCN): Update for insn_data change.
22409         * builtins.c (expand_builtin_strlen): Likewise.
22410         (expand_builtin_memcmp): Likewise.
22411         * combine.c (make_extraction, simplify_comparison): Likewise.
22412         * cse.c (canon_reg, cse_insn): Likewise.
22413         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
22414         * expmed.c (store_bit_field, extract_bit_field): Likewise.
22415         (emit_store_flag): Likewise.
22416         * expr.c (convert_move, emit_block_move): Likewise.
22417         (clear_storage, emit_push_insn, expand_increment): Likewise.
22418         (do_store_flag): Likewise.
22419         * expr.h (GEN_FCN): Likewise.
22420         (insn_gen_function): Die.
22421         * final.c (final_scan_insn): Update for insn_data change.
22422         (output_asm_name): Likewise.
22423         * function.c (fixup_var_refs_1): Likewise.
22424         * loop.c (check_dbra_loop): Likewise.
22425         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
22426         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
22427         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
22428         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
22429         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
22430         * regmove.c (gen_add3_insn): Likewise.
22431         * reload.c (push_secondary_reload, combine_reloads): Likewise.
22432         (find_reloads, find_reloads_address_1): Likewise.
22433         (debug_reload_to_stream): Likewise.
22434         * reload1.c (emit_reload_insns, gen_reload): Likewise.
22435         * stmt.c (expand_end_case): Likewise.
22436         * toplev.c (compile_file): Likewise.
22437
22438         * c4x/c4x.c (c4x_process_after_reload): Likewise.
22439         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
22440
22441         * print-rtl.c (insn_name_ptr): Remove declaration.
22442         (get_insn_name): Declare.
22443         (print_rtx): Use it.
22444         * genoutput.c (insn_name_ptr): Remove.
22445         (next_operand_number): New.
22446         (struct operand_data): New.
22447         (null_operand, odata, odata_end): New.
22448         (struct data): Use struct operand_data.
22449         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
22450         (get_insn_name): Renamed from name_for_index.
22451         (output_prologue): Define NO_MD_PROTOTYPES.
22452         (output_predicate_decls): Break out from output_epilogue.
22453         Iterate over the operands list.
22454         (output_operand_data): Break out from output_epilogue.  Emit
22455         just the operands list.
22456         (output_insn_data): Break out from output_epilogue.  Emit just
22457         the insn data.
22458         (output_epilogue): Remove.
22459         (output_get_insn_name): New.
22460         (constraints, op_n_alternatives, predicates, address_p): Die.
22461         (modes, strict_low, seen): Die.
22462         (scan_operands): Take new param `d' instead of writing to
22463         seven global variables.
22464         (compare_operands): New.
22465         (place_operands): New.
22466         (validate_insn_alternatives): Update for struct data change.
22467         (gen_insn): Don't zero or copy 7 global arrays.  Update for
22468         scan_operands; call place_operands.
22469         (gen_peephole, gen_expand, gen_split): Likewise.
22470         (main): Update for new output routines.
22471
22472         * genattr.c (insn_name_ptr): Remove.
22473         (get_insn_name): New function.
22474         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
22475         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
22476         * genrecog.c: Likewise.
22477
22478         * alpha.md (adddi3): Make `pattern' array static.
22479
22480 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22481
22482         * config/c4x/c4x.h (c4x_rpts_cycles_string,
22483         c4x_cpu_version_string): Constify char *.
22484         * config/c4x/c4x.c (c4x_rpts_cycles_string,
22485         c4x_cpu_version_string): Likewise.
22486
22487 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
22488
22489         * tree.c (save_tree_status): Revert 10 Sep change.
22490         (restore_tree_status): Likewise.  Call obstack_free with NULL
22491         before freeing the obstack proper.
22492
22493 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
22494
22495         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
22496
22497         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
22498         surrounding context.
22499
22500 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
22501
22502         * tree.c (type_hash_canon): Put all types in the hash-table, when
22503         GC'ing.
22504
22505 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
22506
22507         * recog.h (struct recog_data, recog_data): New.
22508         (recog_foo variables): Kill.
22509         * recog.c (recog_operand, recog_operand_loc): Kill.
22510         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
22511         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
22512         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
22513         (recog_data): Define.
22514         (extract_insn): Update all recog_foo references to use recog_data.
22515         (preprocess_constraints, constrain_operands): Likewise.
22516         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
22517         * genattrtab.c (main): Likewise.
22518         * genextract.c (main): Likewise.
22519         * genoutput.c: Likewise.
22520         * genrecog.c (write_subroutine, main): Likewise.
22521         * local-alloc.c (block_alloc): Likewise.
22522         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
22523         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
22524         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
22525         * reload.c (find_reloads, find_reloads_toplev): Likewise.
22526         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
22527         (reload_cse_simplify_operands): Likewise.
22528
22529         * arc/arc.c (arc_final_prescan_insn): Likewise.
22530         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
22531         * h8300/h8300.c (notice_update_cc): Likewise.
22532         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
22533         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
22534         * mn10200/mn10200.c (notice_update_cc): Likewise.
22535         * mn10300/mn10300.c (notice_update_cc): Likewise.
22536         * romp/romp.c (update_cc): Likewise.
22537         * sparc/sparc.c (check_pic): Likewise.
22538         * v850/v850.c (notice_update_cc): Likewise.
22539
22540         * genemit.c (main): Don't declare recog_operand.
22541
22542 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
22543
22544         * ggc.h (rtvec_def): Forward declare.
22545         (tree_node): Likewise.
22546         (ggc_root): Define.
22547         (roots): Declare.
22548         (ggc_set_mark_rtx): Add prototype.
22549         (ggc_set_mark_rtvec): Likewise.
22550         (ggc_set_mark_tree): Likewise.
22551         * ggc-simple.c (ggc_root): Don't define.
22552         (roots): Don't declare.
22553         (ggc_mark_rtx): Remove.
22554         (ggc_mark_rtvec): Likewise.
22555         (ggc_mark_tree): Likewise.
22556         (ggc_mark_varray): Likewise.
22557         (ggc_mark_tree_hash_table_entry): Likewise.
22558         (ggc_mark_tree_hash_table): Likewise.
22559         (ggc_set_mart_rtx): New function.
22560         (ggc_set_mark_rtvec): Likewise.
22561         (ggc_set_mark_tree): Likewise.
22562         (ggc_add_root): Remove.
22563         (ggc_add_rtx_root): Likewise.
22564         (ggc_remove_tree_root): Likewise.
22565         (ggc_add_string_root): Likewise.
22566         (ggc_add_tree_varray_root): Likewise.
22567         (ggc_add_tree_hash_table_root): Likewise.
22568         (ggc_del_root): Likewise.
22569         (ggc_mark_rtx_ptr): Likewise.
22570         (ggc_mark_tree_ptr): Likewise.
22571         (ggc_mark_string_ptr): Likewise.
22572         (ggc_mark_tree_varray_ptr): Likewise.
22573         (ggc_mark_tree_hash_table_ptr): Likewise.
22574         * ggc-common.c: New file.
22575         * Makefile.in (OBJS): Add ggc-common.o.
22576         (ggc-common.o): List dependencies.
22577
22578 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
22579
22580         * cppalloc.c (xstrdup): Use memcpy.
22581         * cpperror.c (cpp_print_containing_files): Don't use
22582         cpp_notice.
22583         * cpplib.c (conditional_skip): Set temp->lineno.
22584         (do_endif): Make error message less obscure.
22585         (if_directive_name): New function.
22586         (cpp_get_token [case EOF]): Unwind the if stack and generate
22587         error messages for each unterminated conditional in this file.
22588         (parse_string):  Do not behave differently if -traditional.
22589
22590 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
22591
22592         * builtins.c (expand_builtin_va_arg): Cope with an array-type
22593         va_list decomposing to pointer-type.
22594         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
22595         (rs6000_va_arg): Likewise.
22596
22597 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
22598
22599         * except.c (start_dynamic_handler): Compute size using
22600         STACK_SAVEAREA_MODE.
22601
22602 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22603
22604         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
22605         include directory headers.  Don't define strrchr.  Don't provide
22606         my_* replacement functions.  Prefer PTR over `pointer_type'.
22607         Don't prototype system functions.  Don't redefine getopt.
22608
22609         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
22610         safe_read, safe_write, save_pointers, restore_pointers,
22611         is_id_char, in_system_include_dir, directory_specified_p,
22612         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
22613         find_corresponding_lparen, referenced_file_is_newer,
22614         save_def_or_dec, munge_compile_params, gen_aux_info_file,
22615         process_aux_info_file, identify_lineno, check_source,
22616         seek_to_line, forward_to_next_token_char, output_bytes,
22617         output_string, output_up_to, other_variable_style_function,
22618         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
22619         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
22620         find_static_definition, connect_defs_and_decs, add_local_decl,
22621         add_global_decls, needs_to_be_converted, visit_each_hash_node,
22622         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
22623         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
22624         scan_for_missed_items, edit_file, string_list_cons): Add static
22625         prototypes.
22626         (standard_exec_prefix, target_machine, target_version,
22627         default_syscalls_dir, string_list, string_list_cons, find_file,
22628         do_cleaning): Constify a char*.
22629         (safe_read, safe_write): Use PTR, not a char*.
22630         (is_id_char): Take an int, not a char.
22631         (main): Add prototype.  Call return, not exit.
22632
22633 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
22634
22635         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
22636         when comparing types.
22637
22638 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
22639
22640         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
22641         (strength_reduce): Release the varrays from the no-bivs early exit.
22642
22643         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
22644         the loop over the registers.
22645
22646         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
22647         for a new obstack.
22648         (restore_tree_status): Check that instead when freeing the obstack.
22649
22650 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
22651
22652         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
22653         as pointers.
22654
22655 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22656
22657         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
22658         operand size modifiers.
22659
22660 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22661
22662         * c-common.c (c_common_nodes_and_builtins): Don't build
22663         va_list_type_node.
22664         * c-common.h (enum c_tree_index and related accesor macros): Remove
22665         everything now declared in tree.h.
22666         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
22667         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
22668         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
22669         (error_mark_node, void_type_node, char_type_node, integer_type_node,
22670         unsigned_type_node, ptr_type_node, va_list_type_node,
22671         integer_zero_node, null_pointer_node, integer_one_node): Delete.
22672         (init_decl_processing): Call build_common_tree_nodes and
22673         build_common_tree_nodes_2 instead of building their nodes here.
22674         Don't add roots for these nodes.
22675         * stor-layout.c (size_zero_node, size_one_node): Delete.
22676         (set_sizetype): Make a new node for bitsizetype each time.
22677         * tree.c (global_trees): New variable.
22678         (init_obstacks): Add a gc root for it.
22679         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
22680         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
22681         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
22682         (build_common_tree_nodes): New function.
22683         (fix_sizetype): New function.
22684         (build_common_tree_nodes_2): New function.
22685         * tree.h (enum tree_index): New.
22686         (global_trees): Declare.
22687         Add accessor macros for all nodes now moved to global_trees.
22688         Delete their declarations.
22689
22690 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
22691
22692         * c-decl.c (finish_function): When processing a nested function,
22693         push and pop GC context around rest_of_compilation.
22694
22695 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
22696
22697         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
22698         Default ix86_arch to PROCESSOR_I386.
22699         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
22700         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
22701         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
22702         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
22703         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
22704         (EXTRA_SPECS): Remove deleted specs.
22705
22706 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
22707
22708         * function.c (assign_stack_local_1): Allocate from
22709         function->x_frame_offset, not frame_offset.
22710
22711 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
22712
22713         * ggc.h (lang_cleanup_tree): Remove.
22714         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
22715         * ggc-callbacks.c (lang_cleanup_tree): Remove.
22716
22717         * c-decl.c (finish_struct): Use ggc_alloc to allocate
22718         TYPE_LANG_SPECIFIC when garbage collecting.
22719         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
22720         (lang_cleanup_tree): Remove.
22721
22722 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
22723
22724         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
22725         * crtstuff.c: Not here.
22726         * dwarf2out.c: Or here.
22727         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
22728         info.
22729
22730 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
22731
22732         * function.h (free_after_compilation): Remove decl parameter.
22733         (free_varasm_status0: Likewise.
22734         (free_emit_status): Likewise.
22735         (free_stmt_status): Likewise.
22736         (free_after_compilation): Likewise.
22737         (init_lang_status): New variable.
22738         (free_lang_status): Likewise.
22739         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
22740         * function.c (init_lang_status): New variable.
22741         (free_lang_status): Likewise.
22742         (push_function_context_to): Don't set function::decl here.
22743         (free_after_copmilation): Make decl parameter implicit.  Call
22744         free_lang_status if defined.
22745         (prepare_function_start): Call init_lang_status if defined.
22746         (init_function_start): Set function::decl here.
22747         * profile.c (output_func_start_profiler): Don't call pushdecl
22748         until we've actually started the function.
22749         * stmt.c (free_stmt_status): Make decl parameter implicit.
22750         * toplev.c (rest_of_compilation): Don't pass decl to
22751         free_after_compilation.
22752         * varasm.c (free_varasm_status): Likewise.
22753
22754 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22755
22756         * except.c (call_get_eh_context): Add root when allocating static
22757         tree variable.
22758
22759 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
22760
22761         * arm.c: Include "ggc.h".
22762         (arm_add_gc_roots): New function.
22763         (arm_override_options): Call it.
22764         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
22765
22766         * arm.md (define_asm_attributes): Add a pool_range attribute.
22767
22768 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
22769
22770         * extend.texi (Volatiles): New node.
22771
22772 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
22773
22774         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
22775         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
22776         (struct ggc_any): Replace `mark' with `magic_mark'.
22777         (ggc_alloc_string): Use memcpy, not bcopy.
22778         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
22779         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
22780         (ggc_free_any): New.
22781         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
22782         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
22783         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
22784         Use IS_MARKED. Use ggc_free_any.
22785
22786 1999-09-09  Scott Bambrough <scottb@netwinder.org>
22787
22788         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
22789
22790 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
22791
22792         * toplev.c (main): Always init_ggc.
22793
22794 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
22795
22796         * except.c (find_all_handler_type_matches): Free the list if
22797         we found no matches.
22798
22799         * combine.c (SUBST): Break out to a real function do_SUBST.
22800         (SUBST_INT): Likewise.
22801         * gcse.c (free_pre_mem): Free `temp_bitmap'.
22802         (pre_insert): Free `inserted'.
22803         * loop.c (basic_induction_var): Always set `location'.
22804
22805         * function.c (expand_function_end): Add initial_trampoline as a root.
22806         * rtl.h (init_varasm_once): Declare.
22807         * toplev.c (compile_file): Call it.
22808         * ggc-simple.c (ggc_mark_string_ptr): New.
22809         (ggc_add_string_root): New.
22810         (ggc_collect): Disable collection avoidance temporarily.
22811         * ggc.h (ggc_add_string_root): Declare.
22812         * except.c (create_rethrow_ref): Use ggc_alloc_string.
22813         * optabs.c (init_libfuncs): Likewise.
22814         * varasm.c (named_section): Use ggc_alloc_string.
22815         (make_function_rtl): Likewise.
22816         (make_decl_rtl): Likewise.
22817         (assemble_static_space): Likewise.
22818         (assemble_trampoline_template): Likewise.
22819         (output_constant_def): Likewise.
22820         (force_const_mem): Likewise.
22821         (mark_const_hash_entry): New.
22822         (mark_pool_sym_hash_table): New.
22823         (mark_varasm_state): Use it.
22824         (init_varasm_once): New.
22825
22826         * expr.h (init_one_libfunc): Declare.
22827         * optabs.c (init_one_libfunc): New.
22828         (init_optabs): Use it.
22829         * config/gofast.h: Likewise.
22830         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
22831         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
22832
22833 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
22834
22835         * Makefile.in (cppexp.o): Depend on cpphash.h.
22836         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
22837         Include cpphash.h.
22838         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
22839         * cpplib.c (do_define): Generalise to handle poisoned definitions,
22840         redefining poisoned identifiers, etc.
22841         (do_undef): Don't allow poisoned identifiers to be undefined.
22842         (do_pragma): Add #pragma poison.
22843         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
22844
22845         * cccp.c: Add T_POISON node type.
22846         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
22847         poisoned xxx.
22848         (do_define): Generalise to handle poisoned definitions,
22849         redefining poisoned identifiers, etc.
22850         (do_undef): Don't allow poisoned identifiers to be undefined.
22851         (do_pragma): Add #pragma poison.
22852         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
22853
22854         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
22855         * c-pragma.h: Add ps_poison state.  We now always have generic
22856         pragmas.
22857
22858 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
22859
22860         * ggc.h (ggc_alloc): New function.
22861         (ggc_mark): Likewise.
22862         * ggc-simple.c (ggc_any): New structure.
22863         (ggc_status): Add anys.
22864         (n_anys_collected): New variable.
22865         (ggc_alloc): Define.
22866         (ggc_mark): Likewise.
22867         (ggc_collect): Collect the anys.
22868
22869 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22870
22871         * c-decl.c (mark_binding_level): Make static to match prototype.
22872
22873 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
22874
22875         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
22876
22877 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
22878
22879         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
22880         will use into account.  Expand the max width to 5.
22881         * rtl.c: Likewise.
22882
22883 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
22884
22885         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
22886         for the rtx length.
22887
22888 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
22889
22890         * alpha.md (call value patterns): Remove the result predicates.
22891
22892 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
22893
22894         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
22895         last change.
22896
22897 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22898
22899         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
22900         changed from extern char *, to extern PTR.  Also fix typo in
22901         NEED_DECLARATION_REALLOC test.
22902
22903         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
22904
22905 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22906
22907         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
22908         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
22909         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
22910         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
22911
22912         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
22913
22914         * cccp.c (pcfinclude): Likewise.
22915
22916         * global.c (allocno_compare): Likewise.
22917
22918         * haifa-sched.c (rank_for_schedule): Likewise.
22919
22920         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
22921
22922         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
22923
22924         * stupid.c (stupid_reg_compare): Likewise.
22925
22926         * tree.c (_obstack_allocated_p): Likewise.
22927
22928         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
22929
22930 1999-09-08  Bruce Korb  autogen@linuxbox.com
22931
22932         * Makefile.in: Give the hapless gperf user a hint about
22933         why "gperf -F" fails.
22934
22935 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
22936
22937         * lists.c: Include ggc.h.
22938         (zap_lists): New.
22939         (init_EXPR_INSN_LIST_cache): Install it.
22940
22941         * ggc-simple.c (init_ggc): Absorb the old init.
22942         (ggc_push_context): Use xcalloc.
22943         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
22944         (ggc_collect): Add [rvts] tags to the collection stats.
22945
22946 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
22947
22948         * cccp.c (main): Fix handling of -include and -imacros options.
22949
22950 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
22951
22952         * cpplib.c (cpp_push_buffer): Fix order of arguments.
22953
22954 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
22955
22956         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
22957         genrtl.c.
22958
22959 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
22960
22961         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
22962         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
22963         and SET_DEST. Update comment.
22964
22965 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22966
22967         * config/c4x/c4x.c: Include ggc.h.
22968         (c4x_add_gc_roots): New function.
22969         (c4x_override_options): Call c4x_add_gc_roots.
22970
22971 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
22972
22973         * defaults.h (TARGET_ESC): Move ...
22974         * system.h: ... here, where Linas had it in the first place.  Silly me.
22975
22976 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
22977
22978         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
22979         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
22980         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
22981         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
22982         * defaults.h (TARGET_ESC): Add default.
22983
22984 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
22985
22986         * configure.in: add i370-*-openedition, i370-*-mvs and
22987         i370-*-linux targets
22988
22989 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
22990
22991         * dsp16xxx.c: Include ggc.h
22992         (override_options): Mark GC roots.
22993         * mn10200.c: Include ggc.h.
22994         (asm_file_start): Mark GC roots.
22995         * tahoe.c: Include ggc.h.
22996         (extensible_operand): Mark GC roots.
22997
22998 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
22999
23000         * README: Add section discussing status of ELF ABI.
23001         * i370.c: Fix misc spelling mistakes.
23002         (i370_label_scan): Updated notes, exception handling.
23003         (i370_function_prolog): Simplify ELF stack handling.
23004         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
23005         (STACK_GROWS_DOWNWARD): ELF stack grows down.
23006         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
23007         * i370.md: (movdi): Add notes.
23008         (floatsidf2): Use stack not rtca for scratch float area.
23009         (iorsi3): Correct operand constraints.
23010         * x-oe: Restore TAROUTOPTS which are used by pax.
23011
23012 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
23013
23014         * rs6000.c: Include ggc.h.
23015         (rs6000_add_gc_roots): New function.
23016         (override_options): Call it.
23017
23018 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
23019
23020         * alpha.h (alpha_compare): New.
23021         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
23022         * alpha.c: Likewise for the definitions.
23023         (alpha_emit_conditional_branch): Update for alpha_compare.
23024         (alpha_emit_conditional_move): Likewise.
23025         * alpha.md (cmpdf, cmpdi): Likewise.
23026         (setcc patterns): Likewise.  Zero alpha_compare after use.
23027         (sne): Optimize (x != 0) into (0U < x).
23028
23029 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
23030
23031         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
23032         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
23033         (INIT_EXPANDERS): Remove.
23034         * alpha.c: Include ggc.h.
23035         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
23036         (alpha_init_machine_status, alpha_mark_machine_status): New.
23037         (override_options): Install them.
23038         (struct machine_function): Moved to alpha.h.
23039         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
23040         (alpha_init_expanders): Remove.
23041         (alpha_return_addr): Adjust to use current_function->machine.
23042         (alpha_ra_ever_killed): Likewise.
23043         (alpha_expand_epilogue): Likewise.
23044         * alpha.md (eh_epilogue): Likewise.
23045
23046 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
23047                           Melissa O'Neill  <oneill@cs.sfu.ca>
23048                           Geoffrey Keating  <geoffk@cygnus.com>
23049
23050         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
23051         call-used registers (call-saved registers must still be contiguous
23052         and end with r31, of course).
23053
23054 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
23055
23056         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
23057         (self_promoting_type_p): Delete.
23058         (self_promoting_args_p): Move ...
23059         * c-common.c: ... here.
23060         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
23061         (simple_type_promotes_to): New.
23062         * builtins.c (lang_type_promotes_to): New.
23063         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
23064         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
23065         * c-common.h: ... here.
23066         (self_promoting_args_p, simple_type_promotes_to): Declare.
23067         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
23068         (grokdeclarator): Likewise.
23069         * tree.h (lang_type_promotes_to): Declare.
23070
23071 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
23072
23073         Add some machine-dependent GC roots.
23074         * sparc.c: Include ggc.h.
23075         (sparc_add_gc_roots): New function.
23076         (mark_ultrasparc_pipeline_state): Likewise.
23077         (override_options): Call sparc_add_gc_roots.
23078         * pa.c: Include ggc.h.
23079         (pa_add_gc_roots): New function.
23080         (mark_deferred_plabels): Likewise.
23081         (override_options): Call pa_add_gc_roots.
23082         * mips.c: Include ggc.h.
23083         (mips_add_gc_roots): New function.
23084         (override_options): Use it.
23085
23086 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23087
23088         * cpperror.c (cpp_file_line_for_message): Constify a char*.
23089
23090         * cppexp.c (parse_number, parse_charconst, cpp_lex,
23091         cpp_parse_expr): Add static prototypes.
23092         (parse_charconst): Don't cast away const-ness.
23093         (token): Constify a char*.
23094
23095         * cppfiles.c (file_name_list, include_hash, find_include_file,
23096         finclude, initialize_input_buffer): Constify a char*.
23097         (file_cleanup, find_position): Add static prototypes.
23098
23099         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
23100         collect_expansion): Add static prototypes.
23101         (cpp_install, create_definition, monthnames): Constify a char*.
23102
23103         * cpphash.h (cpp_install): Likewise.
23104
23105         * cppinit.c (known_suffixes, default_include,
23106         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
23107         (base_name, dump_special_to_buffer, initialize_dependency_output):
23108         Add static prototypes.
23109
23110         * cpplib.c (my_strerror): Constify a char*.
23111         (null_underflow, null_cleanup, skip_comment, copy_comment,
23112         copy_rest_of_line, handle_directive, pass_thru_directive,
23113         get_directive_token, read_line_number, cpp_print_file_and_line,
23114         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
23115         v_cpp_warning_with_line, detect_if_not_defined,
23116         consider_directive_while_skipping): Add static prototypes.
23117         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
23118         cpp_pedwarn_with_file_and_line): Constify a char*.
23119
23120         * cpplib.h (cpp_options, include_hash, progname, definition,
23121         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
23122         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
23123         find_include_file, deps_output, include_hash): Constify a char*.
23124
23125         * cppmain.c (progname): Constify.
23126         (main): Add prototype.  Use return, not exit.
23127
23128         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
23129         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
23130         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
23131         check_protection): Add static prototype.
23132         (xfree): Remove.
23133         (progname, recognized_macrom, recognized_extern): Constify a char*.
23134         (main): Add prototype.
23135
23136         * gen-protos.c (progname): Constify a char*.
23137
23138 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
23139
23140         * emit-rtl.c (free_emit_status): Take decl as a parameter.
23141         (init_emit_once): Add more GC roots.
23142         * except.c (mark_func_eh_entry): New function.
23143         (mark_eh_node): Mark false_label and rethrow_label.
23144         (init_eh): Add more GC roots.
23145         * function.c (free_after_compilation): Take decl as a paramter.
23146         Call free_stmt_status.
23147         (mark_function_state): Don't assume x_parm_reg_stack_loc is
23148         non-NULL.
23149         * function.h (free_after_compilation): Change prototype.
23150         (free_varasm_status): Likewise.
23151         (free_emit_status): Likewise.
23152         (free_stmt_status): New function.
23153         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
23154         Remove, replacing with ...
23155         (ggc_status): New structure.
23156         (ggc_chain): New variable.
23157         (init_gcc): Define.
23158         (ggc_push_context): New function.
23159         (ggc_pop_context): Likewise.
23160         (ggc_alloc_rtx): Adjust for use of ggc_chain.
23161         (ggc_alloc_rtvec): Likewise.
23162         (ggc_alloc_tree): Likewise.
23163         (ggc_alloc_string): Likewise.
23164         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
23165         (ggc_mark_tree): Give language-dependent code a chance to mark
23166         `x' nodes.
23167         (ggc_mark_tree_varray): Handle empty arrays.
23168         (ggc_collect): Adjust for use of ggc_chain.  Clear
23169         bytes_alloced_since_last_gc.
23170         * ggc.h (ggc_pop_context): New function.
23171         (ggc_push_context): Likewise.
23172         * print-tree.c (print_node): Don't print obstacks when GC'ing.
23173         * stmt.c (free_stmt_status): New function.
23174         (init_stmt_for_function): Clear last_expr_value.
23175         * toplev.c (rest_of_compilation): Always call free_after_compilation.
23176         Conditionalize call to ggc_collect.
23177         (main): Call init_ggc.
23178         * tree.c (push_obstacks): Do the push, even when GC'ing.
23179         (push_obstacks_nochange): Likewise.
23180         (pop_obstacks): Liekwise.
23181         * varasm.c (free_varasm_status): Take decl as a parameter.
23182
23183 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23184
23185         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
23186         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
23187         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
23188         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
23189
23190 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
23191
23192         * pa/x-pa-mpeix: New file for the MPE port.
23193
23194         * pa/quadlib.asm: New file for long double support.
23195
23196         * configure.in: Add hppa1.0-*-mpeix for MPE port.
23197         * configure: Rebuilt.
23198
23199 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
23200
23201         * final.c (shorten_branches): Fix last change.
23202
23203 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
23204
23205         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
23206
23207 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
23208
23209         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
23210         details.
23211
23212 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23213
23214         * c-aux-info.c (concat): Don't define.
23215
23216         * cccp.c (my_strerror): Likewise.  All callers changed to use
23217         xstrerror instead.
23218         (do_include): Call xstrdup, not xmalloc/strcpy.
23219         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
23220         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
23221
23222         * collect2.c (my_strsignal): Likewise.  All callers changed to use
23223         strsignal instead.
23224         (locatelib): Call xstrdup, not xmalloc/strcpy.
23225
23226         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
23227
23228         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
23229
23230         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
23231
23232         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
23233
23234         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
23235
23236         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
23237
23238         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
23239         malloc/realloc.
23240         (find_all_handler_type_matches): Likewise.  Don't check return
23241         value.
23242         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
23243         xmalloc, not malloc.
23244         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
23245
23246         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
23247         (init_spec): Call xcalloc, not xmalloc/bzero.
23248         (set_spec): Call xstrdup, not save_string.
23249         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
23250         (find_a_file): Call xstrdup, not xmalloc/strcpy.
23251         (process_command): Call xstrdup, not save_string.
23252         (main): Call xcalloc, not xmalloc/bzero.
23253
23254         * gcov.c (xmalloc): Don't define.
23255         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
23256         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
23257         (output_data): Call xcalloc, not xmalloc/bzero.
23258
23259         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
23260
23261         * mips-tdump.c (xmalloc): Don't define.
23262         (print_symbol): Call xmalloc, not malloc.
23263         (read_tfile): Call xcalloc, not calloc.
23264
23265         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
23266         Don't define.  All callers of xfree/my_strsignal changed to use
23267         free/strsignal instead.
23268         (allocate_cluster): Call xcalloc, not calloc.
23269
23270         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
23271         Fix memory leak, free allocated memory.
23272
23273         * prefix.c (translate_name): Call xstrdup, not save_string.
23274         (update_path): Likewise.
23275
23276         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
23277
23278         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
23279         Don't define.  Callers of xfree/savestring2 changed to use
23280         free/concat instead.
23281
23282         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
23283         (init_elim_table): Likewise.
23284
23285         * resource.c (init_resource_info): Likewise.
23286
23287         * stupid.c (stupid_life_analysis): Likewise.
23288
23289         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
23290         (open_dump_file): Call concat, not xmalloc/strcpy/...
23291         (clean_dump_file): Likewise.
23292         (compile_file): Call xstrdup, not xmalloc/strcpy.
23293
23294 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
23295
23296         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
23297         * v850.c (v850_va_arg): New.
23298
23299 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
23300
23301         * haifa-sched.c: Tidy comments.
23302
23303 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23304
23305         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
23306         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
23307         $(out_object_file)): Depend on ggc.h.
23308         * c-common.c: Include "ggc.h".
23309         (combine_strings): If doing GC, use ggc_alloc_string.
23310         * c-decl.c: Include "ggc.h".
23311         (ggc_p): Define with value 0.
23312         (mark_binding_level): New function.
23313         (init_decl_processing): Add GC roots.
23314         (mark_c_function_context): New function.
23315         (lang_mark_false_label_stack): New function.
23316         (lang_mark_tree): New function.
23317         (lang_cleanup_tree): New function.
23318         * c-lang.c: Include "ggc.h".
23319         (lang_init): Call c_parse_init.
23320         * c-lex.c: Include "ggc.h".
23321         (check_linenum): If doing GC, don't copy filenames to permanent
23322         obstack.
23323         * c-parse.in: Include "ggc.h".
23324         (c_parse_init): New function.
23325         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
23326         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
23327
23328         * except.c (mark_eh_state): Mark more state.
23329         * function.c (mark_function_state): Likewise.
23330         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
23331         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
23332         * toplev.c (mark_file_stack): New function.
23333         (compile_file): If doing GC, use ggc_alloc_string on input filename.
23334         (main): Add root for input_file_stack.
23335
23336         * i386.c: Include "ggc.h".
23337         (ix86_mark_machine_status): New function.
23338         (override_options): Set mark_machine_status.
23339
23340 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23341
23342         * tree.c (copy_node): Copy node contents also if doing GC.
23343
23344 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
23345
23346         * collect2.c (scan_libraries): Fix double-thinko :-).
23347
23348 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
23349
23350         * collect2.c (scan_libraries): Fix thinko.
23351
23352         * cse.c (delete_trivially_dead_insns): Do not skip the last
23353         insn if it is a real insn.
23354
23355 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
23356
23357         * Makefile.in (ggc-simple.o): Depend on hash.h.
23358         * ggc.h (ggc_add_tree_hash_table_root): Declare.
23359         (ggc_mark_tree_varray): Likewise.
23360         (ggc_mark_tree_hash_table): Likewise.
23361         * ggc-simple.c: Include hash.h.
23362         (ggc_mark_tree_hash_table_ptr): New function.
23363         (ggc_mark_tree_hash_table_entry): Likewise.
23364         (ggc_mark_tree_hash_table): Likewise.
23365         (ggc_add_tree_hash_table_root): Likewise.
23366         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
23367         rtx, when defining fields.
23368
23369 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
23370
23371         * profile.c (output_func_start_profiler): Remove apparently
23372         nonsensical call to start_sequence.
23373
23374 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
23375
23376         * clipper/clipper.c (clipper_va_start): Fix typos.
23377
23378         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
23379         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
23380         (spur_va_arg): New stub.
23381
23382         * configure.in: Comment out pyramid.
23383
23384 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
23385
23386         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
23387         don't conflict with the bits that win32, cygwin, and dgux
23388         defines.
23389
23390 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
23391                           Bernd Schmidt <bernds@cygnus.co.uk>
23392
23393         * integrate.c (function_cannot_inline_p): Do not inline
23394         functions with forced labels.
23395
23396 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
23397                           Bernd Schmidt <bernds@cygnus.co.uk>
23398                           Mark Mitchell  <mark@codesourcery.com>
23399
23400         * Makefile.in (ggc-simple.o): Depend on varray.h.
23401         (rtl.o): Depend on ggc.h.
23402         (genattrtab.o): Depend on ggc.h.
23403         (print-tree.o): Likewise.
23404         (fold-const.o): Likewise.
23405         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
23406         (make_insn_raw): Don't cache insns when GC'ing.
23407         (emit_insn_before): Likewise.
23408         (emit_insn_after): Likewise.
23409         (emit_insn): Likewise.
23410         (start_sequence): Use xmalloc to allocate the sequence_stack.
23411         (end_sequence): Add free to free it.
23412         (gen_sequence): Don't cache insns when GC'ing.
23413         (clear_emit_caches): Don't use sequence_element_free_list.
23414         (init_emit): Use xcalloc, not xmalloc+bzero.
23415         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
23416         * function.c (pop_function_context_from): Use free to free the
23417         fixup_var_refs_queue.
23418         (put_reg_into_stack): Allocate it with xmalloc.
23419         * genattrtab.c: Include ggc.h.
23420         (operate_exp): Don't use obstack_free when GC'ing.
23421         (simplify_cond): Likewise.
23422         (simplify_text_exp): Likewise.
23423         (optimize_attrs): Likewise.
23424         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
23425         GC'ing.
23426         (gencode): Generate a #include for ggc.h.
23427         * ggc-callbacks.c (ggc_p): Define it to zero.
23428         * ggc-none.c (ggc_p): Likewise.
23429         * ggc-simple.c: Include varray.h.
23430         (ggc_mark_tree_varray): New function.
23431         (ggc_add_tree_varray_root): Likewise.
23432         (ggc_mark_tree_varray_ptr): Likewise.
23433         * ggc.h (ggc_p): Declare.
23434         (varray_head_tag): Likewise.
23435         (ggc_add_tree_varray_root): Declare.
23436         * print-tree.c (print_node): Don't check for TREE_PERMANENT
23437         inconsistencies when GC'ing.
23438         * rtl.c: Include ggc.h.
23439         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
23440         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
23441         (rtx_free): Don't call obstack_free when GC'ing.
23442         * toplev.c (rest_of_compilation): Call ggc_collect after every
23443         pass, if GC'ing.
23444         * tree.c (push_obstacks): Do nothing, if GC'ing.
23445         (pop_obstacks_nochange): Likewise.
23446         (pop_obstacks): Likewise.
23447         (make_node): Use ggc_alloc_tree when GC'ing.
23448         (copy_node): Likewise.
23449         (get_identifier): Use ggc_alloc_string when GC'ing.
23450         (build_string): Likewise.
23451         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
23452         (tree_cons): Likewise.
23453         (build1): Likewise.
23454         (type_hash_canon): Don't call obstack_free when GC'ing.
23455
23456 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
23457
23458         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
23459         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
23460
23461 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
23462                           Bernd Schmidt <bernds@cygnus.co.uk>
23463                           Mark Mitchell  <mark@codesourcery.com>
23464
23465         * Makefile.in (stor-layout.o): Depend on ggc.h.
23466         (expr.o): Depend on ggc.h.
23467         (profile.o): Depend on ggc.h.
23468         (stor-layout.o): Depend on ggc.h.
23469         * emit-rtl.c (init_emit_once): Add gc roots.
23470         * expr.c: Include ggc.h.
23471         (emit_block_move): Add gc roots.
23472         (clear_storage): Likewise.
23473         * expr.h (init_stor_layout_once): New function.
23474         * profile.c: Include ggc.h.
23475         (init_arc_profiler): profiler_label is a root.
23476         * scan.c (make_sstring_space): Trust xrealloc to function
23477         correctly with first parameter NULL.
23478         * stor-layout.c: Include ggc.h.
23479         (set_sizetype): Add gc root.
23480         (init_stor_layout_once): New function.
23481         * toplev.c (compile_file): Call it.
23482
23483 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
23484                           Bernd Schmidt <bernds@cygnus.co.uk>
23485                           Mark Mitchell  <mark@codesourcery.com>
23486
23487         * Makefile.in (tree.o): Depend on ggc.h.
23488         (varasm.o): Likewise.
23489         (function.o): Likewise.
23490         (stmt.o): Likewise.
23491         (except.o): Likewise.
23492         (optabs.o): Likewise.
23493         (emit-rtl.o): Likewise.
23494         * emit-rtl.c: Include ggc.h.
23495         (sequence_element_free_list): Remove, and all references.
23496         (mark_sequence): New functions.
23497         (mark_emit_state): New function.
23498         * except.c: Include ggc.h.
23499         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
23500         (mark_tree_label_node): New functions.
23501         (mark_eh_state): New function.
23502         * function.c: Include ggc.h.
23503         (mark_temp_slot, mark_function_chain): New functions.
23504         (mark_function_state): New function.
23505         (init_function_once): New function.
23506         * function.h (init_function_once): New function.
23507         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
23508         * ggc.h (label_node): Declare.
23509         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
23510         (lang_mark_false_label_stack): New function.
23511         (mark_temp_slot): Remove declaration.
23512         (mark_function_chain): Likewise.
23513         (mark_eh_state): Adjust prototype.
23514         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
23515         Likewise.
23516         * optabs.c: Include ggc.h.
23517         (mark_optab): New function.
23518         (init_optabs): Add gc roots.
23519         * stmt.c: Include ggc.h.
23520         (mark_cond_nesting, mark_loop_nesting): New functions.
23521         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
23522         (mark_stmt_state): New function.
23523         * toplev.c (compile_file): Call init_function_once.
23524         * tree.c: Include ggc.h.
23525         (type_hash): Move declaration earlier in file.
23526         (TYPE_HASH_SIZE, type_hash_table): Likewise.
23527         (init_obstacks): Add gc roots.
23528         (mark_type_hash): New function.
23529         * varasm.c: Include ggc.h.
23530         (mark_pool_constant): New function.
23531         (mark_varasm_state): New function.
23532
23533 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23534
23535         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
23536
23537 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
23538
23539         * c-decl.c (struct language_function): Renamed from struct c_function.
23540         Delete elt NEXT.
23541         (c_function_chain): Delete.
23542         (push_c_function_context): New arg F.  Don't warn about nested
23543         functions here.  Fill LANGUAGE elt of F.  Delete code to update
23544         c_function_chain.  Don't call push_function_context.
23545         (pop_c_function_context): New arg F.  Restore from there instead of
23546         from c_function_chain.  Don't call pop_function_context.  Clear out
23547         LANGUAGE field of F when done.
23548         * c-lang.c: Include "function.h"
23549         (lang_init): Initialize save_lang_status and restore_lang_status.
23550         * c-parse.in (nested_function, nested_function_notype): Warn about
23551         nested functions.  Call push_function_context/pop_function_context
23552         instead of the _c_ variants.
23553         * c-tree.h (push_c_function_context, pop_c_function_context): Update
23554         prototype.
23555         * Makefile.in (c-lang.o): Update dependencies.
23556
23557         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
23558         regno_pointer_flag, regno_pointer_align.
23559         (gen_reg_rtx): Use xrealloc to enlarge them.
23560         (free_emit_status): New function.
23561         * function.c (mark_machine_status, mark_lang_status): New variables.
23562         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
23563         in some bits from assign_stack_local.  All callers changed to use new
23564         name.
23565         (assign_stack_local): Just call assign_stack_local_1.
23566         (free_after_compilation): New function.
23567         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
23568         (trampoline_address): Likewise.
23569         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
23570         (prepare_function_start): Explicitly clear some more variables.
23571         * function.h (struct function): New elt can_garbage_collect.
23572         (mark_machine_status, mark_lang_status): Declare variables.
23573         (free_after_compilation, free_emit_status, free_varasm_status,
23574         init_varasm_status): Declare functions.
23575         * toplev.c (rest_of_compilation): Call free_after_compilation when
23576         done with the current function.
23577         * varasm.c (free_varasm_status): New function.
23578
23579 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
23580
23581         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
23582         (EXPAND_BUILTIN_VA_ARG): Define.
23583         * sparc.c (sparc_va_start): New.
23584         (sparc_va_arg): New.
23585
23586 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
23587
23588         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
23589
23590 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
23591
23592         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
23593
23594 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
23595
23596         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
23597         (OBJS): Add $(GGC).
23598         (ggc-callbacks.o): New target.
23599         * ggc-callbacks.c: New file.
23600
23601 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23602
23603         * expr.h: Collapse individual optab and libfunc vars to arrays.
23604         (optab_index, libfunc_index): New enumerations.
23605         (optab_table, libfunc_table): New arrays.
23606         Add accessor macros for both.
23607
23608         * optabs.c (optab_table, libfunc_table): New.
23609         Delete declarations for individual optab and libfunc vars.
23610
23611 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
23612
23613         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
23614
23615 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
23616
23617         * Makefile.in (GGC, GGC_LIB): New.
23618         (HOST_RTL): Include ggc-none.o.
23619         (ggc-simple.o): New target.
23620         (ggc-none.o): Likewise.
23621         * tree.h (tree_common): Add gc_mark.
23622         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
23623         (struct rtvec_def): Add gc_mark.
23624         * emit-rtl.c (global_rtl): Update static initializers to contain
23625         enough initializers.
23626         * ggc.h, ggc-none.c, ggc-simple.c: New files.
23627         * toplev.c (gc_time): New variable.
23628         (all_time): New variable.
23629         (compile_file): Print gc time.
23630         (print_time): Calculate percentage of the whole.
23631
23632 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23633
23634         Change obstack memory management and varasm constant pool handling so
23635         that nested functions are treated like any other functions.
23636         * function.c (init_machine_status): New variable.
23637         (push_function_context_to): Set contains_functions for the outer
23638         function.  Don't call save_varasm_status.
23639         (pop_function_context_from): Don't call restore_varasm_status.  Don't
23640         set current_function_contains_functions.
23641         (prepare_function_start): Call init_varasm_status rather than
23642         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
23643         is non-null.
23644         * function.h (struct function) Add field varasm.  Delete fields
23645         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
23646         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
23647         (init_machine_status): Declare.
23648         (save_varasm_status, restore_varasm_status): Delete declarations.
23649         (save_tree_status, restore_tree_status): Delete last argument.
23650         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
23651         code.  All callers changed.
23652         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
23653         save_constants_in_decl_trees, restore_constants, save_constants,
23654         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
23655         functions.
23656         (inlining): New variable.
23657         (reg_map, label_map, insn_map, orig_asm_operands_vector,
23658         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
23659         variables.
23660         (save_for_inline_nocopy): Don't save constants.
23661         Don't set inl_emit field in current_function.
23662         (expand_inline_function): Use emit field, not inl_emit, of the inlined
23663         function.  Set new variable inlining before
23664         calling copy_rtx_and_substitute.
23665         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
23666         constant pool references if inlining is nonzero.
23667         Delete ADDRESS and (most of the) CONST cases.
23668         (output_inline_function): Save and restore current_function/
23669         current_function_decl.  Delete restore_constants code.  Don't call
23670         init_const_rtx_hash_table.
23671         * output.h (init_const_rtx_hash_table): Don't declare.
23672         * rtl.h (struct function): Declare.
23673         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
23674         * toplev.c (rest_of_compilation): Don't treat nested functions or
23675         functions containing them specially.  Delete all code to deal with
23676         save_for_inline_copying.
23677         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
23678         inline_obstacks): Delete variables.
23679         (save_tree_status): Lose arg CONTEXT.  All callers changed.
23680         Simply allocate a new function_maybepermanent_obstack for the new
23681         function, delete all the special cases.
23682         Don't save inline_obstacks.
23683         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
23684         Delete special handling for function_maybepermanent_obstack; simply
23685         free it if empty.
23686         Don't restore inline_obstacks.
23687         (permanent_allocation):  Delete code that frees inline_obstacks.
23688         (print_inline_obstack_statistics): Delete function.
23689         (dump_tree_statistics): Don't call it.
23690         * varasm.c (struct varasm_status): New.
23691         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
23692         last_pool, pool_offset, const_double_chain): Delete global
23693         variables, replace with accessor macros.
23694         (immed_double_const): Don't walk const_double_chain outside a
23695         function, but don't treat nested functions specially anymore.
23696         (immed_real_const_1): Likewise.
23697         (clear_const_double_mem): Don't treat nested functions specially.
23698         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
23699         (save_varasm_status, restore_varasm_status): Delete functions.
23700         (init_varasm_status): New function.
23701         (force_const_mem): Don't treat nested functions specially.
23702         (find_pool_constant): Accept new arg F, search for constants in
23703         that function's pool rather than the current one.  All callers
23704         changed.
23705         (get_pool_constant_for_function, get_pool_mode_for_function): New
23706         functions.
23707
23708         * i386.c (init_386_machine_status): New function, mostly from
23709         clear_386_stack_locals.
23710         (struct machine_functions): Rename element names to avoid name
23711         clashes.
23712         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
23713         macros, replacing global variables.
23714         (clear_386_stack_locals, save_386_machine_status,
23715         restore_386_machine_status): Delete functions.
23716         (override_options): Initialize init_machine_status.
23717         * i386.h (INIT_EXPANDERS): Delete macro.
23718         (save_386_machine_status, restore_386_machine_status,
23719         clear_386_stack_locals): Delete declarations.
23720
23721 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
23722
23723         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
23724         (doloop_begin):  Simplify pattern and use emit_jump_insn.
23725         (doloop_end): Simplify pattern, switch operand order,
23726         and use emit_jump_insn.
23727
23728 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
23729
23730         * function.h (struct function): Add new element LANGUAGE.
23731         (save_lang_status): Declare new variable.
23732         (restore_lang_status): Likewise.
23733         * function.c (save_lang_status): Define.
23734         (restore_lang_status): Likewise.
23735         (push_function_context_to): Call language-specific save function.
23736         (pop_function_context_from): Call language-specific restore function.
23737
23738 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
23739
23740         * i386.md (movsf_1): Check REG_P before use of REGNO.
23741         (movdf_1): Likewise.
23742         (movxf_1): Likewise.
23743         (extendsfdf2): Likewise.
23744         (extendsfxf2): Likewise.
23745         (extenddfxf2): Likewise.
23746
23747 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
23748
23749         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
23750         constants into memory.
23751         (c4x_shiftable_constant): New function.
23752         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
23753         (c4x_shiftable_constant): Declare.
23754         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
23755         ashlqi3_noclobber): Add new patterns and associated splitters.
23756
23757 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
23758
23759         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
23760         * dwarf2out.c (dwarf2out_frame_init): Likewise.
23761         * final.c (shorten_branches): Likewise.
23762         * global.c (global_alloc): Likewise.
23763         * haifa-sched.c (build_control_flow): Likewise.
23764         * stmt.c (check_for_full_enumeration_handling): Likewise.
23765         (estimate_case_costs): Likewise.
23766
23767 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
23768
23769         * rtl.h (RTL_CHECKC2): Fix typo in last change.
23770
23771 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
23772
23773         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
23774         (recompute_reg_usage): Likewise.
23775         * rtlanal.c (find_regno_fusage): Likewise.
23776
23777         * rtl.c (rtl_check_failed_code1): New function.
23778         (rtl_check_failed_code2): New.
23779         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
23780         (RTL_CHECKC1, RTL_CHECKC2): New.
23781         (XC*): New accessor macros.
23782         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
23783         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
23784         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
23785         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
23786         (TRAP_*, RANGE_INFO_*): Likewise.
23787
23788 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23789
23790         * Makefile.in (tlink.o): Don't depend on toplev.h.
23791
23792         * collect2.c (c_file, o_file, export_file, import_file, ldout,
23793         output_file, nm_file_name, ldd_file_name, strip_file_name,
23794         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
23795         add_prefix, prefix_from_env, prefix_from_string, do_wait,
23796         fork_execute, maybe_unlink, add_to_list,
23797         extract_init_priority, write_list, dump_list,
23798         dump_prefix_list, write_list_with_asm, write_c_file,
23799         write_c_file_stat, write_c_file_glob, scan_prog_file,
23800         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
23801         ignore_library, extract_string, notice, dump_file, target_machine,
23802         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
23803         read_file, print_load_command): Constify a char*.
23804         (fdopen, error, fatal, fatal_perror): Don't prototype.
23805         (my_strerror): Remove.  All callers use xstrerror instead.
23806         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
23807         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
23808         to xcalloc/strcpy/strcat/...  to one call to concat.
23809         (main, scan_prog_file, scan_libraries): Use an intermediate
23810         `const char **' to build an argv array.
23811         (mapfile, libselect, libcompare, locatelib): Add prototypes.
23812
23813         * collect2.h (collect_execute, collect_wait, dump_file,
23814         file_exists): Constify a char*.
23815         (ldout, c_file_name, temporary_obstack, permanent_obstack,
23816         temporary_firstobj, vflag, debug): Add extern declarations.
23817         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
23818
23819         * tlink.c: Don't include toplev.h.
23820         (vflag, debug, ldout, c_file_name, temporary_obstack,
23821         permanent_obstack, temporary_firstobj): Don't declare.
23822         (tlink_execute, frob_extension, symbol_hash_lookup,
23823         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
23824         recompile_files, read_repo_files, demangle_new_symbols,
23825         scan_linker_output): Constify a char*.
23826         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
23827         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
23828
23829 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
23830
23831         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
23832         (relative) rather than jsr (absolute) subroutine call insns.
23833         * config/m68k/m68k-coff.h: Ditto.
23834
23835 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
23836
23837         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
23838         now rework these too.
23839         (arm_reorg): If an insn can't reach the end of the current pool,
23840         ensure that we emit that pool before the insn.
23841
23842 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
23843
23844         * tlink.c (scan_linker_output): Skip the initial underscore in
23845         a mangled name if appropriate.
23846
23847 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23848
23849         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
23850         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
23851         error_with_ivar, gen_declarator, create_builtin_decl,
23852         my_build_string, generate_descriptor_table, generate_ivars_list,
23853         generate_dispatch_table, check_protocols, TAG_GETCLASS,
23854         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
23855         dump_base_name, lang_decode_option, build_encode_expr,
23856         start_class, finish_class, encode_pointer, really_start_method,
23857         gen_declaration, dump_interface, handle_class_ref, handle_impent):
23858         Constify.
23859         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
23860         Add static prototypes.
23861         (build_objc_string_decl, build_selector_reference_decl,
23862         encode_bitfield, build_class_reference_decl): Remove unused
23863         parameter, all callers changed.
23864         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
23865         (objc_printable_name): Likewise.  Change second parameter to type int.
23866         (init_objc): Use memcpy, not bcopy, to avoid casts.
23867
23868 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
23869
23870         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
23871         reg notes on a deleted insn.
23872         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
23873
23874 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
23875
23876         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
23877
23878 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23879
23880         * stmt.c (expand_asm_operands): Fix index into inout_mode when
23881         reading it.
23882
23883 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
23884
23885         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
23886         * tm.texi (MD_ASM_CLOBBERS): Document it.
23887
23888 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
23889
23890         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
23891         * except.c (expand_rethrow): Remove unused variable.
23892         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
23893         * flow.c (replace_insns): Likewise.
23894         (create_edge_list, verify_edge_list): Likewise.
23895         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
23896
23897         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
23898         is special code to run.
23899         (main): Don't define operands to emit_operand.
23900         * genrecog.c (main): Don't emit an empty peephole2_insn function.
23901
23902         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
23903
23904         * alpha/alpha.h (normal_memory_operand): Declare.
23905         (reg_no_subreg_operand): Declare.
23906         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
23907
23908 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
23909
23910         * c-parse.in (compstmt_primary_start): New, broken out of first
23911         part of compstmt handling in primary.
23912         (primary): Use it.  Add an error clause.
23913         (compstmt_nostart): Renamed from compstmt; remove all
23914         initial invocations of compstmt_start.
23915         (compstmt): New.
23916
23917 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
23918
23919         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
23920         needed.
23921
23922 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
23923
23924         * combine.c (simplify_shift_const): Remove extra semicolon.
23925         * dwarf2out.c (remove_AT): Likewise.
23926         * expmed.c (expand_mult): Likewise.
23927         * gcov.c (create_program_flow_graph): Likewise.
23928         * reorg.c (mostly_true_jump): Likewise.
23929
23930 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
23931
23932         * fold-const.c (fold_range_test): Do not try to fold the range
23933         test if the rhs or lhs has side effects.
23934
23935         * combine.c (simplify_rtx): Recognize another case of a synthesized
23936         sign extension.
23937
23938         * varasm.c (mark_constant_pool): When marking indirect references,
23939         only look at SYMBOL_REFs.
23940
23941         * except.c (expand_fixup_region_end): Do not peek at
23942         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
23943
23944 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
23945
23946         * flags.h: New variables align_loops, align_loops_log,
23947         align_jumps, align_jumps_log, align_labels, align_labels_log,
23948         align_functions, align_functions_log.
23949         * toplev.c: Define them.
23950         (f_options): Handle -falign-* when they have no argument.
23951         (main): Add logic to set variables for -falign-functions,
23952         -falign-jumps, -falign-labels, -falign-loops.
23953         Make it -fsched-verbose=<n> and -finline-limit=<n>.
23954         (display_help): Change help to match options.
23955         * final.c (LABEL_ALIGN): Default to align_labels_log.
23956         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
23957         (LOOP_ALIGN): Default to align_loops_log.
23958         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
23959         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
23960         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
23961         * varasm.c (assemble_start_function): Handle align_functions.
23962
23963         * config/sparc/sparc.h: Don't declare sparc_align_*.
23964         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
23965         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
23966         sparc.c.
23967         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
23968         it's a promise.
23969         * config/sparc/sparc.c: Delete sparc_align_loops,
23970         sparc_align_jumps, sparc_align_funcs and the corresponding string
23971         variables.
23972         (sparc_override_options): Default align_functions on ultrasparc.
23973         Delete -malign-* handling.
23974
23975         * config/mips/mips.c (override_options):  On 64-bit targets,
23976         try to align code to 64-bit boundaries.
23977         (print_operand): New substitution, %~,
23978         which aligns labels to align_labels_log.
23979         * config/mips/mips.md (div_trap_normal): Use %~.
23980         (div_trap_mips16): Likewise.
23981         (abssi): Likewise.
23982         (absdi2): Likewise.
23983         (ffssi2): Likewise.
23984         (ffsdi2): Likewise.
23985         (ashldi3_internal): Likewise.
23986         (ashrdi3_internal): Likewise.
23987         (lshrdi3_internal): Likewise.
23988         (casesi_internal): Likewise.
23989
23990 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
23991
23992         Merge new ia32 backend from the branch!
23993
23994         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
23995         See ChangeLog.P2 on new_ia32_branch for details.
23996
23997         * rtl.h (stack_regs_mentioned_p): Delete prototype.
23998         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
23999         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
24000         * i386/gas.h (ASM_FILE_START): Define.
24001         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
24002         for name change of ix86_valid_decl_attribute_p.
24003         (i386_pe_valid_type_attribute_p): Similarly.
24004
24005 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
24006
24007         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
24008         to step through CC modes.
24009
24010 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24011
24012         * regmove.c (fixup_match_1): Don't move INSN in front of P if
24013         it would end up in the shadow of a live flags regsiter.
24014
24015 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24016
24017         * reload1.c: Fix many indentation problems.
24018         * reload.c: Likewise.
24019
24020 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
24021
24022         * alias.c (non_local_reference_p): Constify fmt.
24023
24024 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
24025
24026         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
24027
24028 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
24029
24030         * cse.c (delete_trivially_dead_insns): Do not delete stores to
24031         the internal_arg_pointer.
24032
24033 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
24034
24035         Merge peephole2 from new_ia32_branch:
24036         * Makefile.in (STAGESTUFF): Add *.peephole2.
24037         (mostlyclean): Likewise.
24038         (recog.o): Depend on resource.h.
24039
24040         * final.c (peephole): Conditionalize decl on HAVE_peephole.
24041         (final_scan_insn): Likewise for the invocation of peephole.
24042         * genconfig.c (main): Look for peephole and peephole2 patterns.
24043         Emit HAVE_peephole* accordingly.
24044         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
24045         * flags.h (flag_peephole2): Declare.
24046         * toplev.c: New pass peephole2.  New flag -fpeephole2.
24047
24048         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
24049         * gencodes.c (main): Likewise.
24050         * genextract.c (main): Likewise.
24051         * genoutput.c (main): Likewise.
24052         * genemit.c (max_operand_1): Look for the max scratch operand.
24053         (gen_rtx_scratch): New.
24054         (gen_exp): Use it, and pass on new arg subroutine_type.
24055         (gen_expand): Take max scratch into account.
24056         (gen_split): Emit peephole2 functions.
24057         (output_peephole2_scratch): New.
24058         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
24059         * genrecog.c (routine_type): Add PEEPHOLE2.
24060         (IS_SPLIT): New.
24061         (make_insn_sequence): Match outer parallel for peep2.  Discard
24062         top level scratches and dups.
24063         (add_to_sequence): New args insn_type and top.  Update all callers.
24064         Handle toplevel peep2 matching insns.
24065         (write_subroutine): Handle peep2.
24066         (write_tree_1): Likewise.
24067         (write_tree): Likewise.
24068         (main): Likewise.
24069         (change_state): New arg afterward.  Update all callers.
24070         Handle matching separate insns.
24071         * recog.c (recog_next_insn): New.
24072         (peephole2_optimize): New.
24073         * rtl.def (DEFINE_PEEPHOLE2): New.
24074         * resource.c (find_free_register): New argument last_insn.  Use it
24075         to find a register available through the entire span.
24076         * resource.h (find_free_register): Update prototype.
24077
24078 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
24079
24080         * i386.c (output_strlen_unroll): Don't write xops[7]
24081         label if it wasn't set.
24082
24083 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
24084
24085         * cpplib.c (struct directive): Const-ify name pointer and
24086         function pointer prototype.
24087         (validate_else, do_define, do_line, do_include, do_undef,
24088         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
24089         do_elif, do_endif, do_sccs, do_assert, do_unassert,
24090         do_warning): Const-ify second arg.
24091         (directive_table): Mark const.  Reorder entries by frequency
24092         of usage, record statistics.
24093
24094 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
24095
24096         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
24097         bounds- check RTL accesses if --enable-checking.
24098         (RTVEC_ELT): Bounds check if --enable-checking.
24099         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
24100         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
24101         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
24102         GET_NUM_ELEM.
24103         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
24104         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
24105
24106         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
24107         (NOTE_SOURCE_FILE): Use X0STR.
24108         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
24109         MEM_ALIAS_SET): Use X0INT.
24110         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
24111         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
24112         Use X0EXP.
24113         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
24114         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
24115         (rtl_check_failed_bounds, rtl_check_failed_type1,
24116         rtl_check_failed_type2, rtvec_check_failed_bounds): New
24117         functions.
24118         (fancy_abort): Fix comment.
24119
24120         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
24121         (cse_insn): Decrement LABEL_NUSES for jump target before
24122         deleting jump insn.
24123         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
24124         * final.c (alter_subreg): Compute regno before changing x to
24125         REG; set REGNO(x) after changing it.
24126         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
24127         notes containing CONST_INTs.
24128         (delete_eh_regions): Use NOTE_EH_HANDLER.
24129         * function.c (put_reg_into_stack): Make reg a MEM before
24130         initializing it.
24131         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
24132         delete insn.
24133         (gen_mem_addressof): Make reg a MEM before initializing it.
24134         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
24135         X0WINT.
24136         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
24137         deleting an insn, not after.
24138         (block_alloc): Only look at PATTERN(insn) if we have to, and
24139         only if it's format class 'i'.
24140         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
24141         CONST_INT before using its INTVAL.
24142         * print-rtl.c (print_rtx): Use X0STR.
24143         * regmove.c (fixup_match_1): Don't look at PATTERN of
24144         non-class-'i' insn chain elements.
24145         * reload.c (loc_mentioned_in_p): Take address of
24146         in->fld[1].rtx directly.
24147         * reload1.c (reload): Change reg to a MEM before initializing
24148         it.
24149         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
24150         have no names.
24151         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
24152
24153 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
24154
24155         * config/mips/mips.c (machine_dependent_reorg): Force a
24156         barrier to output the local constant pool if a barrier hasn't
24157         been found at a natural point in the instruction stream.
24158
24159 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24160
24161         * c-parse.in (language_string): Constify.
24162
24163         * dwarf2out.c (language_string): Remove declaration.
24164
24165         * dwarfout.c (language_string): Likewise.
24166
24167         * toplev.c (language_string, init_parse, finish_parse): Likewise.
24168
24169         * tree.h (language_string, init_parse, finish_parse): Declare.
24170
24171         * i386/sun386.h (language_string): Remove declaration.
24172
24173         * mips.h (language_string): Likewise.
24174
24175         * nextstep.h (language_string): Likewise.
24176
24177         * nextstep21.h (language_string): Likewise.
24178
24179         * rs6000.c (language_string): Likewise.
24180
24181 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24182
24183         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
24184         (getpwd.o): Remove target.
24185
24186         * getpwd.c: Delete file.  Its in libiberty now.
24187
24188         * dbxout.c (getpwd): Don't prototype.
24189         * dwarf2out.c (getpwd): Likewise
24190         * dwarfout.c (getpwd): Likewise
24191         * final.c (getpwd): Likewise.
24192         * protoize.c (getpwd): Likewise.
24193
24194 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24195
24196         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
24197
24198 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
24199
24200         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
24201         mark_set_resources.
24202
24203 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
24204
24205         * fixinc/Makefile.in (subdir): New.
24206         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
24207         (Makefile): New.
24208
24209 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
24210
24211         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
24212         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
24213         be shared.
24214
24215         * invoke.texi: Fix typo.
24216
24217         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
24218         changed.  Handle autoincrement addressing modes.
24219
24220         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
24221         just like we would the virtual incoming args register when
24222         integrating.
24223
24224 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
24225
24226         * rs6000.h (ASM_FILE_START): Specify complete filename, including
24227         path, in .file directive.
24228
24229 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
24230
24231         * gcc.texi (External Bugs): Remove obsolete note about Perl on
24232         SunOS.
24233
24234 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
24235
24236         * stdbool.h: Make the typedef name _Bool, with bool a #defined
24237         alias.
24238
24239 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24240
24241         * tree.c (tree_code_name): Constify a char*.
24242
24243         * tree.h (tree_code_name, decl_printable_name): Likewise.
24244
24245         * function.h (struct function): Likewise.
24246
24247         * toplev.c (decl_name, decl_printable_name): Likewise.
24248
24249         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
24250
24251         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
24252         (init_objc): Remove function pointer cast.
24253
24254 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
24255
24256         * pa.md (interspace_jump): New pattern.
24257         (builtin_longjmp): New expander.
24258
24259 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
24260
24261         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
24262         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
24263         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
24264
24265 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
24266
24267         * jump.c (delete_prior_computation): Also check calls
24268         to constant functions.  Don't bother checking for a
24269         REG_UNUSED note before adding it.
24270         (delete_computation): Handle multi-word hard registers
24271         when synthesizing missing REG_DEAD notes for a register
24272         which is both set and used by an insn.
24273
24274 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
24275
24276         * loop.c (this_loop_info): New variable.
24277         (loop_has_call, loop_has_volatile, loop_has_tablejump,
24278         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
24279         All uses updated.
24280         (prescan_loop, strength_reduce): New argument loop_info.  All callers
24281         updated.
24282         (scan_loop): New variable loop_info, initialise to address of
24283         this_loop_info.
24284         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
24285         Delete variable loop_has_multiple_exit targets and replace with
24286         field in this_loop_info.
24287         (find_and_verify_loops): Rename this_loop to this_loop_num.
24288         (strength_reduce): Delete loop_iteration_info.  Replace variable
24289         loop_info with function argument of same name.
24290         (insert_bct): Rework test for loop being completely unrolled.
24291
24292         * loop.h (struct loop_info): New fields num, loops_enclosed,
24293         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
24294         has_indirect_jump, and cont.  Redefine use of unroll_number.
24295         (loop_unroll_number): Delete.
24296
24297         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
24298         field of loop_info.
24299         (loop_iterations): Delete variable vtop and instead use
24300         loop_info->vtop computed in prescan_loop.
24301
24302 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
24303
24304         * fix-header.c (main): Do not pass a null pointer to strcmp.
24305
24306 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
24307
24308         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
24309         filenames.
24310         * configure: Rebuilt.
24311
24312 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
24313
24314         * jump.c (jump_optimize_1): Do not delete assignments to
24315         internal_arg_pointer.
24316         * cse.c (delete_trivially_dead_insns): Always consider a set of
24317         the internal_arg_pointer live.
24318
24319 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
24320
24321         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
24322         (update_life_info) [REG_WAS_0]: Search the original insns rather
24323         than the new insns for the note.  Fix typos finding note_dest.
24324         If no dest found, discard the note rather than abort.
24325         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
24326         (replace_insns): Remove the old insn list after update_life_info
24327         not before.
24328
24329 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
24330
24331         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
24332         sched_analyze_insn.
24333         (sched_analyze_1): Let add_dependence care for not adding dups.
24334         (sched_analyze_2): Likewise.
24335         (add_branch_dependences): Likewise.
24336
24337 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24338
24339         * i386/winnt.c (export_list): New type.
24340         (exports_head): Rename to
24341         (export_head):  this.
24342         (i386_pe_record_exported_symbol): Add is_data flag.
24343         (i386_pe_asm_file_end): Emit directive for exported variables.
24344         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
24345         prototype.
24346         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
24347         (ASM_DECLARE_OBJECT_NAME): Likewise.
24348         (ASM_DECLARE_FUNCTION_NAME): Likewise.
24349         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
24350
24351 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
24352
24353         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
24354
24355         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
24356         operand.
24357
24358 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
24359
24360         * config/openbsd.h: Define SET_ASM_OP.
24361         * tm.texi: cross-reference SET_ASM_OP in the index.
24362
24363 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
24364
24365         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
24366         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
24367         and class_narrowest_mode at compile time.  Kill init_rtl.
24368         Mark rtx_length, mode_class, mode_size, mode_unit_size,
24369         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
24370         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
24371         EXTRA_CC_NAMES.
24372         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
24373         format.
24374         * rtl.h: Declare rtx_length and rtx_format as const.
24375         * machmode.def: Define CC().  Use CC() to define CCmode.  If
24376         EXTRA_CC_MODES is defined, expand it here.
24377         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
24378         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
24379         const.  Kill all references to EXTRA_CC_MODES.
24380
24381         * toplev.c: Don't prototype or call init_rtl.
24382         * optabs.c: Don't call init_mov_optab.
24383         * genemit.c: Don't generate init_mov_optab.  Don't call
24384         init_rtl.
24385         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
24386         here.
24387         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
24388         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
24389         genrecog.c: Don't call init_rtl.
24390
24391         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
24392         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
24393         definition of EXTRA_CC_MODES.
24394
24395         * md.texi: Kill ref to EXTRA_CC_NAMES.
24396         * tm.texi: Document new way to define EXTRA_CC_MODES.
24397
24398         * genrecog.c: Do not look up the name of a define_split.
24399         (Unrelated bugfix.)
24400
24401 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
24402
24403         * config/v850/v850.md: Fix typo introduced by previous delta.
24404
24405 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24406
24407         * gcc.c (fatal): Make definition static to match prototype.
24408
24409 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24410
24411         * combine.c (get_last_value): Don't look for earlier sets if the last
24412         known set is somewhere in between the insns being combined.
24413
24414 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
24415
24416         * configure.in: Don't use shell ! to negate exit codes
24417         * configure: Regenerate
24418
24419 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
24420
24421         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
24422         the fact that ALIGN is measured in bits, not bytes.
24423
24424 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
24425
24426         * errors.c: New file; defines functions error, warning, and
24427         fatal, variables have_error and progname.
24428         * errors.h: New file; prototypes and decls for stuff in errors.c.
24429
24430         * Makefile: Add rules to build errors.o and
24431         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
24432         genopinit, genrecog, genextract, genpeep, genattr, and
24433         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
24434         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
24435         genpeep.o, genattr.o, and genoutput.o.
24436
24437         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
24438         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
24439         define or prototype fatal.  Set progname at beginning of main.
24440         * genoutput.c:  Likewise, and don't define or prototype error
24441         either.
24442
24443         * c-typeck.c (c_expand_start_case): Return immediately if exp
24444         is an ERROR_MARK.
24445         * fold-const.c (operand_equal_p): Return immediately if arg1
24446         or arg0 are ERROR_MARKs.
24447         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
24448         fields of type ERROR_MARK when calculating if the record can
24449         go in a register.
24450
24451 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
24452         with much help from Jeffrey A Law and Richard Henderson
24453
24454         * i386.md: In the 6 insns which call output_fix_trunc,
24455         earlyclobber operands[0].
24456
24457 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
24458
24459         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
24460         creating new registers.
24461
24462 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
24463
24464         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
24465         i386_reg_alloc_order, i386_regparm_string,
24466         i386_align_loops_string, i386_align_jumps_string,
24467         i386_align_funcs_string, i386_preferred_stack_boundary_string,
24468         and i386_branch_cost_string as type "const char *".
24469         * i386.c: Define all above strings as type "const char *".
24470
24471 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
24472
24473         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
24474         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
24475
24476 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
24477
24478         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
24479         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
24480
24481 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
24482
24483         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
24484         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
24485         (dwarf2out_line, dwarf2out_finish): Likewise.
24486         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
24487
24488 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24489
24490         * tree.c (lang_unsave_expr_now) : Correct return type.
24491         * tree.h (lang_unsave_expr_now) : Same.
24492
24493 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
24494
24495         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
24496         instead of duplicating code.
24497
24498 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24499
24500         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
24501
24502 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
24503
24504         * tree.h: fancy_abort always takes three args.
24505         * resource.c: Move include of system.h before toplev.h.
24506
24507 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
24508
24509         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
24510         as SYMBOL_REFs.
24511
24512 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
24513
24514         * system.h: Don't redefine abort or trim_filename.
24515         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
24516         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
24517         whether or not __FUNCTION__ is available.
24518         * tree.h: Duplicate rtl.h's definition of abort, for files
24519         that don't include rtl.h.  Delete all code to perform type
24520         checking with a compiler other than GCC.
24521         * varray.h: Delete all code to perform type checking with a
24522         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
24523         its arguments exactly once, using a statement expression.
24524         Adjust the VARRAY_<type> accessor macros to match.
24525         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
24526         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
24527         caller's location.  Define fatal_insn and fatal_insn_not_found
24528         as macros that use _fatal_insn and _fatal_insn_not_found.
24529         (fancy_abort, trim_filename): Kill prototypes.
24530
24531         * rtl.c (trim_filename): Move here from toplev.c.
24532         (fancy_abort): New function.
24533         (DIR_SEPARATOR): Provide default definition.
24534         * tree.c (tree_check_failed, tree_class_check_failed): Go
24535         through fancy_abort.
24536         (tree_check, tree_class_check, cst_or_constructor_check,
24537         expr_check): Delete.
24538         * varray.c (varray_check_failed): New function.
24539         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
24540         _fatal_insn and _fatal_insn_not_found.  Go through
24541         fancy_abort.
24542         (trim_filename, fancy_abort): Delete.
24543
24544         * builtins.c (expand_builtin_args_info): Report ICE with abort.
24545         * except.c (start_catch_handler): Report ICE with error/abort
24546         combo.
24547         * final.c (output_operand_lossage): Likewise.
24548         * flow.c (verify_flow_info): Likewise.
24549
24550         * gcc.c: Prototype fatal.
24551         * gengenrtl.c: Undef abort after including rtl.h not system.h.
24552         * genattr.c, genattrtab.c, genemit.c, genextract.c,
24553         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
24554         Don't define fancy_abort.
24555
24556 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
24557
24558         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
24559         canonization.
24560
24561 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
24562
24563         * m88k.h (VERSION_INFO2): Kill.
24564         (VERSION_STRING): Kill.
24565         (TM_RCS_ID): Kill.
24566         (VERSION_INFO1): Tidy.
24567         (TARGET_VERSION): Update.
24568         * m88k/dgux.h (VERSION_INFO2): Kill.
24569         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
24570         * m88k/luna.h (VERSION_INFO1): Tidy.
24571         * m88k/sysv4.h (VERSION_INFO1): Likewise.
24572         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
24573         (output_file_start): Adjust for death of VERSION_STRING.
24574
24575 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
24576
24577         * cpplib.c (detect_if_not_defined): New function.
24578         (do_if): Use it to detect potential once-only headers.
24579
24580 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
24581
24582         * c-common.c (combine_strings): Always set TREE_CONSTANT.
24583
24584 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24585
24586         * combine.c (nonzero_bits) : Allow single-ly set registers to be
24587         anywere in the function only if they are pseudos and set before
24588         being used (not live at the start of the function).
24589         (num_sign_bit_copies) : Same.
24590         (get_last_value_validate) : Same.
24591         (get_last_value) : Same.
24592
24593 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
24594
24595         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
24596         where N and M are constant and N is an integer multiple of M.
24597
24598 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
24599
24600         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
24601         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
24602         sbitmap_union_of_preds): Add prototypes.
24603         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
24604         the intersection of successors with the new flow graph structures.
24605         (sbitmap_intersection_of_preds): New function to compute the
24606         intersection of predecessors with the new flow graph structures.
24607         (sbitmap_union_of_succs): New function to compute the union of
24608         successors with the new flow graph structures.
24609         (sbitmap_union_of_preds): New function to compute the union of
24610         predecessors with the new flow graph structures.
24611         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
24612         (expr_reaches_here_p): Use edge and basic_block structures instead
24613         of s_preds and s_succs.
24614         (compute_cprop_avinout): Use new sbitmap routines.
24615         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
24616         of s_preds and s_succs.
24617         * flow.c (compute_flow_dominators): Compute dominators using
24618         edges and basic blocks instead of s_preds and s_succs.
24619
24620 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
24621
24622         * lists.c (unused_insn_list, unused_expr_list): New file for
24623         maintaining various types of lists. New statics for maintaining a
24624         cache of available INSN_LIST and EXPR_LIST nodes.
24625         (free_list): Static function for freeing a list of INSN/EXPR nodes.
24626         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
24627         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
24628         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
24629         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
24630         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
24631         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
24632         (free_INSN_LIST_node): Free an individual INSN_LIST node.
24633         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
24634         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
24635         (remove_dependence, free_pending_lists): Use new global routines.
24636         (flush_pending_lists, sched_analyze_insn): Use new global routines.
24637         (sched_analyze, compute_block_backward_dependences): Use new routines.
24638         (sched_analyze_1, sched_analyze_2): Use new routines.
24639         (schedule_insns): Use new global routines.
24640         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
24641         prototypes.
24642         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
24643         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
24644         prototypes.
24645         * toplev.c (rest_of_compilation): Initialize node cache.
24646         * Makefile.in (OBJS): Add lists.o to list of object files.
24647         (lists.o): Add dependancies.
24648
24649 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
24650
24651         * config/v850/v850.md: Fix compile time warning messages.
24652         * config/v850/v850.c: Fix compile time warning messages.
24653         * config/v850/v850.h: Fix compile time warning messages.
24654
24655 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24656
24657         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
24658         Remove unused prototype for `init_lengths'.
24659
24660 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24661
24662         * calls.c (emit_call_1): Mark parameter `stack_size' with
24663         ATTRIBUTE_UNUSED.
24664         (expand_call): Initialize variable `insn'.
24665         (emit_library_call): Likewise for variable `high_to_save'.
24666         (emit_library_call_value): Likewise.
24667         (store_one_arg): Likewise for variables `lower_bound' and
24668         `upper_bound'.
24669
24670         * combine.c (try_combine): Likewise for variables `i2_code_number'
24671         and `other_code_number'.
24672         (find_split_point): Likewise for variables `pos', `unsignedp' and
24673         `inner'.
24674         (simplify_if_then_else): Likewise for variables `op' and `c1'.
24675         (simplify_and_const_int): Remove unused variable `width'.
24676         (merge_outer_ops): Likewise.
24677
24678         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
24679         HOST_WIDE_INT' when comparing against one.
24680         (simplify_relational_operation): Likewise.
24681         (cse_insn): Initialize variables `src_eqv_volatile',
24682         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
24683
24684         * final.c (init_final): Constify parameter `filename'.
24685         (final_start_function): Mark parameter `optimize' with
24686         ATTRIBUTE_UNUSED.
24687         (profile_function): Likewise for parameters `first' and `optimize'.
24688         (output_source_line): Likewise for parameter `file'.
24689
24690         * integrate.c (subst_constants): Cast a value to `size_t' when
24691         comparing against one.
24692         (mark_stores): Initialize variable `mode'.  Cast a value to
24693         `size_t' when comparing against one.
24694
24695         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
24696
24697         * loop.c (move_movables): Initialize variable `first'.
24698         (strength_reduce): Likewise for variable `increment'.
24699         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
24700         value to `size_t' when comparing against one.
24701         (load_mems): Initialize variable `end_label'.
24702
24703         * output.h (init_final): Constify parameter.
24704
24705         * reload.c (decompose): Initialize variable `base'.
24706
24707         * reload1.c (reload): Likewise for variable `is_scalar'.
24708         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
24709         (choose_reload_regs): Initialize variable `mode'.
24710         (emit_reload_insns): Likewise for variable `store_insn'.
24711         (reload_cse_noop_set_p): Mark parameter `insn' with
24712         ATTRIBUTE_UNUSED.
24713         (reload_combine): Initialize variable `set'.
24714
24715         * unroll.c (unroll_loop): Likewise for variable `local_label'.
24716         (copy_loop_body): Cast a value to `size_t' when comparing against
24717         one.
24718
24719         * varasm.c (assemble_variable): Initialize variable `size_tree'.
24720         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
24721         (remove_from_pending_weak_list): Mark parameter `name' with
24722         ATTRIBUTE_UNUSED.
24723
24724 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24725
24726         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
24727         gcse dump file.
24728
24729 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
24730
24731         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
24732         (ASM_DECLARE_FUNCTION_NAME): Define.
24733         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
24734         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
24735         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
24736         not already defined.
24737
24738 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
24739
24740         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
24741         of n_popped when call/call_value are not defined.
24742
24743 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
24744
24745         * tm.texi: GNU CC -> GCC conversion.
24746         (CC1_SPEC): Indicate it is used for all language front ends.
24747
24748 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
24749
24750         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
24751         NOTE_INSN_EH_REGION_END correctly.
24752
24753 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
24754                           Jeff Law <law@cygnus.com>
24755
24756         * loop.c (strength_reduce): Automatically unroll loops if the
24757         unrolled loop size is smaller than the rolled loop size.
24758
24759         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
24760         and delete comment that code should be rewritten.
24761
24762 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
24763
24764         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
24765         as reachable.
24766
24767         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
24768
24769 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24770
24771         * fixinc/mkfixinc.sh: Don't fix uwin headers.
24772         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
24773         (LINK_SPEC): Add -u _main when building executables.
24774         (ASM_DECLARE_FUNCTION): Update from Cygwin.
24775         (ASM_FILE_END): Use the default for ix86-pe.
24776         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
24777
24778 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
24779
24780         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
24781         and ASM_CLOSE_PAREN are empty strings.
24782
24783 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
24784                           Geoffrey Keating <geoffk@cygnus.com>
24785
24786         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
24787         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
24788         (unprotoize.o): Ditto.
24789         (test-protoize-simple): Don't define STD_PROTO_DIR.
24790         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
24791         changes to make 'test-protoize-simple' pass.
24792         (STD_PROTO_DIR): Remove define.
24793         (STANDARD_EXEC_PREFIX): Supply default define.
24794         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
24795         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
24796         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
24797         (GET_ENV_PATH_LIST): New macro.
24798         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
24799         (do_processing): Initialize default_syscalls_dir using new
24800         macros.  Use it to initialize syscalls_absolute_filename.
24801
24802 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
24803
24804         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
24805         B into a register before emit_conditional_move.
24806
24807 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
24808
24809         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
24810         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
24811         multiplicand out of (+ (* a b) (* c d)).
24812
24813 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
24814                           Richard Henderson  <rth@cygnus.com>
24815
24816         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
24817         (new_insn_dead_notes): Likewise.
24818         (update_n_sets): Likewise.
24819         (update_flow_info): Move to flow.c, renamed to update_life_info;
24820         extend to handle multiple source insns.
24821         * flow.c: Include resource.h
24822         (unlink_insn_chain): New.
24823         (split_hard_reg_notes): New.
24824         (maybe_add_dead_note): New.
24825         (maybe_add_dead_note_use): New.
24826         (find_insn_with_note): New.
24827         (new_insn_dead_notes): New.
24828         (update_n_sets): New.
24829         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
24830         (maybe_remove_dead_notes): New.
24831         (update_life_info): New.
24832         (prepend_reg_notes): New.
24833         (replace_insns): New.
24834         * output.h (update_life_info): Declare.
24835         * recog.c (split_block_insns): Use update_life_info.
24836         * resource.c (find_free_register): Use reg_alloc_order, don't use
24837         fixed regs, make sure the mode is supported, don't use new regs.
24838         (reg_dead_p): New.
24839         * rtl.h (replace_insns): Declare.
24840
24841 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
24842
24843         * expr.c (expand_expr): Cope with COND_EXPRs with one
24844         non-returning branch.
24845
24846 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
24847
24848         * expr.c (store_expr): Always pass down the target, even when not
24849         doing CSE.
24850
24851 1999-08-24  Nick Clifton  <nickc@cygnus.com>
24852
24853         * configure.in: Define target_cpu_default for v850 targets.
24854         * configure: Regenerate
24855
24856         * config/v850/v850.h (TARGET_CPU_generic): Define.
24857         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
24858         addresses are 4 byte aligned.
24859
24860         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
24861         addresses.
24862
24863 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24864
24865         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
24866         (main): Add prototypes.
24867
24868         * genattrtab.c (substitute_address, write_const_num_delay_slots,
24869         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
24870         (write_attr_get): Emit prototypes along with function definition.
24871         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
24872         (write_complex_function): Emit static prototype along with
24873         function definition.
24874
24875         * genemit.c (gen_split): Emit prototypes along with function
24876         definition.
24877
24878         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
24879         Likewise for predicates and `insn_operand_predicate'.
24880         (process_template): Emit static prototype along with function
24881         definition.
24882
24883         * genrecog.c (make_insn_sequence): Constify a char*.  Add
24884         prototypes for get_split_*().
24885         (write_subroutine): Emit prototypes along with function
24886         definition.
24887
24888 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24889
24890         * gcse.c (find_avail_set): Follow chains of register-register copies.
24891         Use oprs_not_set_p to guarantee that the returned value can be
24892         substituted.
24893         (cprop_insn): Don't verify the return value of find_avail_set with
24894         oprs_not_set_p.
24895
24896         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
24897         (cprop_cc0_jump): New function.
24898         (cprop_insn): Break out new function cprop_jump and use it.
24899         Also use cprop_cc0_jump for machines with CC0.
24900         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
24901
24902         * tree.h (current_function_calls_setjmp,
24903         current_function_calls_longjmp): Delete declarations.
24904         * dsp16xx.c: Include "function.h".
24905         * elxsi.c: Likewise.
24906         * gmicro.c: Likewise.
24907         * h8300.c: Likewise.
24908         * i370.c: Likewise.
24909         * m32r.c: Likewise.
24910         * mn10200.c: Likewise.
24911         * mn10300.c: Likewise.
24912         * ns32k.c: Likewise.
24913         * spur.c: Likewise.
24914         * v850.c: Likewise.
24915
24916         * rtl.h (rtx_equal_function_value_matters): Declare.
24917         * toplev.c (rtx_equal_function_value_matters): Don't declare.
24918         * cse.c: Likewise.
24919         * function.c: Likewise.
24920         * emit-rtl.c: Likewise.
24921
24922 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
24923
24924         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
24925         call.
24926
24927 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
24928
24929         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
24930         exactly.
24931
24932 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
24933
24934         * cpp.texi: Add a node documenting macro varargs (copied
24935         from extend.texi).
24936
24937 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
24938
24939         * cppspec.c: Put a null pointer at the end of the new argv.
24940
24941 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
24942
24943         * configure.in: Remove code to select/de-select the haifa
24944         scheduler.  Every scheduled port gets haifa now.
24945         * configure: Rebuilt.
24946         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
24947         * sched.c Deleted.
24948         * Makefile.in: Corresponding changes.
24949
24950 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24951
24952         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
24953         All callers changed.
24954         (prepare_float_lib_cmp): Likewise.
24955         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
24956         * expr.h (emit_float_lib_cmp): Delete declaration.
24957         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
24958         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
24959         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
24960         specially.
24961         (cmptf): Now conditional on TARGET_HARD_QUAD.
24962
24963 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
24964
24965         * resource.c (mark_target_live_regs): Use
24966         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
24967
24968 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24969
24970         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
24971
24972         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
24973
24974         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
24975
24976 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24977
24978         * rtl.h (rtx_format): Constify a char*.
24979
24980         * rtl.c (rtx_format): Likewise.
24981         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
24982         (init_rtl): Use accessor macro, not `rtx_format'.
24983
24984         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
24985         char*.
24986
24987         * caller-save.c (mark_referenced_regs): Likewise.
24988
24989         * combine.c (subst, make_compound_operation, known_cond,
24990         gen_rtx_combine, update_table_tick, get_last_value_validate,
24991         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
24992
24993         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
24994         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
24995         count_reg_usage): Likewise.
24996
24997         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
24998         Likewise.
24999
25000         * final.c (leaf_renumber_regs_insn): Likewise.
25001
25002         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
25003         dump_edge_info, count_reg_references): Likewise.
25004
25005         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
25006         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
25007         Likewise.
25008
25009         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
25010         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
25011         add_label_notes): Likewise.
25012
25013         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
25014         clear_struct_flag, count_sub_rtxs, count_alternatives,
25015         compares_alternatives_p, contained_in_p, walk_attr_value,
25016         write_expr_attr_cache): Likewise.
25017
25018         * genconfig.c (walk_insn_part): Likewise.
25019
25020         * genemit.c (max_operand_1, gen_exp): Likewise.
25021
25022         * genextract.c (walk_rtx): Likewise.
25023
25024         * genflags.c (num_operands): Likewise.
25025
25026         * genoutput.c (scan_operands): Likewise.
25027
25028         * genpeep.c (match_rtx): Likewise.
25029
25030         * genrecog.c (add_to_sequence): Likewise.
25031
25032         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
25033         Likewise.
25034
25035         * integrate.c (save_constants, copy_for_inline,
25036         copy_rtx_and_substitute, subst_constants, restore_constants):
25037         Likewise.
25038
25039         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
25040         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
25041
25042         * local-alloc.c (contains_replace_regs, memref_referenced_p):
25043         Likewise.
25044
25045         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
25046         add_label_notes, replace_call_address, count_nonfixed_reads,
25047         invariant_p, find_single_use_in_loop, find_mem_givs,
25048         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
25049         Likewise.
25050
25051         * print-rtl.c (reg_names, print_rtx): Likewise.
25052
25053         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
25054
25055         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
25056         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
25057         print_blocks): Likewise.
25058
25059         * regclass.c (fix_register, record_address_regs,
25060         reg_scan_mark_refs): Likewise.
25061
25062         * regmove.c (stable_but_for_p): Likewise.
25063
25064         * reload.c (loc_mentioned_in_p, operands_match_p,
25065         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
25066         copy_replacements, refers_to_regno_for_reload_p,
25067         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
25068         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
25069         Likewise.
25070
25071         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
25072         delete_address_reloads_1, count_occurrences,
25073         reload_cse_mem_conflict_p, reload_combine_note_use,
25074         add_auto_inc_notes): Likewise.
25075
25076         * resource.c (mark_referenced_resources, mark_set_resources):
25077         Likewise.
25078
25079         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
25080         reg_mentioned_p, regs_set_between_p, modified_between_p,
25081         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
25082         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
25083         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
25084         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
25085
25086         * sched.c (sched_analyze_2, attach_deaths): Likewise.
25087
25088         * stupid.c (stupid_mark_refs): Likewise.
25089
25090         * unroll.c (remap_split_bivs): Likewise.
25091
25092         * varasm.c (mark_constants): Likewise.
25093
25094         * a29k/a29k.c (uses_local_reg_p): Likewise.
25095
25096         * alpha/alpha.c (summarize_insn): Likewise.
25097
25098         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
25099         eliminate_lr2ip): Likewise.
25100
25101         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
25102
25103         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
25104         reg_mentioned_in_mem): Likewise.
25105
25106         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
25107         symbolic_reference_mentioned_p): Likewise.
25108
25109         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
25110
25111         * sh/sh.c (regs_used, mark_use): Likewise.
25112
25113         * vax/vax.c (vax_rtx_cost): Likewise.
25114
25115 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25116
25117         * machmode.h (mode_name): Constify a char*.
25118
25119         * rtl.c (mode_name): Likewise.
25120
25121         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
25122
25123         * optabs.c (init_libfuncs): Constify a char*.
25124
25125         * print-tree.c (mode_name): Remove redundant declaration.
25126         (print_node): Use accessor macro, not `mode_name'.
25127
25128         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
25129         not `mode_name'.
25130         (new_spill_reg): Constify a char*.
25131
25132         * tree.c (mode_name): Remove redundant declaration.
25133
25134 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25135
25136         * rtl.c (rtx_name): Constify a char*.
25137
25138         * rtl.h (rtx_name, fix_sched_param): Likewise.
25139
25140         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
25141         (mypr): Use accessor macro, not `rtx_name'.
25142
25143         * genemit.c (print_code): Constify a char*.
25144
25145         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
25146
25147         * genpeep.c (print_code): Constify a char*.
25148
25149         * genrecog.c (print_code): Likewise.
25150
25151         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
25152         end_bb): Add static prototype.
25153         (draw_edge): Constify a char*.
25154         (end_bb): Remove unused parameter.
25155
25156         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
25157         print_block_visualization): Constify a char*.
25158
25159 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
25160
25161         * c-common.c (c_get_alias_set): Update comment.
25162
25163 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
25164
25165         * linux.h (LIB_SPEC): Added.
25166
25167 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
25168
25169         * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
25170
25171 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
25172
25173         * tree.c (expr_check): Fix typo in last change.
25174
25175 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
25176
25177         * rtl.def (NOTE): Change format to "iuu0n".
25178         (ADDR_DIFF_VEC): Change format to "eEee0".
25179         (ADDRESSOF): Change format to "eit".
25180
25181         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
25182         (RTVEC_ELT): Change to match.
25183         (XVECEXP): Use XVEC and RTVEC_ELT.
25184         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
25185         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
25186         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
25187         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
25188         TRAP_CONDITION, TRAP_CODE): Use XEXP.
25189         (INTVAL): Use XWINT.
25190         (ADDRESSOF_DECL): Use XTREE.
25191         (SET_ADDRESSOF_DECL): Delete.
25192         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
25193         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
25194         ifdefed out since 2.6 at least.
25195         (gen_rtvec_vv): Delete prototype.
25196
25197         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
25198         not rtunion.
25199         (copy_most_rtx): Handle 't' format letter.
25200         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
25201         (gen_rtvec_vv): Delete function.  All callers changed to use
25202         gen_rtvec_v instead.
25203         * print-rtl.c (print_rtx): Move special casing of NOTEs to
25204         the '0' format letter.
25205
25206         * function.c (gen_mem_addressof): Don't use
25207         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
25208         instead.
25209         * integrate.c (copy_rtx_and_substitute): Likewise.
25210         Copy 't' slots with XTREE.
25211         (subst_constants): Treat 't' slots like '[swi]' slots.
25212         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
25213         * jump.c (rtx_equal_for_thread_p): Likewise.
25214         * rtlanal.c (rtx_equal_p): Likewise.
25215         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
25216         only four arguments.
25217         * gengenrtl.c (type_from_format): Provide correct types for
25218         'b' and 't' slots.
25219
25220
25221         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
25222         If a recent gcc is in use (always in stage2 and beyond), use
25223         statement expressions, so we don't make a function call unless
25224         the check fails.  Evaluate arguments exactly once.
25225         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
25226         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
25227         Delete.
25228         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
25229         they evaluate their arguments exactly once, irrespective of
25230         the compiler in use.
25231
25232         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
25233         is used by the currently-enabled check macros.  This is:
25234         (tree_check_failed, tree_class_check_failed): For gcc.
25235         (tree_check, tree_class_check, cst_or_constructor_check,
25236         expr_check): For other compilers.
25237
25238         * gencheck.c: Do not define any *_CHECK1 macros.
25239
25240 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
25241                           Mark Mitchell <mark@codesourcery.com>
25242
25243         * c-common.c (c_get_alias_set): Fix support for poitners and
25244         references.
25245
25246 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
25247
25248         * alias.c: Include tree.h.
25249         (nonlocal_reference_p, mark_constant_function): New functions.
25250         * flow.c (life_analysis): Call mark_constant_function.
25251         * rtl.h (mark_constant_function): Declare it.
25252
25253 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
25254
25255         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
25256         unrecognisable switches.
25257
25258 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25259
25260         * loop.c (recombine_givs): Set ix field after sorting.
25261         (recombine_givs): Remove bogus index / giv lockstep looping.
25262
25263 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25264
25265         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
25266         on CODE.
25267         (emit_store_flag_force): Use do_compare_rtx_and_jump.
25268         (do_cmp_and_jump): Formatting fixes.
25269         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
25270         do_compare_rtx_and_jump instead of compare_from_rtx.
25271         (do_compare_rtx_and_jump): New function; mostly copied from
25272         compare_from_rtx.
25273         (do_jump_for_compare): Delete.
25274         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
25275         MIN_EXPR.
25276         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
25277         of compare/do_jump_for_compare pairs.
25278         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
25279         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
25280         compare_from_rtx/do_jump_for_compare pairs.
25281         (do_jump_by_parts_equality): Likewise.
25282         (do_jump_by_parts_equality_rtx): Likewise.
25283         * expr.h (do_compare_rtx_and_jump): Declare.
25284         * optabs.c (prepare_cmp_insn): New function, contains most of the code
25285         that used to be in emit_cmp_insn.
25286         (cmp_available_p): New function.
25287         (prepare_operand): New function.
25288         (emit_cmp_and_jump_insn_1): New function, contains some code that used
25289         to be in emit_cmp_insn.
25290         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
25291         parameters to be pointers; don't emit final compare but modify some of
25292         the values pointed to by the args so the caller can perform the
25293         correct comparison.
25294         (expand_binop): Call emit_store_flag_force with signed forms of
25295         comparison code.
25296         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
25297         emit_jump_insn pair.
25298         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
25299         emit_cmp_and_jump_insn_1.  Call emit_queue.
25300         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
25301         arg.
25302         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
25303         jump sets cc0 before deleting it.
25304         * integrate.c (expand_inline_function): Likewise.
25305         * unroll.c (unroll_loop): Similar changes in several places.
25306         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
25307         before deleting it.
25308
25309 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25310
25311         * Makefile.in (insn-recog.o): Update dependencies.
25312         * genrecog.c (main): Make generated file include "function.h".
25313
25314 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
25315
25316         * cse.c (cse_insn): Call never_reached_warning when a jump is
25317         changed to be unconditional.
25318         * flags.h: Declare warn_notreached.
25319         * flow.c (delete_block): Call never_reached_warning when
25320         a block is deleted.
25321         * jump.c (delete_barrier_successors): Call never_reached_warning
25322         when we delete everything after a BARRIER.
25323         (never_reached_warning): New function.
25324         * rtl.h: Declare never_reached_warning.
25325         * toplev.c (warn_notreached): New variable.
25326         (lang_independent_options): Set warn_notreached
25327         when -Wunreachable-code.
25328         (compile_file): We need line numbers for -Wunreachable-code.
25329
25330 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
25331
25332         * haifa-sched.c (insn_unit): Fix typo on out of range test.
25333         * sched.c (insn_unit): Likewise.
25334
25335 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
25336
25337         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
25338
25339 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
25340
25341         * flow.c (create_edge_list): Use xmalloc, not malloc.
25342
25343 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
25344
25345         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
25346         C-style comments.  Do not lose the character before double slash.
25347
25348 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
25349
25350         * basic-block.h (struct edge_list): Stucture to maintain a vector
25351         of edges.
25352         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
25353          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
25354         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
25355         New function prototypes.
25356         * flow.c (create_edge_list): Function to create an edge list.
25357         (free_edge_list): Discards memory used by an edge list.
25358         (print_edge_list): Debug output showing an edge list.
25359         (verify_edge_list): Internal consistency check for an edge list.
25360         (find_edge_index): Function to find an edge index for a pred and succ.
25361
25362 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
25363
25364         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
25365         hashtable.
25366
25367 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
25368
25369         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
25370
25371 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
25372
25373         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
25374
25375 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
25376
25377         * toplev.c (rest_of_compilation): Allow machine dependent
25378         reorganisation pass to place information into the RTL dump
25379         file if it so wishes.
25380
25381 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
25382
25383         * explow.c (hard_function_value): Use VOIDmode instead of
25384         MAX_MACHINE_MODE.
25385         * stmt.c (expand_return): Likewise.
25386         * stor-layout.c (get_best_mode): Likewise.
25387
25388         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
25389         emit call instead of emit_insn call.
25390
25391 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25392
25393         * configure.in: Handle --disable/enable-win32-registry.
25394         * install.texi: Document --disable/enable-win32-registry.
25395         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
25396         (WIN32_REGISTRY_KEY): New macro.
25397         * prefix.c: Use to enable/disable win32-specific code.
25398         (lookup_key): Use versioned key.
25399         * configure: Regenerate.
25400         * config.in: Likewise.
25401
25402 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
25403
25404         * cpplib.c (read_line_number): New fn, split out of...
25405         (do_line): Here.
25406
25407 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
25408
25409         tree.c (lang_unsave_expr_now) : New.
25410         (unsave_expr_now): Call lang_unsave_expr_now.
25411         tree.h (lang_unsave_expr_now) : New.
25412
25413 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
25414
25415         * toplev.c (flag_new_exceptions): On by default.
25416
25417 1999-08-13  Michael Meissner  <meissner@cygnus.com>
25418
25419         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
25420
25421 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
25422
25423         * dwarfout.c (fundamental_type_code): Return FT_boolean for
25424         INTEGER_TYPE with precision==1, it's __java_boolean.
25425
25426 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25427
25428         * global.c (prune_preferences): Move some invariants out of the
25429         inner loop.
25430
25431 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
25432
25433         * configure.in (alpha*-dec-osf*): Add osf5.
25434
25435 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
25436
25437         * configure.in: Rework handling of ARM GNU/Linux slightly.
25438         (arm*-*-linux-gnuoldld): New target.
25439         * configure: Regenerate.
25440         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
25441         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
25442         * config/arm/linux-oldld.h: New file.
25443         * config/arm/linux-elf26.h: Don't include linux-elf.h.
25444         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
25445         Don't define.
25446         * config/arm/linux-elf.h (ASM_SPEC): Define.
25447         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
25448         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
25449         for 26-bit APCS and old linker.
25450         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
25451         `arm_elf'.
25452         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
25453         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
25454         don't define `arm' or `arm_elf'.
25455         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
25456         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
25457
25458 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
25459
25460         * rtl.texi: Fix typo.
25461
25462 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
25463
25464         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
25465
25466 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
25467
25468         * extend.texi (C++ Signatures): Remove node.
25469         * invoke.texi: Remove discussion of -fhandle-signatures,
25470         signature, sigof, __signature__, and __sigof__.
25471
25472 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
25473
25474         * Makefile.in (JAVAGC): Removed.
25475
25476 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25477
25478         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
25479
25480 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
25481
25482         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
25483
25484 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
25485
25486         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
25487         a register that is already known to be a pointer.
25488
25489 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
25490
25491         * fixinc/inclhack.tpl: Only install assert.h conditionally.
25492         * fixinc/inclhack.sh: Regenerated.
25493         * fixinc/fixincl.sh: Regenerated.
25494
25495 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
25496
25497         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
25498         Fix documentation of -ansi flag to describe its C++ behavior.
25499         Remove bogus reference to GCC 2.9.
25500
25501 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
25502
25503         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
25504         note if it is non-NULL.
25505
25506 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
25507
25508         * except.h (eh_nesting_info): Add new structure defintion.
25509         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
25510         (reachable_handlers, update_rethrow_references): Add function
25511         prototypes.
25512         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
25513         a rethrow symbol instead of an integer exception region number.
25514         * flow.c (Make_edges): Use new exception nesting routines to determine
25515         which handlers are reachable from a CALL or asynchronous insn.
25516         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
25517         goto receivers.
25518         (delete_eh_regions): Update rethrow labels, and don't delete
25519         regions which are the target of a rethrow.
25520         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
25521         avoid overloading the SYMBOL_REF_USED flag.
25522         (rethrow_symbol_map): Use new rethrow_ref field.
25523         (rethrow_used): Use new rethrow_ref field.
25524         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
25525         of an integer.  Fix formatting.
25526         (output_exception_table_entry): Use new rethrow_ref field.
25527         (can_throw): Check for EH_REGION_NOTE before deciding
25528         whether a CALL can throw or not.
25529         (scan_region): Call rethrow_used() instead of accessing data structure.
25530         (update_rethrow_references): New function to make sure only regions
25531         which are still targets of a rethrow are flagged as such.
25532         (process_nestinfo): New static function to initialize a handler
25533         list for a specific region.
25534         (init_eh_nesting_info): New function to allocate and initialize
25535         the list of all EH handlers reachable from all regions.
25536         (reachable_handlers): New function to retrieve the list of handlers
25537         reachable from a specific region and insn.
25538         (free_eh_nesting_info): New function to dispose of a list of
25539         reachable handlers.
25540
25541 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
25542
25543         * flow.c (split_edge): Set JUMP_LABEL field.
25544         (commit_one_edge_insertion): Set head correctly for insert_before.
25545         When inserting insns, update insn block numbers if allocated.
25546
25547 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25548
25549         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
25550         retry_incomplete_types): Add static prototype.
25551         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
25552         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
25553         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
25554         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
25555         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
25556         Constify a char*.
25557
25558         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
25559         dwarf2out_start_source_file, dwarf2out_line): Likewise.
25560
25561 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25562
25563         * output.h (assemble_name): Constify a char*.
25564
25565         * varasm.c (UNIQUE_SECTION, assemble_start_function,
25566         assemble_variable, assemble_name): Likewise.
25567
25568         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
25569
25570         * arm/pe.c (arm_pe_unique_section): Likewise.
25571
25572         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
25573
25574         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
25575
25576         * i386/interix.c (i386_pe_unique_section): Likewise.
25577
25578         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
25579
25580         * i386/winnt.c (i386_pe_unique_section): Likewise.
25581
25582         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
25583
25584         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
25585
25586         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
25587
25588         * pa/pa.c (output_call): Likewise.
25589
25590         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
25591
25592         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
25593
25594         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
25595         Likewise.
25596
25597         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
25598         Likewise.
25599
25600         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
25601
25602         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
25603         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
25604
25605         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
25606
25607 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25608
25609         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
25610
25611 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25612
25613         * tree.h (lang_identify): Constify a char*.
25614         (print_error_function): Add extern prototype.  Constify a char*.
25615
25616         * c-lang.c (lang_identify): Constify a char*.
25617
25618         * objc/objc-act.c (lang_identify): Constify a char*.
25619
25620 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25621
25622         * genpeep.c (main): Make generated file include "function.h".
25623         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
25624
25625 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25626
25627         * Makefile.in: Update dependencies.
25628         * alias.c: Include "function.h"
25629         * c-decl.c: Likewise.
25630         * caller-save.c: Likewise.
25631         * calls.c: Likewise.
25632         * combine.c: Likewise.
25633         * cse.c: Likewise.
25634         * explow.c: Likewise.
25635         * final.c: Likewise.
25636         * global.c: Likewise.
25637         * graph.c: Likewise.
25638         * local-alloc.c: Likewise.
25639         * loop.c: Likewise.
25640         * optabs.c: Likewise.
25641         * profile.c: Likewise.
25642         * recog.c: Likewise.
25643         * regclass.c: Likewise.
25644         * regmove.c: Likewise.
25645         * reload.c: Likewise.
25646         * reorg.c: Likewise.
25647         * resource.c: Likewise.
25648         * sched.c: Likewise.
25649         * stupid.c: Likewise.
25650         * config/1750a/1750a.c: Likewise.
25651         * config/a29k/a29k.c: Likewise.
25652         * config/arc/arc.c: Likewise.
25653         * config/arm/arm.c: Likewise.
25654         * config/arm/thumb.c: Likewise.
25655         * config/c4x/c4x.c: Likewise.
25656         * config/clipper/clipper.c: Likewise.
25657         * config/convex/convex.c: Likewise.
25658         * config/fx80/fx80.c: Likewise.
25659         * config/i860/i860.c: Likewise.
25660         * config/m68k/m68k.c: Likewise.
25661         * config/m88k/m88k.c: Likewise.
25662         * config/mips/mips.c: Likewise.
25663         * config/pdp11/pdp11.c: Likewise.
25664         * config/pyr/pyr.c: Likewise.
25665         * config/romp/romp.c: Likewise.
25666         * config/sh/sh.c: Likewise.
25667         * config/tahoe/tahoe.c: Likewise.
25668         * config/vax/vax.c: Likewise.
25669         * config/we32k/we32k.c: Likewise.
25670         * config/sparc/sparc.c: Include "function.h".
25671         (mem_min_alignment): Test current_function rather than
25672         regno_pointer_align.
25673         * config/pa/pa.c: Likewise.
25674         (compute_frame_size): Delete declaration of
25675         current_function_outgoing_args_size.
25676         * config/arc/arc.h (current_function_varargs): Delete declaration.
25677         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
25678         declaration.
25679         * config/i370/i370.h (current_function_outgoing_args_size): Delete
25680         declaration.
25681         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
25682         current_function_uses_pic_offset_table.
25683         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
25684         of current_function_returns_pointer.
25685         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
25686         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
25687         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
25688         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
25689         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
25690         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
25691         * config/m88k/m88k.c: Include "function.h"
25692         (call_used_regs, current_function_pretend_args_size,
25693         current_function_outgoing_args_size, frame_pointer_needed): Delete
25694         declarations.
25695         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
25696         declaration.
25697         * config/mips/mips.h (current_function_calls_alloca): Delete
25698         declaration.
25699         * config/mn10200/mn10200.h (current_function_needs_context,
25700         rtx_equal_function_value_matters): Delete declarations.
25701         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
25702         flag_pic): Delete declarations.
25703         * config/pa/pa.h (current_function_pretend_args_size,
25704         current_function_decl): Delete declarations.
25705         * config/pa/som.h (current_function_varargs): Delete declaration.
25706         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
25707         declaration.
25708         * config/pyr/pyr.h (current_function_pretend_args_size,
25709         current_function_args_size, current_function_calls_alloca): Delete
25710         declarations.
25711         * config/sh/sh.h (current_function_varargs): Delete declaration.
25712         * config/sparc/sparc.h (current_function_outgoing_args_size,
25713         current_function_calls_alloca, current_function_decl): Delete
25714         declarations.
25715         * config/spur/spur.h (current_function_pretend_args_size,
25716         current_function_calls_alloca): Delete declarations.
25717         * config/v850/v850.c (current_function_outgoing_args_size): Delete
25718         declaration.
25719         * config/vax/vms.h (current_function_name): Delete declaration.
25720         * gcse.c: Include "function.h".
25721         (current_function_name, current_function_calls_setjmp): Delete
25722         declarations.
25723         * haifa-sched.c: Include "function.h".
25724         (forced_labels): Delete declaration.
25725         * jump.c: Likewise.
25726         * reg-stack.c: Likewise.
25727         * reload1.c: Likewise.
25728         * genemit.c (main): Make generated file include function.h.
25729         * genoutput.c (output_prologue): Likewise.
25730
25731         * builtins.c (saveregs_value, apply_args_value): Delete variables.
25732         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
25733         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
25734         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
25735         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
25736         macros for some of them.
25737         (emit_filename, emit_lineno): Delete declarations.
25738         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
25739         regno_pointer_* variables through current_function.
25740         (gen_inline_header_rtx): Delete function.
25741         (save_emit_status): Delete function.
25742         (set_new_last_label_num): New function.
25743         (clear_emit_caches): New function.
25744         (restore_emit_status): Just clear last_labelnum and call
25745         clear_emit_caches.
25746         (get_last_insn_anywhere): Variable sequence_stack is now accessed
25747         through macro seq_stack.
25748         (add_insn_after): Likewise.
25749         (add_insn_before): Likewise.
25750         (remove_insn): Likewise.
25751         (pop_topmost_sequence): Likewise.
25752         (in_sequence_p): Likewise.
25753         (start_sequence_for_rtl_expr): Likewise.
25754         (start_sequence): Likewise, and likewise for
25755         sequence_rtl_expr/seq_rtl_expr.
25756         (push_topmost_sequence): Likewise.
25757         (end_sequence): Likewise.
25758         (init_virtual_regs): Now takes a "struct emit_status *" argument.
25759         All callers changed.  Store into that pointer instead of globals.
25760         (init_emit): Allocate emit elt of current_function.
25761         Changes for sequence_rtl_expr/sequence_stack renaming.
25762         Call clear_emit_caches instead of doing it in-line.
25763         Access regno_pointer_* variables through current_function.
25764         (init_emit_once) Don't clear sequence_stack.
25765
25766         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
25767         Delete variables.
25768         (arg_pointer_save_area): Delete declaration.
25769         (finish_expr_for_function): Renamed from init_queue; no longer static.
25770         (init_expr): Don't call init_queue.
25771         (save_expr_status, restore_expr_status): Delete functions.
25772         (expand_expr): Changes to reflect new layout of struct function.
25773         Don't access current_function_check_memory_usage when current_function
25774         is 0.
25775         * expr.h (forced_labels, save_expr_regs, saveregs_value,
25776         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
25777         current_function_outgoing_args_size, current_function_arg_offset_rtx,
25778         current_function_uses_const_pool, function_call_count,
25779         current_function_uses_pic_offset_table, nonlocal_labels,
25780         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
25781         current_function_check_memory_usage, nonlocal_goto_handler_slots,
25782         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
25783         declarations.
25784         (finish_expr_for_function): Declare.
25785         * flags.h (current_function_has_nonlocal_label,
25786         current_function_has_nonlocal_goto, current_function_is_thunk,
25787         current_function_has_computed_jump): Delete declarations.
25788         * flow.c (forced_labels): Delete declaration.
25789         * function.c (current_function_pops_args,
25790         current_function_returns_struct, current_function_returns_pcc_struct,
25791         current_function_needs_context, current_function_calls_setjmp,
25792         current_function_calls_longjmp, current_function_has_nonlocal_label,
25793         current_function_has_nonlocal_goto, current_function_is_thunk,
25794         current_function_has_computed_jump, current_function_calls_alloca,
25795         current_function_contains_functions, current_function_returns_pointer,
25796         current_function_epilogue_delay_list, current_function_args_size,
25797         current_function_pretend_args_size, current_function_arg_offset_rtx,
25798         current_function_outgoing_args_size, current_function_varargs,
25799         current_function_stdarg, current_function_args_info, cleanup_label,
25800         current_function_name, current_function_uses_const_pool,
25801         current_function_instrument_entry_exit, current_function_return_rtx,
25802         current_function_uses_pic_offset_table, nonlocal_labels,
25803         current_function_internal_arg_pointer, current_function_cannot_inline,
25804         current_function_check_memory_usage, function_call_count,
25805         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
25806         nonlocal_goto_stack_level, return_label, save_expr_regs,
25807         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
25808         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
25809         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
25810         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
25811         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
25812         Delete variables.
25813         (push_function_context_to): Don't save them.  Don't call
25814         save_storage_status, save_emit_status or save_expr_status.
25815         (pop_function_context_from): Don't restore them.  Don't call
25816         restore_storage_status or restore_expr_status.
25817         (get_func_frame_size): New function.
25818         (get_frame_size): Use it.
25819         (assign_outer_stack_local): Reflect some member name changes in struct
25820         function.
25821         (put_reg_into_stack): Likewise.
25822         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
25823         seq_rtl_expr.
25824         (fixup_var_refs): Likewise.
25825         (fix_lexical_addr): Likewise.
25826         (trampoline_address): Likewise.
25827         (prepare_function_start): Clear field inlinable of current_function.
25828         (init_function_for_compilation): New function.
25829         (expand_dummy_function_end): New function.
25830         (expand_function_end): Call finish_expr_for_function.
25831         * function.h (struct emit_status): New; fields moved here from struct
25832         function and from global variables.  Add accessor macros for some of
25833         the fields.
25834         (struct expr_status): Likewise.
25835         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
25836         (struct function): Add fields expr and emit, inlinable, inl_emit,
25837         original_arg_vector, original_decl_initial, inl_last_parm_insn,
25838         inl_max_label_num.  Add many comments.
25839         Add accessor macros for all elts of struct function that no longer
25840         have a global variable.
25841         (cleanup_label, return_label, frame_offset, tail_recursion_label,
25842         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
25843         stack_slot_list): Delete declarations.
25844         (get_func_frame_size): Declare.
25845         (save_expr_status, restore_expr_status, save_emit_status,
25846         save_storage_status, restore_storage_status): Delete declarations.
25847         (init_virtual_regs): Declare.
25848         * output.h (current_function_pops_args,
25849         current_function_returns_struct, current_function_returns_pcc_struct,
25850         current_function_needs_context, current_function_calls_setjmp,
25851         current_function_calls_longjmp, current_function_calls_alloca,
25852         current_function_has_nonlocal_label, current_function_varargs,
25853         current_function_has_computed_jump, current_function_returns_pointer,
25854         current_function_contains_functions, current_function_args_size,
25855         current_function_pretend_args_size, current_function_stdarg,
25856         current_function_outgoing_args_size, current_function_args_info,
25857         current_function_name, current_function_return_rtx,
25858         current_function_epilogue_delay_list,
25859         current_function_uses_const_pool, current_function_cannot_inline):
25860         Delete declarations.
25861         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
25862         regno_reg_rtx): Delete declaration.
25863         (REGNO_POINTER_FLAG): Delete macro.
25864         * stmt.c (expand_goto): Changes to reflect that some fields in struct
25865         function were renamed.
25866         * stor-layout.c (save_storage_status, restore_storage_status): Delete
25867         functions.
25868         * toplev.c: Include "function.h".
25869         (current_function_decl): Delete declaration.
25870         (compile_file): Call init_dummy_function_start and
25871         expand_dummy_function_end around some initializations that need to
25872         emit rtl.
25873         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
25874         Call init_function_for_compilation.
25875         * unroll.c: Include "function.h"
25876         (unroll_loop): Access regno_pointer_* variables through
25877         current_function.
25878
25879         * tree.h (struct tree_decl): Add elt f to saved_insns member.
25880         (DECL_SAVED_INSNS): use it.
25881         (expand_dummy_function_end): Declare.
25882         (init_function_for_compilation): Declare.
25883         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
25884         that it's no longer an INLINE_HEADER.
25885         (expand_call): Likewise.
25886         * integrate.c (finish_inline): Delete function.
25887         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
25888         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
25889         args.  Don't generate an INLINE_HEADER rtx, just return the arg
25890         vector.  All callers changed.
25891         (save_for_inline_copying):  Create a duplicate struct emit_status to
25892         hold the emit state for compiling the current function.  Use this and
25893         the other new fields in struct function that are for integration
25894         instead of an INLINE_HEADER.
25895         Use memcpy instead of bcopy.
25896         Store the current struct function in DECL_SAVED_INSNS of fndecl.
25897         (save_for_inline_nocopy): Similar changes, except no new emit_status
25898         is needed here.
25899         (expand_inline_function): Get information from function structure,
25900         not from an inline header rtx.
25901         (output_inline_function): Lose code to extract the necessary
25902         information from an inline header; simply put back the function
25903         structure into current_function.  Clear its inlinable elt.
25904         * rtl.def (INLINE_HEADER): Delete.
25905         * rtl.h: Delete all accessors for an INLINE_HEADER.
25906         (gen_inline_header_rtx): Delete declaration.
25907         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
25908         Delete declarations.
25909         (REGNO_POINTER_ALIGN): Delete.
25910         (clear_emit_caches): Declare.
25911         (set_new_last_label_num): Declare.
25912
25913 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
25914
25915         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
25916
25917         * except.c (expand_eh_region_start_for_decl): Always start a new block.
25918         * stmt.c (is_eh_region): Make sure current_function is present, too.
25919
25920 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
25921
25922         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
25923         for 64bit PA targets.
25924
25925         * pa.h (SELECT_SECTION): Define.
25926         * som.h (SELECT_SECTION): Delete.
25927
25928 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25929
25930         * alias.c (init_alias_analysis): Wrap call to
25931         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
25932
25933 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
25934
25935         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
25936         <sys/asm.h> contains an asm comment with an apostrophe
25937         * fixinc/inclhack.sh:  regen
25938         * fixinc/fixincl.x:  regen
25939
25940 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
25941
25942         * function.c (init_function_start): Clear prologue & epilogue.
25943         (prologue_epilogue_contains): New function.
25944         * alias.c (init_alias_analysis): Use it.
25945         * rtl.h (prologue_epilogue_contains): Declare it.
25946
25947 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
25948
25949         * jump.c (onlyjump_p): New function.
25950         * rtl.h: Declare it.
25951         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
25952         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
25953
25954 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
25955
25956         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
25957         to invert loops.  Simplify block scanning.
25958
25959 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
25960
25961         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
25962         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
25963
25964 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
25965
25966         * config/sparc/liteelf.h: New file to support sparclite-elf target
25967         * config/sparc/t-sp86x: New file to support sparc86x targets
25968         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
25969         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
25970         * configure.in: Support above target triplets
25971         * configure: Regenerated
25972
25973 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
25974
25975         * fixinc/server.c (server_setup): Do not prefix function used as
25976         parameter with `&'.
25977
25978 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
25979
25980         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
25981         Remove fp reg alternatives.
25982
25983 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
25984
25985         * Makefiin (TAROUTOPTS): Kill.
25986         (install-headers-tar): Use "xpf" for tar headerfile extraction
25987         * i370/x-oe (TAROUTOPTS): Delete.
25988         * m68k/x-apollo68 (TAROUTOPTS): Delete.
25989         * m68k/x-hp320 (TAROUTOPTS): Delete.
25990         * m68k/x-hp320g (TAROUTOPTS): Delete.
25991         * gcc.texi: Update bug reporting text.
25992
25993 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
25994
25995         * reg-stack.c (change_stack) Fixed problem with negative array index.
25996
25997 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
25998
25999         * extend.texi, install.texi: Fix spelling mistakes.
26000
26001         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
26002         (s-attrtab); No longer try to use pre-made insn-attrtab file.
26003         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
26004         PREMADE_ATTRTAB_MD.
26005         * mips/t-ecoff: Likewise.
26006         * mips/t-elf: Likewise.
26007         * mips/t-mips: Likewise.
26008         * mips/t-osfrose: Likewise.
26009         * mips/t-r3900: Likewise.
26010         * mips/t-svr3: Likewise.
26011         * mips/t-svr4: Likewise.
26012         * mips/t-ultrix: Likewise.
26013
26014         * gcc.texi: Document recommend means to provide software floating
26015         point libraries in libgcc.a
26016
26017 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
26018
26019         * c-lex.c (yylex): We can have a number with no digits.
26020
26021 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
26022
26023         * jump.c (delete_prior_computation): New function, broken
26024         out of delete_computation.  Check for side effects with
26025         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
26026         multi-word hard registers.
26027         (delete_computation): Use it.  Check for side effects with
26028         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
26029         missing REG_DEAD note for a register which is both set and
26030         used by an insn.
26031
26032 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
26033
26034         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
26035         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
26036         (ASM_FILE_START): Import _mcount with the right type.
26037         (ASM_DECLARE_FUNCTION_NAME): Define.
26038         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
26039         * pa.c (output_function_prologue): Always emit the function's label
26040         here.
26041         * pa.h (TEXT_SPACE_P): Define.
26042         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
26043         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
26044         * som.h (TEXT_SPACE_P): Delete.
26045         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
26046         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
26047
26048 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
26049
26050         * expr.c (emit_group_load): Allow src to be a CONCAT.
26051
26052 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26053
26054         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
26055         (___mulsi3): Use '!' comment character.
26056
26057 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26058
26059         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
26060
26061 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
26062
26063         * gcc.c: Update URLs and mail addresses.
26064         * gcc.texi: Likewise.
26065
26066 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
26067
26068         * rs6000.c (current_file_function_operand): Return zero for
26069         weak functions.
26070         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
26071         weak symbols.
26072         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
26073         for weak symbols.
26074
26075 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
26076
26077         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
26078         allocate space in the stack frame for the PIC register.
26079
26080 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
26081
26082         * m68k.md (xordi3, anddi3): These patterns are not available on
26083         the coldfire.
26084
26085 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
26086
26087         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
26088         (PUT_REAL): Likewise.
26089
26090 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26091
26092         * final.c (shorten_branches): Don't add an alignment for loops
26093         that have no label inside.
26094
26095 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26096
26097         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
26098         prototypes in macro HAVE_cmpstrsi.
26099
26100         * cpplib.c (cpp_get_token): Remove unused label `op3'.
26101
26102         * emit-rtl.c (operand_subword): Remove unused variable
26103         `bits_per_word'.
26104
26105         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
26106
26107         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
26108
26109 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
26110
26111         * cpphash.c (macroexpand): Delete leading whitespace when arg
26112         is concatenated before.
26113         (unsafe_chars): Correct test for whether + and - can extend a
26114         token.
26115
26116         * cppinit.c (cpp_start_read): Do dependencies for
26117         -include/-imacros files also.
26118
26119         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
26120         tokenizing non-directive lines.
26121         (cpp_expand_to_buffer): Temporarily disable no-output mode.
26122         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
26123         the input file.
26124
26125 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
26126
26127         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
26128
26129         * c-lex.c: Sync with C++ frontend.
26130         (linemode): New variable.
26131         (parse_float): imag, conversion_errno, and type are output only.
26132         (yylex): Adjust.  Move initial '.' case into main switch.
26133         Use linemode.
26134         (handle_generic_pragma): Just deal with tokens.
26135         (readescape): Use ISXDIGIT and ISGRAPH.
26136         * c-parse.in: Add END_OF_LINE token.
26137
26138         * c-lex.c (lang_init): Generalize.
26139         (nextchar): Remove.  Replace uses with UNGETC.
26140         (skip_white_space): Handle linemode here.  Optimize for cpplib.
26141         (skip_white_space_on_line): Remove.
26142         (extend_token_buffer_to): New fn.
26143         (extend_token_buffer): Use it.
26144         (read_line_number, check_newline): Just deal with tokens.
26145         (token_getch, token_put_back): New fns.
26146         (yylex): Use them.  More cpplib optimizations.  Simplify.
26147
26148 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
26149                           Jason Merrill  <jason@yorick.cygnus.com>
26150
26151         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
26152         (consume_string): Make this smart about USE_CPPLIB.
26153         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
26154         (yylex): Rewrite to be intelligent about USE_CPPLIB.
26155         Also, clean up cases where we redundantly set token_buffer[0].
26156         (read_line_number): New fn.
26157         (ignore_escape_flag): New variable.
26158
26159 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
26160
26161         * a29k/t-a29kbare: Fix some comments.
26162         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
26163         (FPBIT, DPBIT): Define.
26164         * a29k/t-vx29k: Likewise.
26165         * arc/t-arc: Likewise.
26166         * arm/t-arm-elf: Likewise.
26167         * arm/t-bare: Likewise.
26168         * arm/t-pe: Likewise.
26169         * arm/t-pe-thumb: Likewise.
26170         * arm/t-semi: Likewise.
26171         * arm/t-thumb: Likewise.
26172         * arm/t-thumb-elf: Likewise.
26173         * arm/t-thumb-linux: Likewise.
26174         * h8300/t-h8300: Likewise.
26175         * i960/t-i960: Likewise.
26176         * i960/t-vxworks960: Likewise.
26177         * m32r/t-m32r: Likewise.
26178         * mips/t-ecoff: Likewise.
26179         * mips/t-elf: Likewise.
26180         * mips/t-r3900: Likewise.
26181         * pa/t-pro: Likewise.
26182         * rs6000/t-aix43: Likewise.
26183         * rs6000/t-beos: Likewise.
26184         * rs6000/t-newas: Likewise.
26185         * rs6000/t-ppccomm: Likewise.
26186         * rs6000/t-rs6000: Likewise.
26187         * rs6000/t-winnt: Likewise.
26188         * rs6000/t-xnewas: Likewise.
26189         * rs6000/t-xrs6000: Likewise.
26190         * sh/t-sh: Likewise.
26191         * sparc/t-elf: Likewise.
26192         * sparc/t-sparcbare: Likewise.
26193         * sparc/t-sparclite: Likewise.
26194         * sparc/t-splet: Likewise.
26195         * v850/t-v850: Likewise.
26196         * mn10200/t-mn10200: Fix comments.
26197         * mn10300/t-mn10300: Likewise.
26198
26199         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
26200         dummy operand.  Allocate a new pseudo for the dummy operand.
26201         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
26202
26203         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
26204
26205 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
26206
26207         * configure: Rebuilt.
26208         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
26209
26210 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
26211
26212         * recog.c (preproces_constraints): Zero recog_op_alt before
26213         processing the constraints.
26214
26215         * arm.c (typedef minipool_node): Renamed from pool_node.
26216         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
26217         (add_minipool_constant): New function.
26218         (dump_minipool): New function.
26219         (find_barrier): Remove special case for getting the insn size of
26220         an insn that references the constant pool.
26221         (minipool_fixup): New structure.
26222         (push_minipool_barrier): New function.
26223         (push_minipool_fix): New function.
26224         (note_invalid_constants): New function.
26225         (add_pool_constant, dump_table, fixit, broken_move): Delete.
26226         (arm_reorg): Rewrite code to fix up the constant pool into a
26227         series of mini-pools embedded in the insn stream.
26228         (arm_output_epilogue): New function, made mainly from the body
26229         of output_func_epilogue.
26230         (output_func_epilogue): Move insn generation part of epilogue code
26231         to arm_output_epilogue.
26232         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
26233         * arm.md (pool_range): New attribute.
26234         (zero_extendqidi2): Add attribute pool_range.
26235         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
26236         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
26237         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
26238         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
26239         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
26240         (epilogue): New expand.
26241         (epilogue_insn): New insn.  Call arm_output_epilogue.
26242
26243         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
26244         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
26245
26246 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
26247
26248         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
26249
26250 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
26251
26252         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
26253
26254 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
26255
26256         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
26257
26258 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
26259
26260         * global.c: Fix comment.
26261
26262 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
26263
26264         * gcc.c (access_check): New static function.
26265         (find_a_file): Use it when searching a directory list.
26266         * collect2.c (find_a_file): Don't accept directories found when
26267         searching a directory list.
26268
26269 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
26270
26271         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
26272         function parameters with `&'.
26273         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
26274
26275 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
26276
26277         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
26278         or tidy_fallthru_edge if the last insn in the block is not
26279         an unconditional jump or a simple conditional jump.
26280
26281 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26282
26283         * Makefile.in (c-decl.o): Depends on defaults.h.
26284
26285 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
26286
26287         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
26288         PA1.1 and above.
26289         (CLASS_MAX_NREGS): Likewise.
26290
26291 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
26292
26293         * cse.c (cse_insn): Fix dumb thinko in last change.
26294
26295 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26296
26297         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
26298         "const char *".
26299
26300 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
26301
26302         * dwarf2out.c (add_location_or_const_value_attribute): Correct
26303         test for sizes of passed and declared parameter types.
26304
26305 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26306
26307         * fixincludes: Fix the return type of bsearch, char* -> void*.
26308
26309         * fixinc/inclhack.def: Likewise.
26310
26311 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
26312
26313         * invoke.texi (-fdump-translation-unit): New option.
26314
26315 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
26316
26317         * expr.h (PROMOTE_PROTOTYPES): Move ...
26318         * defaults.h: ... to here.
26319         * c-decl.c: Include defaults.h instead of expr.h.
26320         * c-typeck.c: Include defaults.h.
26321
26322 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
26323
26324         * toplev.h (errorcount): Declare.
26325         (warningcount): Likewise.
26326         (sorrycount): Likewise.
26327         * c-lex.c (errorcount): Don't declare.
26328         * dwarf2out.c (errorcount): Don't declare.
26329
26330 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
26331
26332         * config/libgloss.h: Add a note discouraging use with ELF.
26333         * configure.in: Don't use libgloss.h for ELF targets.
26334         Always use_collect2 on a.out targets.
26335
26336 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
26337
26338         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
26339         (force_to_mode, case ASHIFTRT): Add shiftrt label.
26340
26341 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26342
26343         * loop.c (strength_reduce): When doing biv->giv conversion, update
26344         reg note of NEXT->insn.
26345
26346 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
26347
26348         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
26349
26350 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
26351
26352         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
26353         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
26354         Ensure expr.h is included.
26355         * c-typecheck.c (convert_arguments): Ditto.
26356
26357         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
26358
26359         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
26360         * config/convex/convex.h: Ditto.
26361         * config/dsp16xx/dsp16xx.h: Ditto.
26362         * config/fx80/fx80.h: Ditto.
26363         * config/gmicro/gmicro.h: Ditto.
26364         * config/i370/i370.h: Ditto.
26365         * config/i386/i386.h: Ditto.
26366         * config/m32r/m32r.h: Ditto.
26367         * config/m68k/m68k.h: Ditto.
26368         * config/m88k/m88k.h: Ditto.
26369         * config/mips/mips.h: Ditto.
26370         * config/pa/pa.h: Ditto.
26371         * config/pyr/pyr.h: Ditto.
26372         * config/tahoe/tahoe.h: Ditto.
26373         * config/we32k/we32k.h: Ditto.
26374
26375         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
26376         based on arch size.
26377
26378         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
26379
26380         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
26381         from comment.
26382
26383         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
26384
26385 1999-08-02  Richard Henderson  <rth@cygnus.com>
26386
26387         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
26388         for the register spill block.
26389         (m32r_va_arg): New.
26390         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
26391         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
26392
26393         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
26394         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
26395         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
26396
26397 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
26398
26399         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
26400         MAX_WCHAR_TYPE defined in sparc.h.
26401         * config/sparc/linuxaout.h: Likewise.
26402         * config/sparc/linux64.h: Likewise.
26403         Also default to -mvis if CPU is UltraSPARC.
26404
26405 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
26406
26407         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
26408         (RTX_OK_FOR_OLO10): Likewise.
26409         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
26410         %lo(), allow it in addresses...
26411         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
26412         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
26413         does not make sense.
26414         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
26415         (sparc_output_scratch_registers): New function.
26416         (output_function_prologue, sparc_flat_output_function_prologue): Use
26417         it.
26418         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
26419         defined.
26420         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
26421         * configure.in: Add check for .register pseudo-op support in as and
26422         check for offsetable %lo().
26423         * acconfig.h: Add templates for the above checks.
26424         * configure: Regenerate.
26425
26426 1999-08-02  Richard Henderson  <rth@cygnus.com>
26427
26428         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
26429         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
26430         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
26431
26432 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26433
26434         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
26435         reg_biv_class.
26436
26437 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
26438
26439         * config/float-sparc.h: New file.
26440         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
26441         sparc-*-linux-gnu and sparc64-*-linux*.
26442
26443 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
26444
26445         * rs6000.c (rs6000_va_list): Type is an array.
26446         (rs6000_va_start): Don't doubly adjust for varargs.
26447         (rs6000_va_arg): Evaluate long long GPR adjustment.
26448
26449 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
26450
26451         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
26452         -maix64 and -maix32.
26453         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
26454         LINK_SPEC): Change appropriately.
26455         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
26456         (u_short_cint_operand): Likewise.
26457         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
26458         for 64-bit hosts.
26459         * rs6000/t-aix43 (MULTILIB): Change to -m64.
26460
26461         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
26462
26463 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
26464
26465         * rs6000/rs6000.c (num_insns_constant_wide): Correct
26466         for type promotion.
26467         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
26468         (non_add_cint_operand): Likewise.
26469         (logical_operand): Likewise.
26470         (non_logical_cint_operand): Likewise.
26471         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
26472         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
26473         (rs6000_select_rtx_section): Suppress warning.
26474         (small_data_operand): Suppress warning.
26475         (rs6000_got_register): Suppress warning.
26476         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
26477         type, so `J' is generally the wrong constraint for a SImode value;
26478         use `L' instead.
26479         (andsi3_internal2): Likewise.
26480         (andsi3_internal3): Likewise.
26481         (iorsi3_internal1): Likewise.
26482         (xorsi3_internal1): Likewise.
26483         (movsi): Likewise.
26484         (movsf_softfloat): Likewise.
26485         (scc insns): Likewise.
26486         (movsi+2): Preserve sign bits of SImode constant.
26487         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
26488         (movdf+1): Sign-extend properly.
26489         (movdi_32+1): Sign-extend properly.
26490         (scc insns): Sign-extend properly.
26491
26492         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
26493         K, L, and T.
26494
26495 1999-08-02  Richard Henderson  <rth@cygnus.com>
26496
26497         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
26498         -mcpu parsing code.
26499         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
26500         * alpha.md (all fp insns): Likewise.
26501
26502 1999-08-02  Nick Clifton  <nickc@cygnus.com>
26503
26504         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
26505         already defined.
26506
26507 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
26508
26509         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
26510         pic_load_label generator directly.
26511         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
26512         No longer a named pattern.
26513
26514 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
26515
26516         * explow.c (force_reg): Call force_operand if X does not
26517         satisfy general_operand.
26518
26519 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
26520
26521         * fix-header.c (main): When testing for CONTINUED, use string
26522         equality, not pointer equality.
26523
26524 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
26525
26526         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
26527
26528 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
26529
26530         * cse.c (cse_insn): Fix loop which deletes insns after a jump
26531         that has become an unconditional jump.
26532
26533         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
26534         (output_function_epilogue): Similarly.
26535
26536 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26537
26538         * tree.h (init_dummy_function_start): Declare.
26539
26540 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26541
26542         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
26543         last_expr_type, last_expr_value, block_start_count, block_stack,
26544         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
26545         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
26546         dynamically in stmt elt of struct function for each function.
26547         (struct nesting): Rename function_call_count elt to n_function_calls,
26548         target_temp_slot_level to block_target_temp_slot_level.  All users
26549         changed.
26550         (struct stmt_status): New structure definition.
26551         Add many accessor macros for stmt_status elements which previously
26552         were global variables.
26553         (init_stmt_for_function): Allocate stmt elt for current_function.
26554         Reflect that block_start_count was renamed to
26555         current_block_start_count.
26556         (save_stmt_status, restore_stmt_status): Delete functions.
26557         (preserve_subexpressions_p): Don't access loop_stack when outside
26558         a function.
26559         (expand_start_bindings): Reflect that block_start_count was renamed to
26560         current_block_start_count.
26561         (expand_fixup): Likewise.
26562         (expand_decl): Don't access block_stack when outside a function.
26563         (expand_decl_cleanup): Likewise.
26564         (expand_dcc_cleanup): Likewise.
26565         (expand_dhc_cleanup): Likewise.
26566         (expand_anon_union_decl): Likewise.
26567         (set_file_and_line_for_stmt): New function.
26568         (in_control_zone_p): New function.
26569
26570         * function.h (struct function): Add new elt stmt.
26571         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
26572         case_stack, nesting_stack, nesting_depth, block_start_count,
26573         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
26574         emit_lineno, goto_fixup_chain.
26575         (save_eh_status, restore_eh_status, save_stmt_status,
26576         restore_stmt_status): Delete declarations.
26577         * function.c (push_function_context_to): Don't call save_stmt_status.
26578         (pop_function_context_to): Don't call restore_stmt_status.
26579         * tree.h (in_control_zone_p): Declare.
26580         * rtl.h (set_file_and_line_for_stmt): Declare.
26581
26582         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
26583         call set_file_and_line_for_stmt.
26584
26585 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
26586
26587         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
26588         Also update copyright.
26589
26590 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26591
26592         * c-pragma.c: Don't include "except.h".
26593         * emit-rtl.c: Likewise.
26594         * stor-layout.c: Likewise.
26595         * tree.c: Likewise.
26596         * varasm.c: Likewise.
26597
26598         * flow.c: Include "function.h".
26599         * tree.h (init_dummy_function_start): Declare new function.
26600
26601         * except.h (struct eh_status): New structure.
26602         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
26603         been included.
26604         (eh_return_stub_label, ehstack, catchstack, ehqueue,
26605         catch_clauses, false_label_stack, caught_return_label_stack,
26606         protect_list, current_function_ehc): Add accessor macros for the
26607         corresponding fields in current_function->eh; delete declarations
26608         for all items that used to be declared here.
26609         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
26610         catch_clauses, false_label_stack, caught_return_label_stack,
26611         protect_list, current_function_ehc): Delete variables.
26612         (init_eh_for_function): Allocate current_function->eh.
26613         (save_eh_status, restore_eh_status): Delete functions.
26614
26615         * function.h (struct function): Add fields next_global and eh.
26616         Delete all exception handling related fields.
26617         * function.c (current_function): New variable.
26618         (all_functions): New variable.
26619         (push_function_context_to): Don't allocate a struct function,
26620         use current_function instead.  Call init_dummy_function_start when
26621         outside a function.  Clear current_function before returning.
26622         (pop_function_context_from): Restore current_function.
26623         Don't free the restored struct function.
26624         (prepare_function_start): New function.
26625         (init_dummy_function_start): New function.
26626         (init_function_start): Break out some code into prepare_function_start
26627         and call it here.
26628
26629         * stmt.c (save_stmt_status): Don't call save_eh_status.
26630         (restore_stmt_status): Don't call restore_eh_status.
26631
26632         * Makefile.in: Update dependencies.
26633
26634 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
26635
26636         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
26637         of depending on a magic constant value.  Update comments.
26638         (hppa_expand_prologue): Similarly.
26639
26640         * pa.md (reload_indi, reload_outdi): Allow any register for the
26641         original reload register.
26642
26643 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
26644
26645         * cccp.c (print_help): Change marcos to macros.
26646
26647 1999-07-30  Richard Henderson  <rth@cygnus.com>
26648
26649         * c-typeck.c (initializer_constant_valid_p): Move ...
26650         * c-common.c (initializer_constant_valid_p): ... here.  Use
26651         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
26652         of label addresses.
26653         * c-common.h (initializer_constant_valid_p): Declare.
26654         * c-tree.h (initializer_constant_valid_p): Remove.
26655
26656 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
26657
26658         * config/i386/sol2-c1.asm: Align the stack.
26659         * config/i386/sol2-gc1.asm: Likewise.
26660
26661 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
26662
26663         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
26664         -Asparclite for sparc86x.
26665         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
26666         sparc86x.
26667         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
26668
26669 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
26670
26671         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
26672         the user if using the non-default arch size in BI_ARCH configuration.
26673         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
26674
26675         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
26676         Fix patterns so that they actually match.
26677         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
26678         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
26679         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
26680         TARGET_HARD_MUL32.
26681         (mulsidi3): Reflect this in the expand.
26682         (smulsi3_highpart): Only on TARGET_ARCH32.
26683         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
26684         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
26685         (umulsidi3): Reflect this in the expand.
26686         (umulsi3_highpart): Only on TARGET_ARCH32.
26687         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
26688         don't require g0 to be zero.
26689         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
26690         ({,u}divsi3): New expands.
26691         ({,u}divsi3_sp64): New patterns.
26692         (after lshrdi3_v8plus): Four new patterns to help combiner
26693         optimizing nested mixed mode shifts.
26694
26695         * config/sparc/sparc.c (sparc_override_options): Use deprecated
26696         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
26697         speed things up. Don't use them by default on plain v9 in 64bit
26698         mode, according to what SPAMv9 sais.
26699
26700         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
26701         top 32 bits of %[og][0-7] in signal handlers.
26702         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
26703
26704 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
26705
26706         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
26707         (ashlsi3): Corresponding changes.
26708
26709         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
26710
26711 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
26712
26713         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
26714
26715 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26716
26717         * arm.h (Hint): Delete macro.
26718         Substitute HOST_WIDE_INT for Hint in some prototypes.
26719         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
26720
26721 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
26722
26723         * builtins.c (expand_builtin_setjmp): Use force_operand to
26724         make sure that the buffer address is in a suitable form to be
26725         passed to force_reg.
26726
26727 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
26728
26729         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
26730         them here.
26731
26732 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
26733
26734         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
26735         proper mode in the condition string.
26736         (icacheflush, dcacheflush): Remove modes from match_operands.
26737
26738         * pa.c (emit_move_sequence): Always convert scratch_reg to the
26739         proper mode before using it.
26740
26741         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
26742         pair.
26743
26744         * pa.c (store_reg): Do not call add_high_const generator directly.
26745         (load_reg, set_reg_plus_d): Likewise.
26746         * pa.md (add_high_const): No longer a named pattern.
26747
26748         * pa.c (legitimize_address): Consistently use Pmode rather than
26749         SImode.  Do not call gen_pic2_highpart directly anymore.
26750         * pa.md (pic2_highpart): No longer a named pattern.
26751         (pic2_lo_sum): Similarly.  Reformat to make more readable.
26752
26753         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
26754         needed.
26755
26756         * README: Update.
26757
26758 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
26759
26760         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
26761
26762 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
26763
26764         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
26765         and tag the spill mems.
26766         (hppa_va_start): New.
26767         (hppa_va_arg): New.
26768         * pa.h (EXPAND_BUILTIN_VA_START): New.
26769         (EXPAND_BUILTIN_VA_ARG): New.
26770
26771 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
26772
26773         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
26774         and tag the spill mems.
26775         (mn10300_va_start): New.
26776         (mn10300_va_arg): New.
26777         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
26778         (EXPAND_BUILTIN_VA_ARG): New.
26779
26780 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
26781
26782         * mn10200.c (mn10200_va_arg): New.
26783         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
26784
26785 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
26786
26787         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
26788         rather than play with TREE_INT_CST_LOW.
26789
26790 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
26791
26792         * config/arm/telf.h: Include dbxelf.h.
26793         (CPP_PREDEFINES): Only define if not already defined.
26794         (ASM_IDENTIFY_GCC): Likewise.
26795         (SUBTARGET_EXTRA_SECTIONS): Likewise.
26796         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
26797         * config/arm/thumb.h (LINK_SPEC): Only define if not already
26798         defined.
26799         (DBX_DEBUGGING_INFO): Don't define.
26800         * config/arm/linux-telf.h: New file.
26801         * config/arm/linux-tgas.h: New file.
26802         * config/arm/t-thumb-linux: New file.
26803         * config/arm/uclinux-elf.h: New file.
26804         * config/arm/uclinux-telf.h: New file.
26805         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
26806         thumb-*-uclinux): New targets.
26807         * configure: Regenerate.
26808
26809 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
26810
26811         * pa.md (post_store, pre_load): New expanders.
26812         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
26813         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
26814         need to directly generate RTL for them.
26815         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
26816         changes.
26817
26818 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
26819
26820         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
26821         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
26822         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
26823         (secndary_reload_class): Make TARGET_ELF conditional compile.
26824         (print_operand_address): Similar.
26825         (output_toc): Print all values as hex.
26826         (get_issue_rate): Rearrange and add RS64A and PPC630.
26827         * rs6000.h (processor_type): Add RS64A and PPC630.
26828         (PROCESSOR_POWERPC64): New.
26829         (PROMOTE_MODE): Use word_mode.
26830         (RTX_COSTS): Add RS64A and PPC630.
26831         * rs6000.md (scheduling information): Add lmul and ldiv
26832         representing 64-bit integer multiply and divide.  Add rs64a and
26833         PPC630 information.
26834         (ashldi3): Add support for "rldic" instruction.
26835         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
26836
26837 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
26838
26839         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
26840         instead of V8 for sparclite86x in cpu_table.
26841
26842 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26843
26844         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
26845         output_file_directive.
26846
26847 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
26848
26849         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
26850         tree for op1, not the rtl.
26851
26852 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
26853
26854         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
26855         to m88k_va_start, leaving only the register spill.
26856         (m88k_build_va_list): New.
26857         (m88k_va_start): New.
26858         (m88k_va_arg): New.
26859         * m88k.h (BUILD_VA_LIST_TYPE): New.
26860         (EXPAND_BUILTIN_VA_START): New.
26861         (EXPAND_BUILTIN_VA_ARG): New.
26862
26863 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
26864
26865         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
26866         Rename from expand_builtin_saveregs.
26867         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
26868
26869 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
26870
26871         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
26872         for the register spill block.
26873         (i960_build_va_list): New.
26874         (i960_va_start): New.
26875         (i960_va_arg): New.
26876         * i960.h (BUILD_VA_LIST_TYPE): New.
26877         (EXPAND_BUILTIN_VA_START): New.
26878         (EXPAND_BUILTIN_VA_ARG): New.
26879         * i960.md (store_multiple): Use change_address on individul mems.
26880
26881 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
26882
26883         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
26884         an ARRAY_TYPE.
26885         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
26886         (expand_builtin_va_end): Evaluate arg for side effects.
26887         * c-common.c (c_common_nodes_and_builtins): Construct a
26888         va_list_arg_type_node to handle array decomposition to pointer.
26889
26890 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
26891
26892         * except.c (st_dynamic_cleanup): Use force_operand on the
26893         buffer's address.
26894
26895 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
26896
26897         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
26898         * c4x.c (c4x_va_arg): New.
26899
26900 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
26901
26902         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
26903         has manual_pop set.
26904
26905 1999-07-26  Nathan Sidwell  <nathan@acm.org>
26906
26907         * eh-common.h (__eh_matcher): Prototype correctly.
26908
26909 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
26910
26911         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
26912         (TARGET_SINGLE_PIC_BASE): Likewise.
26913         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
26914         definitions.
26915         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
26916         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
26917         (TARGET_OPTIONS): Add -mpic-register=N.
26918         (OUTPUT_INT_ADDR_CONST): New macro.
26919         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
26920         LEGITIMATE_PIC_OPERAND_P): Likewise.
26921         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
26922         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
26923         output_addr_const directly.
26924         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
26925         ARM port.
26926         (thumb_pic_register, thumb_pic_register_string): Declare.
26927
26928         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
26929         from arm.c.
26930         (label_mentioned_p): New function: Imported from arm.c.
26931         (legitimize_pic_address): New function: Imported from arm.c.
26932         (is_pic):New function: Imported from arm.c.
26933         (thumb_finalize_pic):New function: Imported from arm.c.
26934         (add_constant): Cope with PIC constants.
26935         (fixit): Cope with PIC constants.
26936         (output_return): Do not treat the PIC register as live if
26937         TARGET_SINGLE_PIC_BASE is true.
26938         (thumb_function_prologue): Do not treat the PIC register as live if
26939         TARGET_SINGLE_PIC_BASE is true.
26940         (thumb_expand_prologue): Do not treat the PIC register as live if
26941         TARGET_SINGLE_PIC_BASE is true.
26942         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
26943         TARGET_SINGLE_PIC_BASE is true.
26944         (thumb_print_operand): Accept '|'.
26945         (thumb_override_options): Process PIC options.
26946
26947         * config/arm/thumb.md (movsi): Support PIC.
26948         (call_insn): Change "i" constraint to "X".
26949         (call_value_insn): Likewise.
26950         (consttable_4, consttable_8, consttable_end): Set and clear
26951         "making_const_table" as appropriate.
26952         (pic_load_addr, pic_add_dot_plus_four): New insns.
26953
26954         * invoke.texi (Thumb Options): Fix spelling.  Document new
26955         options -msingle-pic-base and -mpic-register=.
26956
26957 1999-07-26  Andrew Haley  <aph@cygnus.com>
26958
26959         * config/m32r/initfini.c (__init): Use a full word immediate for
26960         __fini: this allows it to be placed in any memory region.
26961
26962         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
26963         -mmodel=medium.  This is OK for all memory models.
26964
26965 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
26966
26967         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
26968         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
26969
26970 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
26971
26972         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
26973         defined.
26974
26975         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
26976
26977 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
26978
26979         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
26980         (BUILD_VA_LIST_TYPE): New.
26981         (EXPAND_BUILTIN_VA_START): New.
26982         (EXPAND_BUILTIN_VA_ARG): New.
26983         * i860.c (output_delayed_branch): Disable.
26984         (output_delay_insn): Likewise.
26985         (i860_saveregs): New.
26986         (i860_build_va_list): New.
26987         (i860_va_start): New.
26988         (i860_va_arg): New.
26989         * i860.md: Disable all peepholes using output_delayed_branch.
26990         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
26991
26992 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
26993
26994         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
26995         (BUILD_VA_LIST_TYPE): New.
26996         (EXPAND_BUILTIN_VA_START): New.
26997         (EXPAND_BUILTIN_VA_ARG): New.
26998         * clipper.c (clipper_builtin_saveregs): Only dump registers.
26999         Return the address of the save area.
27000         (clipper_build_va_list): New.
27001         (clipper_va_start): New.
27002         (clipper_va_arg): New.
27003
27004 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
27005
27006         * arc.h (EXPAND_BUILTIN_VA_START): New.
27007         (EXPAND_BUILTIN_VA_ARG): New.
27008         * arc.c (arc_setup_incoming_varargs): Set alias set of
27009         varargs save area.
27010         (arc_va_start): New.
27011         (arc_va_arg): New.
27012
27013 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
27014
27015         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
27016         (BUILD_VA_LIST_TYPE): New.
27017         (EXPAND_BUILTIN_VA_START): New.
27018         (EXPAND_BUILTIN_VA_ARG): New.
27019         * alpha.c (alpha_builtin_saveregs): Delete.
27020         (alpha_build_va_list): New.
27021         (alpha_va_start): New.
27022         (alpha_va_arg): New.
27023
27024 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
27025
27026         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
27027         column zero.
27028         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
27029         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
27030
27031         * gcc.texi: More changes related to list conversion.
27032         * invoke.texi: Likewise.
27033
27034 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
27035
27036         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
27037         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
27038         (expand_builtin_next_arg): Accept ARGLIST not EXP.
27039         (stabilize_va_list): New function.
27040         (std_expand_builtin_va_start): New function.
27041         (expand_builtin_va_start): New function.
27042         (get_varargs_alias_set): New function.
27043         (std_expand_builtin_va_arg): New function.
27044         (expand_builtin_va_arg): New function.
27045         (expand_builtin_va_end): New function.
27046         (expand_builtin_va_copy): New function.
27047         (expand_builtin): Call them.
27048         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
27049         __builtin_{varargs_start,stdarg_start,end,copy}.
27050         (build_va_arg): New function.
27051         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
27052         (build_va_arg): Declare.
27053         * c-decl.c (ptr_type_node, va_list_type_node): New.
27054         * c-parse.gperf (__builtin_va_arg): New.
27055         * c-parse.in (VA_ARG): New token.
27056         (unary_expr): Recognize it.
27057         * expr.c (expand_expr): Expand VA_ARG_EXPR.
27058         * expr.h (std_expand_builtin_va_start): Declare.
27059         (std_expand_builtin_va_arg): Declare.
27060         (expand_builtin_va_arg): Declare.
27061         (get_varargs_alias_set): Declare.
27062         * tree.def (VA_ARG_EXPR): New.
27063         * tree.h (BUILT_IN_VARARGS_START): New.
27064         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
27065         (ptr_type_node, va_list_type_node): Declare.
27066         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
27067         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
27068         * m88k.h, m88k.c: Likewise.
27069         * mn10300.h, mn10300.c: Likewise.
27070         * pa.h, pa.c: Likewise.
27071         * rs6000.h, rs6000.c: Likewise.
27072         * sh.h, sh.c: Likewise.
27073         * sparc.h, sparc.c: Likewise.
27074
27075         * emit-rtl.c (operand_subword): Copy alias set.
27076         (change_address): Likewise.
27077
27078 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
27079
27080         * pa.c (compute_frame_size): Scan all the used callee saved registers,
27081         not just the first one.
27082
27083 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
27084
27085         * config/arm/arm.h (TARGET_SWITCHES): Add
27086         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
27087         (TARGET_OPTIONS): Add -mpic-register=.
27088         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
27089         (arm_pic_register_string): Declare.
27090         (NEED_PLT_GOT): Delete, replace with ...
27091         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
27092         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
27093         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
27094         * config/arm/arm.c (arm_override_options): Add new option
27095         -mpic-register=N.
27096         (arm_pic_register_string): New variable.
27097         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
27098         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
27099         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
27100         (output_return_instruction): Likewise.
27101         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
27102         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
27103         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
27104
27105         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
27106         mention of -msched-prolog.  Document new options -msingle-pic-base
27107         and -mpic-register=.
27108
27109 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
27110
27111         * haifa-sched.c (reemit_notes): Tidy.
27112         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
27113         haifa's routine.
27114
27115 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
27116
27117         * explow.c (trunc_int_for_mode): New function.
27118         (plus_constant_wide): Use it.
27119         * combine.c (simplify_and_const_int): Likewise.
27120         (merge_outer_ops): Likewise.
27121         (simplify_shift_const): Likewise.
27122         * cse.c (simplify_unary_operation): Likewise.
27123         (simplify_binary_operation): Likewise.
27124         * emit-rtl.c (operand_subword): Likewise.
27125         * rtl.h: Declare it.
27126
27127 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27128
27129         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
27130         (use NUM_REGS instead of NUM_INTS).
27131
27132 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27133
27134         * builtins.c: New file.
27135         * expr.c (saveregs_value, apply_args_value):  Delete definition,
27136         moved into builtins.c.
27137         (string_constant): No longer static.
27138         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
27139         apply_args_size, apply_result_size, result_vector,
27140         expand_builtin_apply_args, expand_builtin_apply,
27141         expand_builtin_return): Delete functions, moved into builtins.c.
27142         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
27143         * expr.h (saveregs_value, apply_args_value): Declare variables.
27144         (expand_builtin, string_constant): Declare functions.
27145         * Makefile.in: Update to build builtin.o.
27146
27147 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
27148
27149         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
27150         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
27151         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
27152         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
27153         false.
27154         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
27155         Define to zero.
27156
27157 1999-07-21  Michael Meissner  <meissner@cygnus.com>
27158
27159         * print-rtl.c (print_rtx): Print the names of the virtual
27160         registers.
27161
27162 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
27163
27164         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
27165         introduced in previous delta.
27166
27167 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27168
27169         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
27170         to avoid name clash.
27171
27172 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
27173
27174         * c-lex.c (yylex) : Correct the test for overflow when lexing
27175         integer literals.
27176
27177 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
27178
27179         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
27180         (adjust_priority): Always call ADJUST_PRIORITY.
27181         (schedule_insn): Only put insns into the ready at cost 0.
27182         (schedule_block): Remove redundant initial sort.  Give clock_var
27183         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
27184         is not 0.
27185         * tm.texi (MD_SCHED_REORDER): Update docs.
27186
27187         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
27188         * sparc.c (ultra_reorder_called_this_block): Delete.
27189         (ultrasparc_sched_init): Don't set it.
27190         (ultrasparc_sched_reorder): Don't check it.
27191
27192 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
27193
27194         * rs6000.h (struct rs6000_args): Add sysv_gregno.
27195         * rs6000.c (init_cumulative_args): Init sysv_gregno.
27196         (function_arg_boundary): Align DFmode.
27197         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
27198         to get fp reg and stack overflow correct.
27199         (function_arg): Likewise.
27200         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
27201         (setup_incoming_varargs): Restructure for ABI_V4; use
27202         function_arg_advance to skip final named argument.
27203         (expand_builtin_saveregs): Properly unskip the last integer arg
27204         when doing varargs.  Adjust overflow location calculation.
27205
27206         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
27207         explicitly unsigned.
27208         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
27209         (__VA_GP_REGSAVE): Similarly.
27210         (__va_longlong_p): Delete.
27211         (__va_arg_type_violation): New declaration.
27212         (va_arg): Restructure.  Flag promotion errors.  Align double.
27213         TFmode passed by reference.
27214
27215         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
27216         in the HOST_BITS_PER_WIDE_INT > 32 case.
27217
27218 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
27219
27220         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
27221
27222 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
27223
27224         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
27225         * toplev.c (documented_lang_options): Add -fpreprocessed.
27226         * cpplib.h (struct cpp_buffer): Add preprocessed.
27227         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
27228         (cpp_start_read): Don't expand macros or emit an initial #line
27229         directive if -fpreprocessed.
27230
27231 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
27232
27233         * cpplib.h (struct cpp_buffer): Added manual_pop for
27234         better C++ tokenization.
27235         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
27236         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
27237         * c-common.c (cpp_token): Make non-static.
27238
27239 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27240
27241         * c-common.h: New file.
27242         * c-common.c (permanent_obstack): Delete unused declaration.
27243         (c_global_trees): New array.
27244         (c_common_nodes_and_builtins): New function; split off common code
27245         from init_decl_processing in both c-decl.c and cp/decl.c.
27246         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
27247         c_global_trees and accessor macros defined in c-common.h.
27248         Include c-common.h.
27249         * c-decl.c: Delete definitions for tree nodes that were replaced by
27250         c_global_trees.
27251         (init_decl_processing): Build void_list_node.
27252         Call c_common_nodes_and_builtins; delete code to generate the common
27253         builtins here.
27254         * objc/objc-act.c (build_module_descriptor): Rename variable
27255         void_list_node to avoid clash with c-common.h.
27256
27257         * Makefile.in: Update dependencies.
27258         * objc/Make-lang.in: Likewise.
27259
27260 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
27261
27262         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
27263         (UNIQUE_SECTION_P): Likewise.
27264         (UNIQUE_SECTION): Likewise.
27265
27266 1999-07-19  Linas Vepstas  <linas@linas.org>
27267
27268         * config/i370/README: New file.
27269         * config/i370/linux.h: New file.
27270         * config/i370/mvs.h: New file.
27271         * config/i370/oe.h: New file.
27272         * config/i370/t-linux: New file.
27273         * config/i370/t-mvs: New file.
27274         * config/i370/t-oe: New file.
27275         * config/i370/x-oe: New file.
27276         * config/i370/xm-linux.h: New file.
27277         * config/i370/xm-mvs.h: New file.
27278         * config/i370/xm-oe.h: New file.
27279
27280         * i370.c (label_node_t): Add first_ref_page, label_addr,
27281         label_first_ref, label_last_ref members.
27282         (mvs_need_base_reload): Renamed from mvs_label_emitted.
27283         (MAX_MVS_LABEL_SIZE): Define.
27284         (MAX_LONG_LABEL_SIZE): Define.
27285         (alias_node_t, alias_anchor, alias_number): New.
27286         (mvs_function_table): Reorder for EBCDIC.
27287         (ascebc, ebcasc): Unconditionally define.
27288         (i370_branch_dest, i370_branch_length): New functions.
27289         (i370_short_branch, i370_label_scan): New functions.
27290         (mvs_get_label): Renamed from mvs_add_label.  Search for
27291         an existing label before creating a new one.
27292         (mvs_add_label): New function.
27293         (mvs_get_label_page): New function.
27294         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
27295         over the entire list.
27296         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
27297         (mvs_check_page) [TARGET_ELF_ABI]: New function.
27298         (mvs_add_alias, mvs_need_alias): New functions.
27299         (mvs_get_alias, mvs_check_alias): New functions.
27300         (handle_pragma): New function.
27301         (mvs_function_check): New function.
27302         (unsigned_jump_follows_p): Search harder.
27303         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
27304         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
27305         * i370.h (TARGET_VERSION): Delete.
27306         (CPP_SPEC, CPP_PREDEFINES): Delete.
27307         (mvs_label_emitted): Delete.
27308         (TARGET_EBCDIC): Delete.
27309         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
27310         (HANDLE_PRAGMA): Define.
27311         (HARD_REGNO_NREGS): Handle complex modes.
27312         (HARD_REGNO_MODE_OK): Likewise.
27313         (CLASS_MAX_NREGS): Likewise.
27314         (RET_REG): Likewise.
27315         (EXTRA_CONSTRAINT): Define.
27316         (RETURN_IN_MEMORY): True for DImode.
27317         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
27318         (FUNCTION_PROFILER): Delete.
27319         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
27320         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
27321         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
27322         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
27323         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
27324         (ASM_FILE_START): Add "RMODE ANY".
27325         (ASM_OUTPUT_EXTERNAL): Check for aliases.
27326         (ASM_GLOBALIZE_LABEL): Likewise.
27327         (ASM_OUTPUT_LABELREF): Likewise.
27328         (ASM_OUTPUT_COMMON): Likewise.
27329         (PRINT_OPERAND): Handle 'K', 'W', default.
27330         (PRINT_OPERAND_ADDRESS): New.
27331         (Lots of defines): Add support for TARGET_ELF_ABI.
27332         * i370.md (attr length): New.  Define for all patterns.
27333         (*): Lots of tweeks to assembly output and constraints.
27334
27335 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
27336
27337         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
27338         Disable patterns performing SImode comparisons with SImode values
27339         if TARGET_POWERPC64 and instruction does not sign-extend or does
27340         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
27341         differ for signed quantities.
27342         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
27343         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
27344         (decrement_and_branch_on_count): Add 64-bit variant.
27345
27346 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27347
27348         * final.c (output_asm_insn): When searching for the matching string
27349         for a given dialect, don't run past the end of the list of
27350         alternatives if there are fewer alternatives in the template than
27351         dialects.
27352
27353 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
27354
27355         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
27356         Removed paragraph about compression of files and size limitation,
27357         duplicated in the FAQ.  Use gcc-patches for posting patches.
27358         * gcc.c (main): Updated URL with bug reporting instructions to
27359         gcc.gnu.org.  Removed e-mail address.
27360         * system.h (abort): Likewise.
27361
27362 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27363
27364         * Makefile.in (stmp-multilib-sub): Make the files extracted
27365         from $(LIBGCC1) writable.
27366
27367 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
27368
27369         * config/arm/aout.h: Reformat for improved readability.
27370
27371         * config/arm/arm.h: Reformat for improved readability.
27372         Replace uses of fprintf with asm_fprintf where appropriate.
27373         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
27374         function declaration assembler actions.
27375         (NUM_INTS): New macro: Convert from bytes to words.
27376         (NUM_REGS): New macro: Compute number of registers required to
27377         hold a quanitity of tyep MODE.
27378         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
27379         types.
27380         (NUM_ARG_REGS): New macro: The number of argument registers
27381         available.
27382         (ARG_REGISTER): New macro: Compute the register number of the Nth
27383         argument register.
27384         (LAST_ARG_REGNUM): New macro: The number of the last argument
27385         register.
27386         (SP_REGNUM): New macro: Register number of the stack pointer.
27387         (FP_REGNUM): New macro: Register number of the frame pointer.
27388         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
27389         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
27390         CUMULATIVE_ARGS so that it counts registers not bytes.
27391
27392         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
27393         TARGET_INTERWORK.
27394         Replace uses of fprintf with asm_fprintf where appropriate.
27395         (output_ascii_pseudo_op): Replace with version from thumb.c
27396
27397         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
27398
27399         * config/arm/elf.h (CPP_PREDEFINES): Replace with
27400         SUBTARGET_CPP_SPEC.
27401         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
27402         (ASM_FILE_START): Emit ASM_APP_OFF.
27403
27404 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
27405
27406         * pa.c (compute_frame_size): Round frame according to
27407         STACK_BOUNDARY rather than a hardwired value.
27408
27409         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
27410
27411         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
27412         of "1".
27413         * configure: Rebuilt.
27414
27415         * configure.in (hppa*-*-linux*): New configuration.
27416         * configure: Rebuilt.
27417         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
27418         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
27419         * pa/pa-linux.h: New file.
27420         * pa/t-linux: New file.
27421         * pa/xm-linux.h: New file.
27422
27423         * pa.c (hppa_legitimize_address): Change references from SImode to
27424         either Pmode or word_mode as appropriate.
27425         (emit_move_sequence, store_reg, load_reg): Likewise.
27426         (set_reg_plus_d, hppa_expand_prologue): Likewise.
27427         (output_mul_insn): Likewise.
27428         * pa.h (PROMOTE_MODE): Likewise.
27429         (INITIALZE_TRAMPOLINE): Likewise.
27430         (Pmode): Define to word_mode.
27431
27432         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
27433         value of 4.  Allocate 8 bytes for each FP register save.
27434         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
27435         value of 4.
27436         (hppa_expand_prologue): Likewise.
27437         * pa.h (PROMOTE_MODE): Likewise.
27438         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
27439         (FUNCTION_ARG_BOUNDARY): Likewise.
27440
27441         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
27442
27443         * pa.c (out_of_line_prologue_epilogue): Delete.
27444         (override_options): Remove -mspace related code.
27445         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
27446         (compute_frame_size): Only allocate space for register that
27447         actually need to be saved.
27448         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
27449         (TARGET_SWITCHES): Remove -mspace, -mno-space
27450         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
27451         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
27452         * pa/ee.asm, pa/ee_fp.asm: Delete.
27453
27454         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
27455
27456         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
27457         directive in column zero.
27458
27459 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
27460
27461         * m68k.c (output_function_prologue): Fix computation of save mask
27462         when generating PIC code.
27463
27464 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
27465
27466         * tree.c (build_type_attribute_variant): Move current_obstack restore
27467         after build_qualified_type call.
27468
27469 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
27470
27471         * configure.in: Use t-iris6, even with GNU LD.
27472         * config/mips/iris6gld.h: Fix typo in linker spec.
27473         * config/mips/t-iris6gld: Remove.
27474
27475 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
27476
27477         * rs6000.md (insv, extzv): Remove SImode dependence in named
27478         patterns.  Explicitly generate DImode RTL if PowerPC64 and
27479         operand is DImode.
27480         (insvdi): Reverse start and size in instruction template.
27481
27482 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
27483
27484         * invoke.texi: Typo fixes.
27485
27486 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
27487
27488         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
27489         handle at this time instead of silently generating incorrect code.
27490         (gen_imagpart): Likewise.
27491
27492         * reload.c (find_reloads): Emit a USE for a pseudo register without
27493         a hard register if we could not create an optional reload for the
27494         pseudo.
27495
27496 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27497
27498         * c-typeck.c (output_init_element, process_init_element):
27499         When advancing constructor_unfilled_fields for a RECORD_TYPE,
27500         check for nameless bit fields.
27501
27502 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
27503
27504         * regclass.c (scan_one_insn): Notice subregs that change the
27505         size of their operand.
27506         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
27507
27508 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
27509
27510         * configure.in (alpha*-*-*): Include alpha/t-ieee.
27511         * configure: Rebuilt.
27512         * alpha/t-ieee: New file.
27513
27514 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
27515
27516         * rs6000.c (find_addr_reg): Do not select r0 as an address
27517         register.
27518
27519 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
27520
27521         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
27522
27523 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
27524
27525         * rs6000.md (movsf): Do not force easy FP constants into memory.
27526
27527         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
27528         immed_double_const to ensure they are properly truncated then
27529         sign extended.
27530
27531 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
27532
27533         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
27534         always unless NO_DEBUG is used.  Compile this code
27535         unconditionally.
27536         (replace_symbols_in_block): Compile it unconditionally.
27537
27538 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
27539
27540         * configure.in (i?86-*-elf*): New target.
27541         * configure: Rebuilt.
27542         * i386/i386elf.h, i386/t-i386elf: New files.
27543
27544 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
27545
27546         * toplev.c (main): Don't complain about saying -gdwarf.
27547         (rest_of_compilation): Remove redundant code.
27548
27549 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
27550
27551         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
27552
27553 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
27554
27555         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
27556         "Li960R:", to avoid name clash.
27557
27558 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
27559
27560         * loop.c (check_dbra_loop): When reversing a loop, delete all
27561         REG_EQUAL notes referencing the reversed biv except those which are
27562         for a giv based on it.
27563
27564 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
27565
27566         * version.c: Drop "gcc-" prefix from version #.
27567
27568 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
27569
27570         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
27571         the label if we're being verbose.
27572
27573 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
27574
27575         * m68k.c (output_function_prologue): Add pic register to mask
27576         if live and flag_pic.
27577         (output_function_epilogue): Likewise.
27578
27579 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
27580
27581         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
27582         directives in column zero.
27583
27584         * pa/elf.h (ASM_FILE_START): Define.
27585         * pa/som.h (ASM_FILE_START): Include .level directives.
27586         * pa/hpux10.h (ASM_FILE_START): Delete.
27587         * pa/hpux11.h (ASM_FILE_START): Delete.
27588
27589         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
27590
27591 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27592
27593         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
27594         when reload_out equals reload_in.
27595
27596 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
27597
27598         * invoke.texi (Spec Files): New node: Describe the contents of
27599         spec files.
27600
27601 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
27602
27603         * invoke.texi (DEC Alpha Options): Put @end table at
27604         beginning of line, to avoid confusing texi2html.
27605
27606 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
27607
27608         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
27609         introduced in previous delta.
27610
27611 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
27612
27613         * reload1.c (gen_reload): When synthesizing a 3 operand add
27614         sequence, improve test for when to reload OP1 into the reload
27615         register instead of OP0.
27616
27617 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
27618
27619         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
27620
27621 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
27622
27623         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
27624         string literal.
27625
27626 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
27627
27628         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
27629         (va_dcl): Use __builtin_va_alist_t.
27630
27631 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
27632
27633         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
27634         on the permanent_obstack.
27635         * dwarfout.c (output_type): Likewise.
27636
27637 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
27638
27639         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
27640         Merged from c-typeck.c and cp/typeck.c.
27641         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
27642         Merged into c-common.
27643
27644 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
27645
27646         * c-lex.c (errorcount): Declare it.
27647         (finish_parse): Update errorcount when using CPPLIB.
27648
27649 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
27650
27651         * fixinc/inclhack.def(end_else_label): Double the backslash so
27652         sed gets a chance to see it.
27653         * fixinc/inclhack.sh: regen
27654         * fixinc/fixincl.x: regen
27655
27656 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
27657
27658         Add framework to support armv5 architecture when it becomes
27659         available:
27660
27661         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
27662         (arm_arch5): New variable.
27663         (all_architectures): Add armv5 line.
27664         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
27665         -march=armv5 is specified on the command line.
27666         (arm_arch5): Export this variable.
27667         * invoke.texi: Document new string accepted by -march= switch for
27668         ARM ports.
27669
27670         * config/arm/arm.h: Replace use of constant 12 as a register
27671         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
27672         * config/arm/arm.c: Replace use of constant 12 as a register
27673         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
27674
27675         * config/arm/elf.h: Tidy up.
27676         * config/arm/coff.h: Tidy up.
27677
27678 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
27679
27680         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
27681         * gcc/config/mips/t-iris6gld: New file.
27682         * gcc/config/mips/iris6gld.h: Likewise.
27683
27684 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
27685
27686         * c-decl.c (widest_integer_literal_type_node,
27687         widest_unsigned_literal_type) : New.
27688         (init_decl_processing): Handle/use the two new types.
27689         * c-common.c (type_for_size,type_for_mode) : Same.
27690         * c-lex.c (yylex) : Same.
27691         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
27692         Same.
27693         * c-tree.h (widest_integer_literal_type_node,
27694         widest_unsigned_literal_type) : New.
27695
27696 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
27697
27698         * dwarfout.c (field_byte_offset): Correctly compute the object's
27699         byte offset for the first bit of a field which crosses an alignment
27700         boundary on a !BYTES_BIG_ENDIAN target.
27701
27702 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
27703
27704         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
27705         ntohs.
27706
27707 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
27708                           Jeff Law <law@cygnus.com>
27709
27710         * ginclude/varargs.h (va_dcl): Use word_mode for type of
27711         __builtin_va_list.
27712
27713         * except.c: Include intl.h.
27714         (expand_eh_return): Set current_function_cannot_inline.
27715         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
27716         * function.h (struct function): Add eh_return_stub_label.
27717         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
27718         * Makefile.in (except.o): Depend on intl.h.
27719
27720 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
27721
27722         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
27723         same as offsettable in cases 1 and 2.
27724
27725 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
27726
27727         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
27728         (extlh, extwh): Likewise.
27729
27730 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
27731
27732         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
27733
27734 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
27735
27736         * configure.in: Add arm-pe and thumb-pe targets.
27737         * configure: Regenerate.
27738
27739         * thumb.c (arm_naked_function_p): New function: Determines if
27740         a function is naked (has no gcc generated prologue/epilogue).
27741         (is_called_in_ARM_mode): Return true if the func has the
27742         interfacearm attribute.
27743         (output_return): Do not generate a return for naked functions.
27744         (thumb_function_prologue): Do not generate a prologue for
27745         naked functions.
27746         (thumb_expand_prologue): Do not generate a prologue for naked
27747         functions.
27748         (thumb_expand_epilogue): Do not generate an epilogue for naked
27749         functions.
27750         (arm_valid_machine_decl_attribute): New function, copied from
27751         arm.c:  Permit naked and interfacearm attributes.
27752
27753         * config/arm/pe.c: New file: Support code for arm-pe target.
27754         * config/arm/pe.h: New file: Header file for arm-pe target.
27755         * config/arm/tpe.h: New file: Header file for thumb-pe target.
27756         * config/arm/t-thumb-pe: New file: Makefile fragment for
27757         thumb-pe target.
27758
27759 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
27760
27761         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
27762         -fPIC or -fpic is specified.
27763
27764 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
27765
27766         * expr.c (emit_block_move): Use copy_to_mode_reg for
27767         !TARGET_MEM_FUNCTIONS case too.
27768
27769         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
27770         appropriate.
27771         * configure: Rebuilt.
27772         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
27773         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
27774         definitions made redundant by dbxelf.h inclusion.  Delete
27775         lots of definitions related to assembly output that are
27776         specific to the SOM object format.
27777         * pa.c (output_function_prologue): Do not emit the function's
27778         name for OBJ_ELF.
27779         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
27780         * pa-pro.h: Deleted.
27781         * som.h: New file with SOM specific definitions.
27782         * elf.h: New file with ELF specific definitions.
27783
27784         * elfos.h (const_section): Output a tab before assembler directives.
27785         (ctors_section, dtors_section): Likewise.
27786         (ASM_OUTPUT_SECTION_NAME): Likewise.
27787
27788         * pa/pa1.h: Delete unused file.
27789
27790 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
27791
27792         * configure.in (hppa*-hp-hpux11*): New configuration.
27793         * configure: Rebuilt.
27794         * pa/pa-hpux11.h: New file.
27795         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
27796         command line.
27797
27798         * mips.md (leasi, leadi): New patterns.
27799
27800         * expr.c (emit_block_move): Properly handle case where one of the
27801         block move arguments has a queued increment or decrement.
27802         (clear_storage): Similarly.  Fix formatting goof.
27803
27804 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
27805
27806         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
27807         semicolon from the BSD VA_LIST replacement expression.
27808
27809         * fixinc/inclhack.sh: regen
27810         * fixinc/fixincl.x: regen
27811
27812         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
27813         now use the fixincl program.
27814
27815 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
27816
27817         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
27818         case.  Also make the PIC register call_used.
27819
27820         * m68k.h (FINALIZE_PIC): Delete.
27821         * m68k.c (finalize_pic): Delete.
27822
27823 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
27824
27825         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
27826         to memory.
27827
27828 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
27829
27830         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
27831
27832 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
27833
27834         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
27835
27836 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
27837
27838         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
27839
27840 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
27841
27842         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
27843
27844 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
27845
27846         * rs6000.c (output_toc): Always use hex values for floating-point
27847         constants.  Store single-precision values in upper-half of TOC
27848         entry in 64-bit mode.
27849         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
27850         to final constraints.
27851         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
27852         (fctiwz): Improve accuracy of RTL for pattern.
27853
27854 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
27855
27856         * expr.c (expand_expr): Allow RTL_EXPR's through the
27857         MAX_INTEGER_COMPUTATION_MODE checks.
27858
27859 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
27860
27861         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
27862         such that MASK_SUPPORT_ARCH is not negative.
27863
27864 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
27865
27866         * loop.c (verify_dominator): Properly handle ADDR_VEC and
27867         ADDR_DIFF_VEC insns that appear inside loops.
27868
27869 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
27870                           Jeff Law <law@cygnus.com>
27871
27872         * rs6000.md (movdf_hardfloat32): Revert previous patch.
27873         Handle LO_SUM the same as offsettable in cases 1 and 2.
27874         * rs6000.c (find_addr_reg): Revert previous patch.
27875
27876 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
27877
27878         * system.h (strstr): New external function declaration.
27879         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
27880         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
27881         * config.in, configure: Rebuilt.
27882
27883 1999-06-24  Tom Tromey  <tromey@cygnus.com>
27884
27885         * gcc.c (main): Read user-specified specs files after computing
27886         additional startfile_prefixes.
27887
27888 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
27889
27890         Revert these two patches:
27891
27892         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27893         * loop.c (strength_reduce): When doing biv->giv conversion, update
27894         reg note of NEXT->insn.
27895
27896         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27897         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
27898         reg_biv_class.
27899         (recombine_givs): Set ix field after sorting.
27900
27901 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27902
27903         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
27904         for the parts of an UNSPEC / UNSPEC_VOLATILE.
27905
27906 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
27907
27908         *fixinc/inclhack.def:  Add fix development commentary
27909         (read_ret_type): reactivate and add selection clause
27910         (zzz_*): tweak output file name to match what is used in hackshell.tpl
27911         *fixinc/{fixincl.x|inclhack.sh}: regen
27912
27913 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
27914
27915         * expr.c (expand_expr): STRIP_NOPS before checking against
27916         MAX_INTEGER_COMPUTATION_MODE
27917         (check_max_integer_computation_mode): Likewise.
27918
27919 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
27920
27921         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
27922
27923 1999-06-22  Jim Wilson  <wilson@cygnus.com>
27924
27925         * expr.c (store_expr): When target is a promoted subreg, return a
27926         promoted subreg as a result.
27927
27928 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
27929
27930         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
27931         coding standards.
27932         (dwarf2out_define): Mark unused parameters appropriately.
27933         (gen_unspecified_parameters_die): Ditto.
27934         (gen_subprogram_die): Fix signed/unsigned warnings.
27935         (gen_variable_die): Ditto.
27936
27937 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
27938
27939         * fixinc/inclhack.def(end_else_label): combined else_label
27940         and endif_label and fixed the sed expression.
27941         *fixinc/{fixincl.x|inclhack.sh}: regen
27942
27943 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
27944
27945         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
27946         'x' when handling non-offsettable addresses
27947
27948 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
27949
27950         * final.c (shorten_branches): Don't try to split an insn that has
27951         been deleted.
27952
27953 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
27954
27955         * config/mips/mips.c (symbolic_expression_p): New function.
27956         (mips_select_rtx_section): Put symbolic expressions in the
27957         data section, not the read-only data section.
27958
27959 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
27960
27961         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
27962
27963 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
27964
27965         * collect2.c (main): Log frame table count.
27966         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
27967         (scan_prog_file) [COFF]: Handle frame tables.
27968
27969         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
27970         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
27971         * alpha/elf.h: Undef them again.
27972         * alpha/vms.h: Remove their definitions.
27973
27974 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27975
27976         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
27977         remove the clobber of r0 and change the REG_UNUSED note to
27978         REG_INC.
27979
27980 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
27981
27982         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
27983         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
27984         fits in HOST_WIDE_INT and one uses union to access a long constant
27985         as double.
27986
27987 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
27988
27989         * sparc.c (sparc_override_options): Don't allow profiling for
27990         code models other than medlow.
27991         (sparc_function_profiler): New function from old FUNCTION_PROFILER
27992         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
27993         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
27994         (sparc_block_profiler): Likewise.
27995         (sparc_function_block_profiler_exit): Likewise.
27996         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
27997         (FUNCTION_BLOCK_PROFILER): Likewise.
27998         (BLOCK_PROFILER): Likewise.
27999         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
28000         (MCOUNT_FUNCTION): New.
28001         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
28002         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
28003         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
28004         (MCOUNT_FUNCTION): New.
28005         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
28006         (BLOCK_PROFILER): Delete.
28007         (MCOUNT_FUNCTION): New.
28008
28009 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
28010
28011         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
28012
28013 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
28014
28015         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
28016         Add the macros.
28017
28018         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
28019         Ditto.
28020
28021         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
28022         Ditto.
28023
28024         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
28025         Ditto.
28026
28027 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
28028
28029         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
28030         types.
28031
28032 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
28033
28034         * i386/djgpp.h (LIB_SPEC): New.
28035         (STARTFILE_SPEC): New.
28036
28037         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
28038
28039 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
28040
28041         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
28042         compiler flags.
28043
28044         * system.h (WSTOPSIG): New macro.
28045
28046 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
28047
28048         * c-pragma.c (push_alignment): Don't ignore alignments greater than
28049         4 bytes.
28050         (insert_pack_attributes): Take into account member natural
28051         alignment.
28052
28053         * i386/winnt.c (exports_head): New static variable.
28054         (i386_pe_record_exported_symbol): New function.
28055         (i386_pe_asm_file_end): Use.
28056         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
28057         symbols to be emitted at end of assembly.
28058         (ASM_DECLARE_OBJECT_NAME): Likewise.
28059         (ASM_DECLARE_FUNCTION_NAME): Likewise.
28060
28061         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
28062         -iwithprefix.
28063
28064 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
28065
28066         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
28067         in last change.
28068
28069 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
28070
28071         * haifa-sched.c (sched_analyze_1): Use free_list instead of
28072         zapping reg_last_uses directly.
28073         (sched_analyze_2, sched_analyze_insn): Likewise.
28074         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
28075
28076 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
28077
28078         * rs6000.md (movdf_hardfloat32): Use worst case insn length
28079         attributes for cases 1 and 2.
28080
28081 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
28082
28083         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
28084         instead of set.
28085
28086 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
28087
28088         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
28089
28090 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
28091
28092         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
28093         PIC_OFFSET_TABLE_REGNUM for general alloaction.
28094         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
28095         must be stacked if it is used for PIC accesses.
28096         * arm.c (use_return_insn): Handle PIC register specially.
28097         (output_return_instruction): Likewise.
28098         (output_func_{prologue,epilogue}): Likewise.
28099         (output_expand_prologue): Likewise.
28100
28101         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
28102         (*strsi_predec): Renamed from *strqi_predec.
28103         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
28104         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
28105
28106         * arm.c (arm_override_options): Remove warning about PIC code
28107         not being supported.
28108
28109 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
28110
28111         * rs6000.c (find_addr_reg): New function.
28112         * rs6000.h (find_addr_reg): Declare.
28113         (offsettable_addr_operand): Delete.
28114         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
28115         from and stores to GPRs.
28116
28117 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
28118
28119         * alpha.c (alpha_expand_block_move): Use get_insns rather than
28120         gen_sequence as argument to emit_no_conflict_block.
28121
28122 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
28123
28124         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
28125         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
28126         *fixinc/fixincl.x: regen
28127         *fixinc/inclhack.sh: regen
28128
28129 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
28130
28131         * added support for -mpcrel (PC relative addressing for m68k)
28132         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
28133         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
28134         * m68k.c (print_operand_address): Handle 32-bit PIC case.
28135         (comments for general_src_operand): Add some explanation
28136         about EXTRA_CONSTRAINTS.
28137         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
28138         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
28139         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
28140         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
28141         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
28142         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
28143         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
28144         if not already set.
28145         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
28146         * m68k.h (TARGET_PCREL): New target flag.
28147         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
28148         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
28149         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
28150         contains a SYMBOL_REF.  Relax this constraint during reload, since
28151         we want to use the predicates, not reload's built-in concept of a
28152         valid memory address, to control what insns need reloading.
28153         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
28154         operands (essentially 'g', 'm', and 's' under normal circumstances).
28155         * m68k.c (print_operand): Cause printing of pc-relative addresses
28156         to include pc register.
28157         (print_operand_address): Ditto.
28158         (general_src_operand): Accept operands that are not only
28159         general_operands, but are also valid when used as a pc-relative
28160         source.
28161         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
28162         (memory_src_operand): Similar, for memory_operands.
28163         (pcrel_address): New predicate to accept the special case of a
28164         pc-relative address.
28165         * m68k.md (many patterns): Rewrite common SImode, HImode, and
28166         QImode insns to accept *_src_operand instead of *_operand where
28167         pc-relative operands can fit.  For example, a pc-relative operand
28168         can be used as a memory source operand for addsi3, but not as a
28169         memory destination.
28170         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
28171
28172 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
28173
28174         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
28175         .thumb_set pseudo op to mark aliases of thumb functions.
28176
28177 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
28178
28179         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
28180         preference to ASM_OUTPUT_DEF, if it is defined.
28181
28182         * tm.texi: Document new, optional target macro
28183         ASM_OUTPUT_DEF_FROM_DECLS.
28184
28185 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
28186
28187         * fixincludes: ISCNTL patch
28188         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
28189         (dgux_int_varargs): new for DG/UX
28190         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
28191
28192 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
28193
28194         * invoke.texi (ia32 options): Fix typo.
28195
28196 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28197
28198         * loop.c (strength_reduce): When doing biv->giv conversion, update
28199         reg note of NEXT->insn.
28200
28201 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
28202
28203         * loop.c (move_movables): Note issues with replacing REGs with
28204         SUBREGs.
28205         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
28206
28207 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
28208
28209         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
28210
28211         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
28212         the reference to `mcount' was not correct for the ELF on FreeBSD.
28213
28214 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28215
28216         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
28217         reg_biv_class.
28218
28219         (recombine_givs): Set ix field after sorting.
28220
28221 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
28222
28223         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
28224         to safe to extract a subword out of a REG.
28225
28226 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28227
28228         * sh.md (mulsi3): Don't add a no-op move at the end.
28229
28230 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28231
28232         * cse.c (cse_insn): Don't put hard register source into tables for
28233         the last insn of a libcall.
28234
28235 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28236
28237         * loop.c (strength_reduce): Insert sets of derived givs at every
28238         biv increment, even if it's the only one.
28239
28240 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
28241
28242         * dwarfout.c (add_incomplete_type): New fn.
28243         (output_type): Call it.
28244         (retry_incomplete_types): New fn.
28245         (dwarfout_finish): Call it.
28246
28247         From Eric Raskin <ehr@listworks.com>:
28248         (output_type): Output types for bases.
28249
28250 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
28251
28252         * mips.c (mips_output_conditional_branch): Add `break'
28253         between `default' label and `close braces'.
28254
28255 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
28256
28257         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
28258         specifications and make it realistic.
28259         (LIB_SPEC): Likewise.
28260
28261 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
28262
28263         * config/mips/mips.c (mips_secondary_reload_class): Check for
28264         (PLUS (SP) (REG)) and return appropriate register class.
28265         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
28266         Handle (PLUS (SP) (REG)).
28267         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
28268         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
28269         of emit_insn for tablejump.
28270
28271 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
28272
28273         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
28274         asm_fprintf format string by itself.
28275         (output_function_profiler): Likewise.
28276
28277 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
28278
28279         * combine.c (simplify_logical, case AND): Only call
28280         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
28281         or the constant is positive.
28282
28283 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
28284
28285         * configure.in: Fix typo in rs6000-ibm-aix4 case.
28286         * configure: Regenerate.
28287
28288 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
28289
28290         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
28291         require a sub-version #.
28292         * configure: Rebuilt.
28293
28294 1999-06-14  Robert Lipe  (robertlipe@usa.net)
28295
28296         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
28297
28298 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
28299
28300         * c-typeck.c (process_init_element): Detect excess elements in
28301         char array initializer.
28302
28303 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
28304
28305         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
28306
28307 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
28308
28309         * invoke.texi (Option Summary): Add -fpermissive flag.
28310
28311 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
28312
28313         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
28314         that require PIC code sequences.
28315
28316 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
28317
28318         * configure.in: Add new target: thumb-elf.
28319         * configure: Regenerate.
28320         * config/arm/t-thumb-elf: New file: Makefile fragment for
28321         thumb-elf build.
28322         * config/arm/telf.h: New file: Header file for thumb-elf
28323         build.
28324
28325 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
28326
28327         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
28328         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
28329         initializers is some circumstances.
28330
28331         * fixinc/inclhack.def (endif_label): Add additional selector for
28332         more bogus stuff after #endif statements.
28333         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
28334
28335 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
28336
28337         * i386/cygwin.h (SET_ASM_OP): Define.
28338
28339 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
28340
28341         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
28342
28343 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28344
28345         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
28346         latter.
28347
28348         * sh.md (ic_invalidate_line_i): Remove second alternative.
28349
28350 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
28351
28352         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
28353         test for the presence of valid prototypes.  Delete bypass expr.
28354         (ioctl_fix_ctrl): Correct the selection expression.
28355         (no_double_slash): Correct quoting rules
28356         *fixinc/fixincl.x: regen
28357         *fixinc/inclhack.sh: regen
28358
28359 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
28360
28361         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
28362
28363 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
28364
28365         * rs6000.md (movsi_got_internal_mem): Delete.
28366         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
28367         (GOT_TOC_REGNUM): Delete.
28368         (PIC_OFFSET_TABLE_REGNUM): Define.
28369         (FINALIZE_PIC): Disable.
28370         * rs6000.c (rs6000_got_register): New code for fixed pic register.
28371         (rs6000_replace_regno): Delete.
28372         (rs6000_finalize_pic): Likewise.
28373         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
28374
28375 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28376
28377         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
28378         is a note; use <= for the compare; advance P while it is
28379         a NOTE.
28380
28381 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
28382
28383         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
28384         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
28385
28386         * varasm.c (remove_from_pending_weak_list): Verify t->name
28387         is non-NULL before passing it to strcmp.
28388
28389 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
28390
28391         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
28392         the typed arguments are not part of a comment
28393         (ioctl_fix_ctrl): Added a purpose comment
28394         *fixinc/fixincl.x: regenerate
28395         *fixinc/inclhack.sh: regenerate
28396
28397 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
28398
28399         * invoke.texi: Add C4x invocation docs.
28400
28401 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
28402
28403         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
28404         Define new macros.
28405         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
28406         TARGET_EXPOSE_LDP.
28407         (c4x_legitimize_reload_address): New function.
28408         * config/c4x/c4x.md: Update docs.
28409
28410 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
28411
28412         * fixincludes: Avoid removing '.'.
28413         * fixinc/fixinc.svr4: Likewise.
28414         * fixinc/fixinc.winnt: Likewise.
28415         * fixinc/inclhack.tpl: Likewise.
28416         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
28417
28418 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
28419
28420         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
28421         pattern.
28422         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
28423
28424 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
28425
28426         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
28427         correctly.
28428
28429 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
28430
28431         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
28432         * configure: Regenerate.
28433
28434 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
28435
28436         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
28437         values.
28438
28439 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
28440
28441         * fixinc/inclhack.def (avoid_bool): Also catch
28442         "typedef [unsigned] int bool".
28443         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
28444
28445         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
28446         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
28447         * configure: Rebuilt.
28448
28449 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
28450
28451         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
28452         such that we can override its definitions if necessary.
28453         (CPP_SPEC): New define.  Support processor specific predefines via
28454         %(cpp_cpu).
28455         (CC1_SPEC): New define.  Support processor specific compiler
28456         options via %(cc1_cpu).
28457         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
28458         -static.
28459
28460 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
28461
28462         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
28463         between sed's -e flag, and the open-quote following it.
28464         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
28465
28466 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
28467                           Jeffrey A Law  (law@cygnus.com)
28468
28469         * varasm.c (assemble_start_function): Remove the function
28470         from the pending weak decls list when we define a function.
28471         (assemble_variable): Similarly for variables.
28472         (weak_finish): Ignore items on the list with a NULL name.
28473         (remove_from_ending_weak_list); New function to "remove" an item
28474         from the pending weak declarations list.
28475
28476 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
28477
28478         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
28479
28480 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
28481
28482         * c-lex.c (GETC): Redefine to call getch.
28483         (UNGETC): Redefine to call put_back.
28484         (putback_buffer): New structure type.
28485         (putback): New static structure.
28486         (getch): New function.
28487         (put_back): New function.
28488         (yylex): Replace unused bytes from bad multibyte character.
28489
28490 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
28491
28492         * cpplib.c (do_define): Cast `alloca' return value.
28493         (do_include, do_undef, do_pragma): Likewise.
28494         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
28495         values.
28496         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
28497         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
28498
28499 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
28500
28501         * sparc.md (abstf2): This should be an expand.
28502         (split after abstf2_notv9): Fix mode.
28503         (abstf2_hq_v9): New pattern.
28504         (abstf2_v9): Only use when no hard quad.
28505         (absdf2_v9): Fix if target is not the same as source.
28506         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
28507         Add correct output constraints.
28508
28509 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
28510
28511         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
28512         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
28513
28514 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
28515
28516         * mips.h (mips_output_conditional_branch): New function.
28517         (mips_adjust_insn_length): Likewise.
28518         (ASSEMBLER_SCRATCH_REGNUM): New macro.
28519         (ADJUST_INSN_LENGTH): Likewise.
28520         * mips.c (print_operand): Add `F' and `W' for floating-point
28521         comparison opcodes.
28522         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
28523         are now in bytes.
28524         (mips_adjust_insn_length): New function.
28525         (mips_output_conditional_branch): New function.
28526         * mips.md (length): Adjust attribute definition to handle
28527         conditional branches.  Change lengths to bytes, rather than
28528         instructions throughout.  Remove length attribute from
28529         instructions whose length is four bytes, and rely on the default
28530         instead.
28531         (dslot): Fix typo in comment.
28532         Reword conditional branch patterns to use
28533         mips_output_conditional_branch.
28534
28535 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
28536
28537         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
28538         (LIB_SPEC): Likewise.
28539         Link with -lprof1_r for -g/-pg.
28540
28541 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
28542
28543         * loop.c (check_dbra_loop): Fix change of Jan 19.
28544
28545 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
28546
28547         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
28548         (STARTFILE_SPEC):  Define, override the svr4.h version.
28549         (ENDFILE_SPEC):  Likewise.
28550
28551 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
28552
28553         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
28554         * fixinc/fixincl.x: Regenerated.
28555         * fixinc/inclhack.sh: Regenerated.
28556
28557 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28558
28559         * sh.c (barrier_align): Don't return early for normal branch/barrier
28560         when optimizing for SH2.
28561
28562 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
28563
28564         * i386/udk.h (LINK_SPEC): Correct linker search path for
28565         system libraries.
28566
28567 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28568
28569         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
28570         (braf_label_ref_operand): Delete.
28571         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
28572         * sh.md (casesi_jump_2): Operand1 is now the inside of a
28573         label_ref, and has no predicate.
28574         The patten has a predicate to guard against invalid substitutions.
28575         (dummy_jump): Delete.
28576         (casesi): Update use of casesi_jump_2.
28577
28578 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
28579
28580         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
28581         *fixinc/fixincl.x: regenerate
28582         *fixinc/inclhack.sh: regenerate
28583
28584 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
28585
28586         * dwarf2out.c (add_incomplete_type): New fn.
28587         (gen_struct_or_union_type_die): Call it.
28588         (retry_incomplete_types): New fn.
28589         (dwarf2out_finish): Call it.
28590
28591 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
28592
28593         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
28594         current block starts with a CODE_LABEL and ends with a CALL and
28595         we can not find all the argument setup instructions for the CALL.
28596
28597 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
28598
28599         Revert this change:
28600         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
28601         something is a candidate for optimize_bit_field_compare.
28602
28603 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28604
28605         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
28606
28607 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
28608
28609         * alpha.c (override_options): Thinko in last patch.
28610
28611         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
28612         (LIB_SPEC): Recognize -pthread.
28613
28614 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
28615
28616         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
28617         definition in config/arm/coff.h
28618         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
28619
28620 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
28621
28622         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
28623         fixes that need "file=xxx\n" prepended before invocation
28624         (start_fixer - new): starting the fixer process is complex enough
28625         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
28626         (process): uses the new routine; omit usage of putenv()
28627         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
28628         * fixinc/fixincl.x: regenerate
28629
28630 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
28631
28632         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
28633         and version #s (1.1 -> 2.96) as needed.
28634         * README.g77: Kill way out of date file in the toplevel directory.
28635
28636 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
28637
28638         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
28639         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
28640         * configure: Rebuilt.
28641         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
28642         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
28643         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
28644         (SWITCH_TAKES_ARG): Likewise.
28645         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
28646         * config/t-freebsd: Moved from config/i386/ so it can used for all
28647         FreeBSD targets.
28648
28649 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
28650
28651         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
28652
28653 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
28654
28655         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
28656         * configure: Rebuilt.
28657
28658 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
28659
28660         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
28661         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
28662         * rs6000/rs6000.c (rs6000_file_start): Use putc.
28663         (rs6000_output_load_toc_table): Same.
28664         (output_prolog, output_mi_thunk): Same.
28665         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
28666         (ASM_GLOBALIZE_LABEL): Use putc.
28667
28668 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
28669
28670         * alpha.md (reload_*_help): New patterns and splitters.
28671         (reload_*): Use them.
28672         (mov[qh]i): Likewise.
28673
28674 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
28675
28676         * cccp.c (handle_directive): Handle backslash-newlines in quoted
28677         strings correctly.
28678
28679 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
28680
28681         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
28682
28683 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
28684
28685         * flow.c (mark_regs_live_at_end, insn_dead_p,
28686         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
28687         and HARD_FRAME_POINTER_REGNUM special treatment if reload
28688         hasn't run or the frame pointer is needed.
28689         * haifa-sched.c (attach_deaths): Likewise.
28690         * sched.c (attach_deaths): Likewise.
28691
28692 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
28693
28694         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
28695         calculate_can_reach_end returns nonzero.
28696
28697         * configure.in (native gas tests): Search for an assembler in the
28698         same manner that the installed compiler will.
28699         * configure: Rebuilt.
28700         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
28701
28702         * alias.c (find_base_term): Improve handling of addresses
28703         constructed from binary operations.
28704
28705 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
28706
28707         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
28708
28709 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
28710
28711         * function.h (cleanup_label, frame_offset): Declare.
28712         (tail_recursion_label, tail_recursion_reentry): Likewise.
28713         (arg_pointer_save_area, rtl_expr_chain): Likewise.
28714         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
28715         (tail_recursion_label, tail_recursion_reentry): Likewise.
28716         (arg_pointer_save_area, rtl_expr_chain): Likewise.
28717
28718 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
28719
28720         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
28721         defined.
28722         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
28723         (MAX_OFILE_ALIGNMENT): Define.
28724
28725 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
28726
28727         * fixincl.c: Replace local include scheme with #includes of
28728         gansidecl.h and system.h.
28729         * procopen.c:  Likewise.
28730         * server.c:  Likewise.
28731
28732 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
28733
28734         * i386/t-dgux (EXTRA_PARTS): Add crti.o
28735         (crti.o): Add build rule and dependencies.
28736         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
28737
28738 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
28739
28740         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
28741         (LIB_LINUX_SPEC): Likewise.
28742         (LIB_LINUX_SPEC): Add support for -pthread
28743         (CPP_OS_LINUX_SPEC): Likewise.
28744         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
28745         specified.
28746
28747 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
28748
28749         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
28750         conditional move.
28751         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
28752         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
28753         for IEEE math and CC_FCOMI.
28754         (put_jump_code): No IEEE if CC_FCOMI is set.
28755
28756 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
28757
28758         * fold-const.c (fold_truthop): Make the field reference unsigned
28759         when converting a single bit compare.
28760
28761 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28762
28763         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
28764
28765 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
28766
28767         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
28768         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
28769         version did.
28770
28771         * reload.c (push_reload): Do not call remove_address_replacements
28772         when presented with identical optional reloads.
28773
28774 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
28775
28776         * alpha.h (MASK_FIX, TARGET_FIX): New.
28777         (MASK_*): Reorganize constants.
28778         (CPP_AM_FIX_SPEC): New.
28779         (TARGET_SWITCHES): Add FIX.
28780         (EXTRA_SPECS): Likewise.
28781         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
28782         (SECONDARY_MEMORY_NEEDED): Likewise.
28783         (REGISTER_MOVE_COST): Likewise.
28784         * alpha.c (override_options): Add FIX support.  Always use
28785         ALPHA_TP_PROG for ev6.
28786         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
28787         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
28788         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
28789
28790 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
28791
28792         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
28793         something is a candidate for optimize_bit_field_compare.
28794
28795 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
28796
28797         * gcc.texi (Passes): Document branch-shortening.
28798         * invoke.texi (Debugging Options): Document the fact that `-dp'
28799         outputs length information for instructions.
28800
28801 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
28802
28803         * flow.c: Revert previous delta.
28804
28805 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
28806
28807         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
28808         FRAME_POINTER_REGNUM.
28809         (mark_set_1): Ditto.
28810         (mark_used_regs): Ditto.
28811
28812 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
28813
28814         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
28815         (GOT_PCREL): New macro.  Define to 1 if not already defined.
28816         * arm/elf.h (GOT_PCREL): Define to 0.
28817         * arm.c (arm_finalize_pic): Take into account the setting of
28818         GOT_PCREL.
28819
28820 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
28821
28822         * output.h (STRIP_NAME_ENCODING): Provide default definition.
28823         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
28824
28825         * flow.c (mark_set_1): Do not record BLKmode stores as dead
28826         store elimination candidates.
28827
28828 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
28829
28830         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
28831         TARGET_GAS.
28832
28833 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
28834
28835         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
28836         Add use of x-aix41-gld.
28837
28838 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
28839
28840         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
28841         (ASM_OUTPUT_DESTRUCTOR): Define.
28842
28843 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
28844
28845         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
28846         last CODE_LABEL in a loop if we have previously passed a jump
28847         to the top of the loop.
28848
28849 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
28850
28851         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
28852         applying Philip's patch.
28853
28854 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
28855
28856         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
28857         are not VAR_DECLs.
28858
28859 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
28860
28861         * loop.c (strength_reduce): Grow reg_single_usage as needed.
28862
28863 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
28864
28865         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
28866         Also remove a useless comment.
28867
28868 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
28869
28870         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
28871
28872 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
28873
28874         * collect2.c (main): Only generate import or export file and add
28875         to link arguments if non-empty.  Use xmalloc not alloca.
28876         (write_{export,import}_file): Delete.
28877         (write_aix_file): New function.
28878         (locatelib): Use xmalloc not malloc.
28879         (GCC_OK_SYMBOL): Do not check type if aix64.
28880
28881 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
28882
28883         Based on patch by Scott Bambrough and Pat Beirne:
28884         * config/arm/arm.c (making_const_table): New variable.
28885         * config/arm/arm.h (making_const_table): Declare.
28886         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
28887         appropriate.
28888         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
28889         Keep track of when we are building the constant table.
28890
28891 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
28892
28893         * config/arm/arm.c (arm_override_options): Fix erroneous warning
28894         message.
28895
28896 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
28897
28898         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
28899         defined.
28900
28901 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
28902
28903         * tm.texi (FUNCTION_ARG): Correct description of a stack element
28904         in a PARALLEL.
28905
28906 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
28907
28908         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
28909
28910 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
28911
28912         * rs6000.c (output_mi_thunk): Enable full support again.
28913
28914 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
28915
28916         * sh.h (BRANCH_COST): Define.
28917
28918 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
28919
28920         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
28921
28922 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
28923
28924         * function.c (assign_stack_local): Align stack slot propertly.
28925         (assign_outer_stack_local): Likewise.
28926
28927 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
28928
28929         * expr.h (lang_expand_constant): Declare.
28930         * toplev.c (lang_expand_constant): Define it.
28931         * varasm.c (output_constant): Use it.
28932
28933 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
28934
28935         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
28936         Change function definitions to K&R style.
28937
28938 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
28939
28940         * fixinc/fixincl.c: We must not ignore SIGCLD now.
28941
28942 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
28943
28944         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
28945         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
28946         (several places): omit static initialization
28947         (process): use single fd, since only the read fd is used
28948         * fixinc/gnu-regex.c: define 'const' away, if not supported
28949         * fixinc/procopen.c(several places): omit static initialization
28950         * fixinc/server.c: define 'volitile' away, if not supported
28951
28952 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
28953
28954         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
28955         asm_fprintf and %L to generate the label name.
28956         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
28957         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
28958
28959 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
28960
28961         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
28962         insn for a conditional jump can not be found.
28963
28964 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
28965
28966         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
28967         on variables in specific sections other than .sbss and .sdata.
28968
28969 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
28970
28971         * stmt.c (expand_return): Call start_cleanup_deferral and
28972         end_cleanup_deferral around conditional code.
28973
28974 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
28975
28976         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
28977         filename lists.  Utilizes new "krstr" AutoGen function.
28978         * fixinc/fixincl.x: Rebuilt.
28979
28980 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
28981
28982         * i386.c (output_float_compare): Avoid GNU-C extensions.
28983
28984 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
28985
28986         * version.c: Bump to distinguish mainline tree from the
28987         gcc-2.95 branch.
28988
28989 See ChangeLog.1 for earlier changes.