OSDN Git Service

* ifcvt.c (noce_emit_cmove): Conditionally compile call to
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-05-01  Richard Henderson  <rth@cygnus.com>
2
3         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
4         emit_conditional_move.
5
6 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
7
8         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
9         as the dynamic linker.
10
11 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
12
13         * cppfiles.c (open_include_file): Open file in blocking mode.
14         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
15         Only exclude block devices and directories.
16
17         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
18         static.  Allocate the hashnode and its string in the same
19         block of memory.
20         (del_HASHNODE): Don't free h->name.
21         (_cpp_lookup): If there is no entry for this string, create
22         one, of type T_VOID.
23         (_cpp_lookup_slot): Delete.
24         * cpphash.h: Update prototypes.
25
26         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
27         not hp == NULL.
28         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
29         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
30         node here, just fill in the value field properly.  "Delete"
31         entries by setting the value field to T_VOID.  Check for
32         hp->type == T_VOID, not hp == NULL.
33
34         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
35         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
36         hashtab.h.
37
38 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
39
40         * config/mn10300/mn10300.c (print_operand_address): Do not add
41         zero to SP.
42
43         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
44         adjusted by less than 256 bytes, use ret regardless of having any
45         callee-saved register to restore.
46
47 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
48
49         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
50
51 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
52
53         * config/i386/djgpp.h (INT_ASM_OP): Define.
54         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
55         (ASM_WEAKEN_LABEL): Define.
56         (MASK_BNU210): Define.
57         (SUBTARGET_SWITCHES): Define.
58         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
59         (MAKE_DECL_ONE_ONLY): Define.
60         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
61
62 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
63
64         * i386/cygwin.h (INT_ASM_OP): Define.
65
66 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
67
68         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
69         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
70
71 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
72
73         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
74         __tmp_reg__ and __zero_reg__ initialization.
75
76 2000-04-30  Richard Henderson  <rth@cygnus.com>
77
78         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
79
80         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
81         referenced bewteen the condition and the jump.  Don't delete
82         anything but the jump.
83
84 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
85
86         * bb-reorder.c (scope_def): New struct.
87         (scope_forest_info): New struct.
88         (struct reorder_block_def): New member "scope".
89         (REORDER_BLOCK_SCOPE): New macro.
90         (relate_bbs_with_scopes): New function and prototype.
91         (make_new_scope): Likewise.
92         (build_scope_forest): Likewise.
93         (remove_scope_notes): Likewise.
94         (insert_intra_1): Likewise.
95         (insert_intra_bb_scope_notes): Likewise.
96         (insert_inter_bb_scope_notes): Likewise.
97         (rebuild_scope_notes): Likewise.
98         (free_scope_forest_1): Likewise.
99         (free_scope_forest): Likewise.
100         (dump_scope_forest): Likewise.
101         (dump_scope_forest_1): Likewise.
102         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
103         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
104         block.
105         (reorder_basic_blocks): Added calls to build_scope_scope_forest
106         and remove_scope_notes before reordering is done. Added calls to
107         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
108         after reordering is done.
109
110 2000-40-30  Bruce Korb  <bkorb@gnu.org>
111
112         * fixinc/inclhack.def:  Added definitions needed by OSR5,
113         removed two stale entries (defined away with OLD_CPP).
114         * fixinc/inclhack.sh: regen
115         * fixinc/fixincl.x: regen
116
117 2000-04-30  Richard Henderson  <rth@cygnus.com>
118
119         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
120         from the last insn in the sequence.
121
122 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
123
124         * cpplex.c (cpp_idcmp): New function.
125         * cpplib.h: Prototype it.
126         * scan_decls.c (scan_decls): Use it to inspect token names.
127         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
128         the file being run through the preprocessor.
129         (check_macro_names): Provide length of token to cpp_defined.
130
131         * Makefile.in: Remove stale warning message.
132
133         * cppfiles.c (redundant_include_p): Provide length of token to
134         cpp_defined.
135         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
136         values are unsigned int.
137         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
138         (_cpp_lookup_slot): Do not calculate the hash, either.
139         * cpphash.h: Update prototypes.
140         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
141         Hashes are unsigned int.  Calculate hash here, pass by value
142         to _cpp_lookup_slot.
143
144 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
145
146         * simplify-rtx.c (check_value_useless): Delete function.
147         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
148         by hand.
149         (cselib_invalidate_regno): Likewise.
150         (cselib_invalidate_mem_1): Likewise.
151         (references_value_p): Recognize useless values by the fact that they
152         have no locations.
153         (discard_useless_values): Likewise.
154         (cselib_record_set): This may turn a useless value
155         into a useful one.
156
157 2000-04-30  Richard Henderson  <rth@cygnus.com>
158
159         * config/d30v: New port.
160
161         * configure.in (d30v-*): Set fp format.
162         * configure: Rebuild.
163
164 2000-04-30  Richard Henderson  <rth@cygnus.com>
165
166         * ifcvt.c: New file.
167         * Makefile.in (OBJS): Add it.
168         (ifcvt.o): New target.
169         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
170         and conditional arithmetic.
171         (find_insert_position): Remove.
172         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
173         * toplev.c (DFI_ce, DFI_ce2): New.
174         (dump_file): Add ce and ce2 dumps.
175         (rest_of_compilation): Run if_convert a couple o times.  Set
176         cse_not_expected after cse2.  Don't set no_new_pseudos until
177         after sched1 or recompute_reg_usage.
178
179 2000-04-30  Richard Henderson  <rth@cygnus.com>
180
181         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
182         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
183
184 2000-04-30  Richard Henderson  <rth@cygnus.com>
185
186         * flow.c (struct reg_cond_life_info): New.
187         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
188         (init_propagate_block_info): Initialize them.
189         (free_propagate_block_info): Destruct them.
190         (mark_set_1): Consider conditional life before killing a register.
191         (mark_regno_cond_dead): New.
192         (free_reg_cond_life_info): New.
193         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
194         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
195         (mark_used_reg): Record conditional life.
196
197         * haifa-sched.c (schedule_insns): Disable death counting
198         sanity check for HAVE_conditional_execution.
199
200 2000-04-30  Richard Henderson  <rth@cygnus.com>
201
202         * Makefile.in (TIMEVAR_H): New.
203         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
204         (timevar.h): Remove rule.
205
206 2000-04-29  Richard Henderson  <rth@cygnus.com>
207
208         * config/alpha/crtend.asm: Use C comments instead of #.
209         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
210
211         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
212
213 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
214
215         * cpphash.h (enum node_type: Take out T_MCONST.
216         (union hashval): Move into struct hashnode.
217         (struct hashnode): Pack tighter.  Remove file, line, col
218         members.
219         * cpphash.c: Constify most of the macro-definition structures.
220         (struct definition): Replace by struct object_defn
221         and struct funct_defn.  Put file, line, column information
222         here.  All users updated to match.
223         (_cpp_create_definition, _cpp_macroexpand): Remove special
224         case for #define WORD OTHERWORD.
225         * cpplib.c (do_undef): Remove T_MCONST case.
226
227         * cpphash.h: Move struct reflist, struct definition, and the
228         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
229         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
230         * cpphash.c (_cpp_free_definition): Free data pointed to by
231         MCONST, XCONST, MACRO, and FMACRO nodes properly.
232         (_cpp_create_definition, del_HASHNODE): Just call
233         _cpp_free_definition to clear out a hashnode.
234         * cpplib.c (do_pragma_poison): Likewise.
235
236 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
237
238         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
239         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
240         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
241         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
242         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
243         REGNO_AM33_P): Redefine in terms of the new macros.
244         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
245         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
246         STRUCT_VALUE): Likewise.
247         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
248         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
249
250 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
251
252         * regmove.c (struct record_stack_memrefs_data): New.
253         (record_stack_memrefs): New function.
254         (combine_stack_adjustments_for_block): Use it.
255
256 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
257
258         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
259         use special_function_p to detect alloca.
260
261 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
262
263         * gcc.texi: Fixes for makeinfo 4.0 --html.
264
265 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
266
267         * pcp.h: Delete file.
268
269 2000-04-28  Kazu Hirata  <kazu@hxi.com>
270
271         * h8300.c (function_epilogue): Clean up flags when the last insn
272         in a function is a barrier.
273
274 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
275
276         * configure.in (sparc-hal-solaris2*): protect [] glob from
277         my expansion.
278         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
279         rather than hard-coded constants in target_cpu_default2.
280         * configure: Regenerate.
281
282 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
283
284         * tree.c (get_callee_fndecl): Extract the initial value from
285         a readonly decl.
286
287 2000-04-28  Richard Henderson  <rth@cygnus.com>
288
289         * varasm.c (record_constant_1): Record the CODE_LABEL when
290         taking the address of a LABEL_REF.
291
292 2000-04-28  Richard Henderson  <rth@cygnus.com>
293             Jan Hubicka  <jh@suse.cz>
294
295         * calls.c (combine_pending_stack_adjustment_and_call): Return the
296         adjustment; don't do the stack adjust.
297         (expand_call): Call compute_argument_block_size right before
298         allocating the block; update comment; don't do alignment sanity
299         checking for sibling call; use args_size instead of
300         unadjusted_args_size before args_size is adjusted.  Use
301         combine_pending_stack_adjustment_and_call to compute stack adjust
302         for must_preallocate case.
303
304         * expr.c (push_block): Remove shadow `temp' in inner scope.
305
306 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
307
308         * toplev.c (rest_of_compilation): Call
309         note_deferral_of_defined_inline_function even if the function
310         can't be inlined.
311
312 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
313
314         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
315
316 2000-04-28  Richard Henderson  <rth@cygnus.com>
317
318         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
319
320 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
321
322         * timevar.c (init_timevar): DeANSIfy function definition.
323
324 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
325
326         * Makefile.in (timevar.o): Depend on flags.h.
327         * timevar.c (unused_stack_instances): New variable.
328         (timevar_push): Take a timevar_stack_def from
329         unused_stack_instances if available.
330         (timevar_pop): Push the popped timevar_stack_def onto
331         unused_stack_instances.
332         (TIMEVAR_ENABLE): New macro.
333         (timevar_def): Make standalone a 1-bit field.  Add field used.
334         (get_time): Rename parameter to now.  Return after clearing it if
335         not TIMEVAR_ENABLE.
336         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
337         (timevar_pop): Likewise.
338         (timevar_stop): Likewise.
339         (timevar_push): Likewise.  Mark the timing variable as used.
340         (timevar_start): Likewise.
341         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
342         timevars that were never used.
343
344 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
345
346         * c-commom.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
347         always TREE_READONLY.
348
349 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
350
351         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
352         for call instruction with mode QImode.
353
354 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
355
356         * Makefile.in (OBJS): Add timevar.o.
357         (toplev.o): Depend on timevar.h.
358         (ggc-simple.o): Likewise.
359         (ggc-page.o): Likewise.
360         (timevar.o): New rule.
361         (timevar.h): New rule.
362
363         * timevar.h: New file.
364         * timevar.c: Likewise.
365         * timevar.def: Likewise.
366
367         * toplev.h (gc_time, parse_time, varconst_time): Remove.
368         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
369         throughout.
370         (TIMEVAR): Remove macro.
371         (gc_time, parse_time, varconst_time, integration_time, jump_time,
372         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
373         flow_time, combine_time, regmove_time, sched_time,
374         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
375         sched2_time, dbr_sched_time, reorder_blocks_time,
376         rename_registers_time, shorten_branch_time, stack_reg_time,
377         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
378         all_time): Remove.
379         (compile_file): Don't initialize time variables.  Call
380         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
381         of many calls to print_time.
382         (rest_of_compilation): Add timing for reload_cse_regs.
383         (get_run_time): Removed to timevar.c.
384         (print_time): Likewise.
385         (get_run_time): Implement using TV_TOTAL time variable.
386         (print_time): Get total run time from get_run_time.
387         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
388         computing elapsed time explicitly.
389         * ggc-simple.c (ggc_collect): Likewise.
390         (gc_time): Remove declaration.
391
392 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
393
394         * calls.c (combine_pending_stack_adjustment_and_call): New function.
395         (expand_call): Use it.
396
397 2000-04-27  Jan Hubicka  <jh@suse.cz>
398
399         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
400         fields.
401
402 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
403
404         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
405         registers.
406
407 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
408
409         * function.c (epilogue_done): Pass whole insn to record_insns.
410
411 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
412
413         * cse.c (CSE_ADDRESS_COST): Remove.
414         (find_best_addr): Add new parameter "MODE", use address_cost instead
415         of CSE_ADDRESS_COST
416         (address_cost): New.
417         (fold_rtx): Update call of find_best_addr.
418         * rtl.h (address_cost): Declare.
419         * loop.c (general_induction_var): Add new parameter "MODE", use
420         address_cost instead of ADDRESS_COST
421         (init_loop): Use address_cost instead of ADDRESS_COST.
422         (check_insn_for_givs): Update call of general_induction_var.
423         (find_mem_givs): Likewise.
424         (consec_sets_giv): Likewise.
425         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
426         * i386.c (ix86_address_cost): New.
427         * i386-protos.h (ix86_address_cost): Declare.
428
429 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
430
431         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
432         registers.
433
434 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
435
436         * expr.c (store_expr): Use clear_storage instead of direct memset
437         libcall.
438
439 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
440
441         * config/mn10300/mn10300.c (mn10300_address_cost): Test
442         ASHIFT, AND and LABEL_REF.
443
444 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
445
446         * invoke.texi (-foptimize-sibling-calls): Fix.
447
448 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
449
450         * loop.c (load_mems)  Don't use hard registers for the hoisting.
451
452         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
453         calculation; rename const_equiv array in the preconditioning code
454         from loop_unroll to loop_unroll_precondition
455
456 2000-04-27  Richard Henderson  <rth@cygnus.com>
457
458         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
459         add new_set.
460         (propagate_one_insn): Clear it.  Don't update reg_live here.
461         (init_propagate_block_info): Update for pbi member changes.
462         (free_propagate_block_info): Likewise.
463         (mark_set_1): Know that zero_extract, sign_extract, and
464         strict_low_part don't kill their argument.  Alter hard subregs.
465         Update new_set for non-CLOBBER sets.  Update reg_live.
466         (find_auto_inc): Update reg_live, not new_dead.
467         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
468         to determine if the reg in question was set this insn.  Only update
469         reg info with PROP_REG_INFO.
470
471 2000-04-26  Richard Henderson  <rth@cygnus.com>
472
473         * flow.c (allocate_reg_life_data): Set max_regno here ...
474         (life_analysis): ... not here.
475
476         * flow.c (calculate_global_regs_live): Force stack pointer
477         live at end.
478
479 2000-04-26  Richard Henderson  <rth@cygnus.com>
480
481         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
482         commit change group changes.
483         (invert_exp_1): Similarly.
484         (redirect_exp, invert_exp): Use them.
485         (redirect_jump_1): New.
486         (invert_jump_1): New.
487         (jump_optimize_1): Remove code subsumed by condexec.c.
488         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
489
490 2000-04-26  Richard Henderson  <rth@cygnus.com>
491
492         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
493
494         * genconfig.c (main): Set all HAVE_foo to 1.
495
496         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
497
498 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
499
500         * invoke.texi: Document -fssa flag.
501
502 2000-04-26  Richard Henderson  <rth@cygnus.com>
503
504         * flow.c (count_reg_sets_1): Remove.
505         (count_reg_sets, count_reg_references): Remove.
506         (recompute_reg_usage): Implement with update_life_info.
507         Reallocate life data.
508
509 2000-04-26  Richard Henderson  <rth@cygnus.com>
510
511         * flow.c (update_life_info): Consider blocks null to mean the
512         universal set.
513         (calculate_global_regs_live): Likewise.
514         (life_analysis): Do that instead of collecting all_blocks.
515
516 2000-04-26  Richard Henderson  <rth@cygnus.com>
517
518         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
519         a still-valid conditional jump.
520
521 2000-04-26  Richard Henderson  <rth@cygnus.com>
522
523         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
524
525         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
526         * flow.c (calculate_loop_depth): Remove.
527         * output.h (calculate_loop_depth): Don't declare.
528         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
529         inline; run estimate_probability at the same time.
530
531 2000-04-26  Neil Booth  <NeilB@earthling.net>
532
533         * cpplib.h: "~=" is not a single pp-token.
534         * cpplex.c: Correct commentary.
535
536 2000-04-26  Richard Henderson  <rth@cygnus.com>
537
538         * flow.c (mark_set_1): New arguments code and flags; update all
539         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
540         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
541         loop_depth when optimizing for size.  Do new_dead update after
542         emitting REG_UNUSED notes.  Merge mark_set_reg code.
543         (mark_set_reg): Remove.
544         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
545         arrange to not emit REG_UNUSED notes.
546
547 2000-04-26  Richard Henderson  <rth@cygnus.com>
548
549         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
550         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
551
552 2000-04-26  Richard Henderson  <rth@cygnus.com>
553
554         * flow.c (propagate_one_insn): Break out from propagate_block.
555         (init_propagate_block_info): Likewise.
556         (free_propagate_block_info): Likewise.
557         (propagate_block): Use them.  Export.
558         * basic-block.h: Declare them all.
559
560 2000-04-26  Richard Henderson  <rth@cygnus.com>
561
562         * basic-block.h (life_analysis): Declare here ...
563         * output.h: ... not here.
564         * flow.c (life_analysis): Remove nregs parameter; replace
565         remove_dead_code with flags.  Remove ssa dead code check.
566         Only init alias analysis if we'll use it.
567         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
568         * ssa.c (convert_to_ssa): Likewise.
569         (convert_from_ssa): Likewise.
570         * toplev.c (rest_of_compilation): Likewise.
571
572 2000-04-26  Richard Henderson  <rth@cygnus.com>
573
574         * flow.c (flow_delete_block): Rename from delete_block.  Export.
575         * basic-block.h (flow_delete_block): Declare.
576
577 2000-04-26  David S. Miller  <davem@redhat.com>
578
579         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
580         taking a PATTERN of it.
581
582 2000-04-26  <NeilB@earthling.net>
583
584         * cpplex.c (spell_other, spell_char): Remove.
585         (SPELL_CHAR): New.
586         (token_spelling, trigraph_map): Use unsigned chars.
587         (_cpp_lex_line): Tidy up the switch statement.
588         * cpplib.h: Implement spell_char with spell_string.
589         (C): New.
590
591 2000-04-26  <RodneyBrown@pmsc.com>
592
593         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
594         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
595
596 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
597
598         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
599         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
600         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
601         dwarf2out_return_save, dwarf2out_return_reg,
602         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
603         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
604         gen_compile_unit_die, dwarf2out_init): Constify a char*.
605
606         * dwarf2out.h (dwarf2out_init): Likewise.
607
608         * dwarfout.c (filename_entry, primary_filename, last_filename,
609         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
610
611         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
612         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
613         dwarf2out_return_reg): Likewise.
614
615 2000-04-26  Andreas Jaeger  <aj@suse.de>
616
617         * extend.texi (Function Attributes): Fix description of pure
618         attribute.
619
620 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
621
622         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
623         before calling rest_of_compilation.
624
625 2000-04-26  Andreas Jaeger  <aj@suse.de>
626
627         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
628         last patch.
629
630 2000-04-25  Richard Henderson  <rth@cygnus.com>
631
632         * cse.c (cse_insn): Emit barrier after unconditional jump.
633
634         * calls.c (expand_call): Disable tail call generation once
635         rtx_equal_function_value_matters is false.
636
637         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
638         like EDGE_EH edges.
639
640 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
641
642         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
643
644         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
645
646         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
647         is the primary DIE for a member function.
648         (gen_decl_die): Call set_decl_origin_self here.
649         * dwarfout.c (output_decl): And here.
650         * integrate.c (output_inline_function): Not here.
651         Don't clear DECL_INLINE until after calling rest_of_compilation.
652         (set_decl_origin_self): No longer static.
653         * tree.h: Add prototype.
654         * toplev.c (note_deferral_of_defined_inline_function): Only write
655         out abstract instance for actual inlines.
656
657 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
658
659         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
660         EXTENDED_REGS only if TARGET_AM33.
661         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
662         SP_REGS to register allocation and reloading unless absolutely
663         necessary.
664         (movsi3): Remove special-case of adding non-constants to SP.
665
666 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
667
668         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
669         INCLUDES to search and does not provide any of its own.  Also it
670         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
671         parameters.  Also it does not call AC_DEFINE.
672         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
673         AC_DEFINE and provides for automatic entries for autoheader.
674         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
675
676         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
677         so we can pass -I flags and include gansidecl.h/system.h in this
678         test.
679
680         * acconfig.h: Delete all NEED_DECLARATION_* entries.
681
682 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
683
684         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
685         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
686         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
687
688         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
689         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
690         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
691         for these macros.  Clean up spacing and linewraps.
692
693 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
694
695         * calls.c (expand_call): Use get_callee_fndecl.
696
697         * print-tree.c (print_node): Print the chain of an _EXPR.
698
699 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
700                           Jim Wilson  <wilson@cygnus.com>
701                           Andrew Haley  <aph@cygnus.com>
702
703         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
704         and gp save/restore problems.
705         * config/ia64/crtend.asm: Add IA-64 unwind support.
706         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
707         in fr_pad_size calculation.
708         (save_restore_insns): Move PR save area.  Correct uses of
709         RTX_FRAME_RELATED_P.
710         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
711         (ia64_expand_epilogue): Add eh_epilogue support.
712         (ia64_function_prologue): Emit .prologue directive.
713         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
714         (ia64_override_options): Set init_machine_status and
715         mark_machine_status.
716         (rtx_needs_barrier): Handle bsp reads and writes.
717         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
718         New static variables.
719         (process_set, process_for_unwind_directive): New functions.
720         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
721         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
722         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
723         macros.
724         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
725         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
726         (struct machine_function): Define.
727         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
728
729 2000-04-25  Bruce Korb  <bkorb@gnu.org>
730
731         * fixinc/Makefile.in: make the removal of old programs more
732         robust
733         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
734         install-bin and install-sh
735
736 2000-04-25  Nick Clifton  <nickc@cygnus.com>
737
738         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
739         defined, define to return zero.
740         (function_cannot_inline_p): If a function has any target
741         specific attributes, then use the macro
742         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
743         whether it can be inlined.  If it cannot, issue a suitable
744         explanation.
745
746         * tm.texi: Add a new node 'Inlining' to document the new macro
747         FUNCTION_ATTRIBUTE_INLINABLE_P.
748
749 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
750
751         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
752         commentary.
753
754 2000-04-25  Neil Booth  <NeilB@earthling.net>
755
756         Restore previous patch, plus the following fixes:
757
758         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
759         flags, not CPP_OPEN_PAREN.
760         * cpplex.c (expand_token_space, init_token_list,
761         cpp_free_token_list): Put the dummy token at list->tokens[-1].
762         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
763
764 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
765
766         * config/i386/freebsd.h (INT_ASM_OP): Define.
767
768 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
769
770         * loop.c (strength_reduce): Fix typo in the last checkin.
771
772 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
773
774         * stor-layout.c (finalize_record_size): Simplify to use existing
775         functions.
776         (compute_record_mode): No longer static.
777         * tree.h (compute_record_mode): New declaration.
778
779 2000-04-25  Neil Booth  <NeilB@earthling.net>
780
781         * Revert my patch below until cause of build failures
782         determined.
783
784 2000-04-25  Richard Henderson  <rth@cygnus.com>
785
786         * combine.c (combine_instructions): Add missing argument
787         to try_combine.
788
789         * toplev.c (rest_of_compilation): Delay sibcall optimization
790         until after emit_eh_context.
791
792 2000-04-24  Nick Clifton  <nickc@redhat.com>
793
794         * combine.c (combine_instructions): Do not try to combine a
795         sequence of insns when the second insn has been replaced by a
796         note.
797
798 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
799
800         * gcc.c (load_specs): New static function.
801         (read_specs): Use it.
802
803         * gcc.c (lookup_compiler): Make multiple passes for case
804         insensitive filesystems.
805
806 2000-04-24  Neil Booth  <NeilB@earthling.net>
807
808         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
809         * cpphash.h (_cpp_check_directive): new.
810         * cpplex.c (handle_newline, cpp_free_token_list,
811         init_trigraph_map, trigraph_ok, trigraph_replace,
812         backslash_start, skip_block_comment, skip_line_comment,
813         skip_whitespace, parse_name, parse_number, parse_string,
814         copy_comment, _cpp_lex_line, spell_char, spell_string,
815         spell_comment, spell_name, spell_other, _cpp_lex_file,
816         _cpp_output_list): new.
817         (expand_name_space): take length argument.
818         (init_token_list): add comment list initialisation.
819         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
820         instead of HSPACE_BEFORE.
821
822         * cpplib.c (_cpp_check_directive): new
823         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
824         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
825         (HSPACE_BEFORE): delete.
826         (TTYPE_TABLE): rearrange.
827         (struct cpp_toklist): update.
828
829 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
830
831         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
832         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
833         argument form of AC_DEFINE.
834
835         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
836         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
837         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
838         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
839         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
840
841         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
842
843 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
844
845         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
846         deduced.h): Use -isystem, not -I, for including system headers.
847
848 2000-04-24  Nick Clifton  <nickc@cygnus.com>
849
850         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
851         the source register is the frame pointer or arg pointer.
852         (addsi3_small_int): Disallow if source register is the frame
853         pointer or arg pointer.
854
855 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
856
857         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
858         call to AC_MSG_RESULT.
859
860 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
861
862         * invoke.texi: Correct grammatical errors, document
863         -fno-gnu-keywords as identical to -fno-asm for C++.
864
865 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
866
867         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
868         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
869         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
870         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
871         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
872
873         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
874         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
875         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
876         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
877         new macros names.
878
879 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
880
881         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
882         (pop_alignment): Likewise.
883         (handle_pragma_token): Likewise.
884
885 2000-04-24  Robert Lipe <robertlipe@usa.net>
886
887         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
888
889 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
890
891         * combine.c (try_combine): Update reg_nonzero_bits of
892         newi2pat before newpat.
893
894 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
895
896         * loop.c (strength_reduce): Simplify test to INSN_P.
897         (record_giv): Attempt to simplify the add value, use CONSTANT_P
898         expressions instead of CONST_INT.
899         (express_from_1): Likewise.
900
901 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
902
903         * regs.h (reg_n_max): Don't declare.
904         * flow.c (reg_n_max): Don't define.
905         * regclass.c (renumber): Don't initialize to zero.
906         (regno_allocated): Likewise.
907         (reg_n_max): Define.
908         (allocate_reg_info): Don't initialize unnecessarily.
909
910 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
911
912         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
913         and blockage_p in the newly allocated attribute.
914
915 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
916
917         * config/mn10300/mn10300.md (addsi): `inc4' on address
918         registers does not modify cc, but `inc' on an extended
919         register does.
920
921 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
922
923         * reload.c (find_equiv_reg): Checks all valueno regs
924         as a reload_reg_p regs.
925
926 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
927
928         * cpphash.c (collect_objlike_expansion): Add sanity check.
929         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
930         the buffer is the empty string, return.  Mark __DATE__ and
931         __TIME__ as XCONST nodes, not MCONST.
932         (_cpp_macroexpand): Avoid pushing an empty buffer.
933         (funlike_macroexpand): Don't pop token_buffer here.
934
935 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
936
937         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
938         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
939         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
940         (REGNO_OK_FOR_BASE_P): Define in terms of them.
941         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
942         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
943         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
944
945 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
946
947         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
948         constant MULT givs.
949
950 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
951
952         * cpphash.h (struct definition): Move file, line, col members...
953         (struct hashnode): ... here.  Also add 'disabled' flag.
954         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
955         T_IDENTITY.  Remove T_DISABLED.
956         Update prototypes.
957
958         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
959         (collect_expansion): Split into collect_objlike_expansion and
960         collect_funlike_expansion.
961         (_cpp_macroexpand): Split out scan_arguments, stringify, and
962         funlike_macroexpand.
963         (_cpp_compare_defs): Rename compare_defs, make static.
964         (_cpp_make_hashnode): Initialize hp->disabled.
965         (macro_cleanup): Adjust for new token types.  Clear
966         m->disabled.
967         (_cpp_create_definition): Move code here to determine what
968         sort of macro it is, and code to check for redefinitions, from
969         do_define.  Implement a few simple cases without creating a
970         full DEFINITION.
971         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
972         Handle the simple cases.
973         (push_macro_expansion): Set buf->has_escapes and hp->disabled
974         here.
975
976         * cppinit.c (builtin_array): Change MCONST to XCONST
977         everywhere.
978         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
979         fix check for disabled and function-like macros.
980         * cpplib.c (do_define): Move most logic to
981         _cpp_create_definition.
982         (do_undef): Handle new special token types.
983
984 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
985
986         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
987         of CONSTANT_P for mult_val; always use validate_change to update insn.
988
989 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
990
991         * cpphash.c (trad_stringify, add_pat): New functions.
992         (collect_expansion): Restore support for -traditional syntax.
993         Use trad_stringify and add_pat.
994         (_cpp_macroexpand): Restore support for -traditional semantics.
995         * cpplex.c (_cpp_scan_line): Don't change space_before if we
996         get a COMMENT token.
997         (_cpp_lex_token): Provide COMMENT tokens to caller if
998         traditional and parsing_define_directive.
999         (skip_comment): Warn about // comments if -Wtraditional.
1000         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
1001         proper node type.
1002         (do_undef): Don't warn about undefining EMPTY nodes.
1003
1004 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1005
1006         * loop.c (strength_reduce): Fix biv removal code.
1007
1008 2000-04-22  Richard Henderson  <rth@cygnus.com>
1009
1010         * predict.c (estimate_probability): Examine both sides of
1011         a branch for no exits.  Use 90% not 50% for predict taken.
1012         Reorg for one copy of note generation code.
1013
1014 2000-04-22  Richard Henderson  <rth@cygnus.com>
1015
1016         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
1017
1018 2000-04-22  Richard Henderson  <rth@cygnus.com>
1019
1020         * diagnostic.c (init_output_buffer): Don't initialize format_args.
1021         (output_clear): Likewise.
1022         (output_printf): Use va_copy.
1023         (vline_wrapper_message_with_location): Likewise.
1024         (v_message_with_decl): Likewise.
1025         (line_wrapper_printf): VA_START infor buffer.format_args directly.
1026         * system.h (va_copy): Provide default implementation.
1027
1028 2000-04-22  Richard Henderson  <rth@cygnus.com>
1029
1030         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
1031         the collected condition is not a constant.
1032
1033 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
1034
1035         * diagnostic.h: New file.
1036
1037         * Makefile.in (diagnostic.o): Depends on diagnostic.h
1038
1039         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
1040         various function prototypes.
1041         (diagnostic.h): #include.
1042         (struct output_buffer): Move into diagnostic.h.
1043         (get_output_prefix): Rename to output_get_prefix.  Export.
1044         (init_output_buffer): Export. Break out.  Ajust intialization.
1045         (output_space_left, output_append): Export.
1046         (output_newline): Rename to output_add_newline.  Export.
1047         (output_clear): Nullify additional output_buffer fields.
1048         (output_puts): Rename to output_add_string.  Export.
1049         (dump_output): Rename to output_flush_on.  Export.
1050         (build_location_prefix): Constify return-type.
1051         (emit_output_prefix): Rename to output_emit_prefix. Export.
1052         (set_real_maximum_length): New function.
1053         (output_set_maximum_length): Ditto
1054         (output_clear): Ditto.
1055         (output_add_character): Ditto.
1056         (output_add_integer): Ditto.
1057         (output_add_space): Ditto.
1058         (output_format): Ditto.
1059         (output_printf): Adjust buffer initialization.
1060         (vline_wrapper_message_with_location): Ditto.
1061         (v_message_with_decl): Ditto.  Adjust call to output_puts
1062         and get_output_prefix.
1063         (default_print_error_function): Adjust buffer intialization.
1064
1065 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1066
1067         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
1068         of VOID_TYPE.
1069
1070 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
1071
1072         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
1073         of explicit 0.
1074
1075 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
1076
1077         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
1078         accurate data about SP moves.
1079
1080 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
1081
1082         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
1083         aliases to AM33 registers.
1084
1085 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
1086
1087         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
1088         to all EXTENDED bitmaps.
1089
1090 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
1091
1092         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
1093         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
1094         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
1095
1096 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
1097
1098         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
1099         the operand is not constant.
1100
1101 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
1102
1103         * reload.c (find_equiv_reg): Checks all valueno and regno regs
1104         as a call-clobbered regs.
1105
1106 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1107
1108         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
1109         * rtl.h: Likewise.
1110         * rtl.def: Update comment.
1111         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
1112         * integrate.c (expand_inline_function): Likewise.
1113         * profile.c (branch_prob): Likewise.
1114         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
1115         * print-rtl.c (print_rtx): Likewise.
1116         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
1117         (reemit_notes): Likewise; also use enum insn_note.
1118
1119         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
1120         (place_field): Properly compute know and actual alignment.
1121
1122         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
1123         in proper format.
1124
1125         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
1126         note for REG1.
1127
1128 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
1129
1130         * cpphash.c (struct arg, struct arglist): Const-ify strings.
1131         (warn_trad_stringify, duplicate_arg_p): New helper functions.
1132         (collect_expansion): Rewrite to scan over a token list.
1133         Remove -traditional support.
1134         (collect_formal_parameters): Rename to collect_params; rewrite
1135         to scan over a token list.
1136         (_cpp_create_definition): Adjust to scan a token list.
1137         (_cpp_macroexpand): Remove -traditional support.
1138         (_cpp_compare_defs): Whitespace is now canonicalized.
1139         (comp_def_part): Delete function.
1140
1141         * cpphash.h: Update prototypes.
1142         * cpplex.c (init_token_list): Don't set lineno if there is no
1143         buffer.
1144         (pedantic_whitespace): New function.
1145         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
1146         consume a newline.  Use pedantic_whitespace.
1147         (_cpp_lex_token): Remove support for -traditional macros.
1148         (_cpp_get_define_token): Delete.
1149         (_cpp_get_directive_token): Do the real work here.  Use
1150         pedantic_whitespace.
1151         (_cpp_init_input_buffer): Initialize pfile->directbuf.
1152
1153         * cpplib.c (get_macro_name): Delete.
1154         (do_define): Read the entire line into pfile->directbuf, then
1155         feed the token list to _cpp_create_definition.
1156         * cpplib.h (HSPACE_BEFORE): new define.
1157         (struct cpp_reader): Add a toklist member, "directbuf".
1158
1159         * predict.c (estimate_probability): New heuristic: if a jump
1160         branches around a block with no successors, predict it taken.
1161         Disentangle control flow.
1162
1163 2000-04-20  Richard Henderson  <rth@cygnus.com>
1164
1165         * loop.c (emit_iv_add_mult): Revert last change.
1166
1167 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
1168
1169         * cpplib.h (enum cpp_ttype): Add token types for all
1170         punctuators.  Distinguish pp-numbers from valid C numbers.
1171         Give some tokens better names.  Initialize from macro.
1172         (struct cpp_name, cpp_token, cpp_toklist): New data
1173         structures.
1174         Update prototypes.
1175         * cpplex.c (bump_column, expand_name_space,
1176         expand_token_space, init_token_list, cpp_output_list,
1177         _cpp_scan_line):  New functions.
1178         (output_line_command): Add third argument, new line number.
1179         * cpphash.h: Update prototypes.
1180         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
1181         token names.
1182
1183 2000-04-20  Richard Henderson  <rth@cygnus.com>
1184
1185         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
1186
1187 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
1188
1189         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
1190         object pointed to.
1191
1192 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1193
1194         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
1195         REG_EQUAL note explaining the calculated value.
1196
1197         * calls.c (expand_call): Avoid unnecesary precalculation
1198         and outgoing parameters space guarding for sibling calls.
1199         (store_one_arg): Likewise.
1200
1201 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1202
1203         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
1204         (rest_of_compilation): Write sibling dump file and account
1205         for time as jump time.
1206         * invoke.texi: Update documentation on dump flags.
1207
1208 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
1209
1210         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
1211
1212 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
1213
1214         * cpphash.c (special_symbol): Represent an empty macro with
1215         "\r \r " not just "\r ".
1216         (_cpp_macroexpand): Correct condition for the foo ( ) special
1217         case.
1218         (unsafe_chars): Handle EOF as second argument.
1219         (push_macro_expansion): Simplify test for removing escape at
1220         end.  Do not trim both escapes if there is no text in between.
1221
1222 2000-04-19  Jim Blandy  <jimb@redhat.com>
1223
1224         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
1225         of PTR_SIZE, when appropriate.
1226
1227 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
1228
1229         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
1230         (USE_ENUM_BITFIELDS): Fix typo.
1231
1232 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1233
1234         * stor-layout.c (place_field): Set rli->offset_align properly.
1235
1236 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1237
1238         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
1239         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
1240         PARM_BOUNDARY): Remove unnecessary casts.
1241
1242 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1243
1244         * calls.c (precompute_arguments): Remove must_preallocate and
1245         args_size calls.
1246         (expand_call): Update call of precompute_arguments.
1247
1248         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
1249         check_insn_for_givs): Break out from ...
1250         (strength_reduce) ... here; use for_every_insn_in_loop to call
1251         check_insn_for_givs.
1252         * loop.h (for_every_insn_in_loop): Declare.
1253         (loop_insn_callback): New type.
1254
1255 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
1256
1257         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
1258         not nul-terminated.
1259
1260 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
1261
1262         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
1263         flag_pic and RELOC.
1264
1265 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
1266
1267         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
1268
1269         * configure.in: Delete --disable-cpplib option and all
1270         references to cpp_main.
1271         * configure: Regenerate.
1272         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
1273         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
1274         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
1275         cpp$(exeext).  Add --no-headers to makeinfo command line when
1276         generating INSTALL.  Install and uninstall cpp.1 manpage, not
1277         cccp.1.
1278         * install.texi: Delete all references to cexp.y/cexp.c.
1279         Delete ancient instructions for compiling GCC on 3b1.
1280         * INSTALL: Regenerate.
1281
1282         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
1283         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
1284         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
1285         cexp.c/cexp.y.
1286         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
1287         which is no longer tested anywhere.
1288
1289         * cppinit.c (handle_option): Don't run error message through
1290         gettext twice.
1291
1292 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1293
1294         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
1295         * cpperror.c (hashtab.h): Now include.
1296         * cppexp.c (hashtab.h): Likewise.
1297         * cpplex.c (hashtab.h): Likewise.
1298         * cppfiles.c (hashtab.h): Likewise.
1299         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
1300         to htab_find_slot_with_hash.
1301         * cpphash.c (hashtab.h): Now include.
1302         (_cpp_lookup_slot): INSERT is now enum insert_option.
1303         * cpphash.h (_cpp_lookup_slot): Likewise.
1304         * cppinit.c (hashtab.h): Include earlier.
1305         (initialize_builtins): Pass enum to htab_find_slot.
1306         * cpplib.c (hashtab.h): Now include.
1307         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
1308         (do_pragma_poison, do_assert): Likewise.
1309         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
1310         htab_find_slot_with_hash.
1311         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
1312         * tree.c (type_hash_add): Likewise.
1313         (build1): Minor cleanup.
1314
1315         * ggc-common.c: Add missing blanks.
1316         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
1317         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
1318
1319         * stmt.c (mark_case_node): New function.
1320         (mark_case_nesting): Call it.
1321
1322         * expmed.c (emit_store_flag): If comparing two-word integer
1323         with zero, can optimize NE, EQ, GE, and LT.
1324
1325         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
1326         * conflict.c: Minor cleanups.
1327         * optabs.c: Add blank line
1328         * simplify-rtx.c: Minor cleanups.
1329
1330 2000-04-18  Stan Cox  <scox@cygnus.com>
1331
1332         * gengenrtl.c (genlegend): Fix misspelling.
1333
1334 2000-04-18  Robert Lipe  <robertlipe@usa.net>
1335
1336         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
1337         bitfields of the host compiler are not signed quantities.
1338         * config.in: Regenerate.
1339         * configure: Regenerate.
1340         * system.h (USE_ENUM_BITFIELDS): Added.
1341         (ENUM_BITFIELDS): Added.
1342         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
1343         (SHORT_ENUM_BUG): Deleted.
1344         * tree.h (tree_common): Members `code', `mode', `built_in_class',
1345         now ENUM_BITFIELD.
1346         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
1347         (CODE_FIELD_BUG): Likewise.
1348         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
1349         (OLD_CC): Likewise.
1350         * config/m68k/x-ccur (X_CFLAGS): Likewise.
1351
1352 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
1353
1354         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
1355         mark is active.
1356
1357 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
1358
1359         * cppexp.c (lex): Don't assume tokens are NUL terminated.
1360         * cpplib.c (do_include, do_import, do_include_next,
1361         read_line_number, detect_if_not_defined): Likewise.
1362         * cpphash.c (collect_expansion): Likewise.
1363         (special_symbol, _cpp_macroexpand): Check return from
1364         cpp_file_buffer.
1365         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
1366         macros.  Delete all uses.
1367
1368         * gcc.dg/cpp-mi.c: Add two more test cases.
1369         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
1370
1371 2000-04-17  Richard Henderson  <rth@cygnus.com>
1372
1373         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
1374         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
1375
1376 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
1377
1378         * function.c (expand_function_start): Use hard_function_value to
1379         compute the RTL to use for DECL_RESULT.
1380
1381 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1382
1383         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
1384         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
1385          x86_memory_mismatch_stall): New global variables.
1386         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
1387         alloved; fix load penalties for Athlon.
1388         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
1389         x86_memory_mismatch_stall): Declare.
1390         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
1391          TARGET_MEMORY_MISMATCH_STALL): New.
1392         * i386.md (athlon scheduling parameters): Fix latencies according to
1393         Athlon Optimization Manual.
1394         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
1395         vector.
1396         (fsqrt instruction patterns): Set athlon_decode to direct.
1397         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
1398         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
1399         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
1400         and TARGET_PARTIAL_REGISTER_STALL machines.
1401         (pushdf_nointeger): New pattern.
1402         (pushdf_integer): Rename from pushdf.
1403         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
1404         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
1405
1406 2000-04-17  Richard Henderson  <rth@cygnus.com>
1407
1408         * loop.c (canonicalize_condition): Add WANT_REG argument.
1409         Stop the search if we match it.
1410         * expr.h (canonicalize_condition): Update decl.
1411         * predict.c (expected_value_to_br_prob): Use it.  Track last
1412         expected value note.
1413         (find_expected_value): Remove.
1414
1415         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
1416
1417 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
1418
1419         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
1420         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
1421         a plain file.
1422         * configure.in: Call AC_FUNC_MMAP_FILE.
1423         * configure: Regenerate.
1424         * config.in: Regenerate.
1425
1426         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
1427         * fixinc/fixincl.c: Likewise.
1428
1429 2000-04-17  Richard Henderson  <rth@cygnus.com>
1430
1431         * builtins.c (expand_builtin_expect): New.
1432         (expand_builtin): Call it.
1433         * builtins.def (BUILT_IN_EXPECT): New.
1434         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
1435         * extend.texi: Document it.
1436
1437         * predict.c (expected_value_to_br_prob): New.
1438         (find_expected_value): New.
1439         * basic-block.h (expected_value_to_br_prob): Declare.
1440         * toplev.c (rest_of_compilation): Invoke it.
1441
1442         * rtl.h (NOTE_EXPECTED_VALUE): New.
1443         (NOTE_INSN_EXPECTED_VALUE): New.
1444         * rtl.c (note_insn_name): Update.
1445         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
1446         cases; handle NOTE_INSN_EXPECTED_VALUE.
1447
1448 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
1449
1450         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
1451         leaf sibcall delay slot if flag_pic.
1452         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
1453
1454 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1455
1456         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
1457
1458         * fixproto: If fix-header fails, exit with an error.
1459
1460 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1461
1462         * cse.c (struct check_depdendence_data): New.
1463         (check_dependence): New function.
1464         (invalidate): Use check_depdenence.
1465
1466 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
1467
1468         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
1469         UNITS_PER_WORD is unsigned.
1470
1471         * tree.h (struct tree_common): Remove misleading comment.
1472
1473 2000-04-16  Dave Pitts  <dpitts@cozx.com>
1474
1475         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
1476         message in quotes. Otherwise, IBM's make program treats the '#' as the
1477         start of a comment and ignores the remainder of the line.
1478
1479         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
1480         upper case.
1481         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
1482         * cexp.y (initialize_random_junk): Likewise.
1483         * cppfiles.c (find_include_file): Cast alloca return value.
1484         * cppinit.c (initialize_standard_includes): Likewise.
1485         * cpplib.c (cpp_define, cpp_undef): Likewise.
1486         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
1487         * final.c (output_asm_insn): Allow for holes in EBCDIC.
1488         * fold-const.c (CHARMASK): New.
1489         (real_hex_to_f): Use it.
1490         * real.c (CHARMASK): New.
1491         (etoasc, asctoeg): Use it.
1492         (asctoeg): EBCDIC lower case characters preceed upper case.
1493
1494         * i370.c (mvs_add_label): Change spacing for coding conventions.
1495         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
1496         outputing case vectors.
1497         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
1498         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
1499         since vector in in the data CSECT.
1500         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
1501         * i370.md (Many patterns): Put the length in the XL directives.
1502         (movdi): Put back STM and MVC in definition.
1503         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
1504         pattern using the TCA.
1505         * oe.h (CPP_SPEC): Added to allow trigraphs.
1506         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
1507         not support the "long long" type.
1508
1509 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
1510
1511         * config/mips/mips-protos.h (mips_legitimate_address_p): New
1512         function.
1513         (mips_reg_mode_ok_for_base_p): Likewise.
1514         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
1515         (REG_OK_FOR_INDEX_P): Define unconditionally.
1516         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
1517         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
1518         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
1519         that GET_MODE_SIZE is unsigned.
1520         (mips_reg_mode_ok_for_base_p): Define.
1521         (mips_legitimate_address_p): Likewise.  Adjust now
1522         that GET_MODE_SIZE is unsigned.
1523         (block_move_loop): Make the number of bytes unsigned.
1524         (expand_block_move): Likewise.
1525         (function_arg): Make the loop counter unsigned to match the
1526         boundary condition.
1527
1528 2000-04-16  Richard Henderson  <rth@cygnus.com>
1529
1530         * rtl.h (enum insn_note): New enumeration.  Subsume
1531         NOTE_INSN_DELETED and friends.
1532         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
1533         * rtl.c (note_insn_name): Tweak string order.
1534
1535 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
1536
1537         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
1538         to offset * 2.
1539
1540         * cpplex.c (output_line_command): Remove debugging prints.
1541         (cpp_output_tokens): Don't write out a zero-length buffer or
1542         try to see if it has a newline in it.
1543         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
1544         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
1545         the end of the loop.  Use memmove.  Don't read past the end of
1546         the buffer.  Remove trailing newlines from error messages.
1547
1548 2004-04-16  Neil Booth  <NeilB@earthling.net>
1549
1550         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
1551         * cpplib.c: Add new syntax flags to directive table, and
1552         supporting macros.
1553
1554 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
1555
1556         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
1557         using ret $N.
1558
1559 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
1560
1561         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
1562         * haifa-sched.c: Update -fsched-verbose comments to use "=".
1563
1564 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1565
1566         * Makefile.in (ggc-page.o): Now includes toplev.h.
1567         * ggc-page.c (toplev.h): Now included.
1568         (gc_time): Remove declaration.
1569         (ggc_collect): TIME now long.
1570         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
1571         others static.
1572         * toplev.h (gc_time, parse_time, gc_time): New declarations.
1573
1574         * toplev.c: Make *_time variable long to reduce chance of overflow.
1575         (TIMEVAR): Likewise for `otime'.
1576         (print_time): Arg is now long; compute percentage in FP and round.
1577         * toplev.h (print_time): Arg is long.
1578
1579         * tree.c: Minor whitespace changes.
1580
1581         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
1582         * configure: Rebuilt.
1583         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
1584         (__fixunsxfDI): Renamed from __fixunsxfdi.
1585         (__fixunsdfDI): Renamed from __fixunsdfdi.
1586         (__fixunssfDI): Renamed from __fixunssfdi.
1587         (__floatdisf): Use proper type in REP_BIT macro.
1588         (__fixunsxfSI): Renamed from __fixunsxfsi.
1589         (__fixunsdfSI): Renamed from __fixunsdfsi.
1590         (__fixunssfSI): Renamed from __fixunssfsi.
1591         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
1592         Change location of macros and upper-case some names as above.
1593         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
1594         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
1595
1596         * varasm.c (assemble_variable): Add cast to remove warning.
1597         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
1598
1599         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
1600         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
1601         region number to -1.
1602
1603 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
1604
1605         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
1606         call unshare_all_rtl.
1607
1608         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
1609
1610 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
1611
1612         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
1613         Use .s1 not .s0 for all FP instructions.
1614
1615 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
1616
1617         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
1618         interfaces.
1619         (safe_fwrite, output_line_command): New static functions.
1620         (cpp_expand_to_buffer): Now private to cpplib.
1621         (cpp_scan_buffer): Take a printer.
1622
1623         * cpphash.h: Update prototypes.
1624         * cpplib.h: Update prototypes.
1625         (cpp_printer): New.
1626         (cpp_buffer): Remove last_nominal_fname.
1627         (cpp_reader): Remove lineno.
1628
1629         * cppmain.c: Use a cpp_printer.
1630         * fix-header.c: No need to inhibit line commands.  Call
1631         cpp_start_read with no printer.
1632
1633         * cpperror.c (cpp_notice_from_errno): Provide default name.
1634         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
1635         (find_include_file, cpp_read_file): Use make_IHASH.
1636         (file_cleanup): Set control_macro and clear
1637         input_stack_listing_current here.
1638         (_cpp_execute_include): Don't output entering-file marker.
1639         * cpphash.c (special_symbol): Look for the line number in the
1640         buffer, not the reader.
1641         (_cpp_macroexpand): No need to disable line commands.
1642         (_cpp_dump_definition): No need to generate line commands.
1643         (dump_hash_helper): Remove excess newline from output.
1644         * cppinit.c (dump_special_to_buffer): No need to generate line
1645         commands.
1646         (cpp_printer_init): New.
1647         (cpp_start_read): Take a printer, and start it up if it's not
1648         NULL.  No need to generate line commands.
1649         (cpp_finish): Expect no buffers stacked at all.  Take a
1650         printer argument, and flush the output buffer if it's not
1651         NULL.
1652         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
1653         Don't put two hashes at the beginning of an assertion.
1654         (cpp_get_token): Don't increment pfile->lineno or emit line
1655         commands here.  Return EOF if there's no buffer when we get
1656         EOF.
1657         * cpplib.c (do_define, skip_if_group):
1658         No need to disable line commands.
1659         (_cpp_output_line_command): Delete function.
1660         (do_line): Don't emit line commands here, but set things up so
1661         they will be emitted if necessary.  Use _cpp_fake_ihash to
1662         make unique nominal_fnames if necessary.
1663         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
1664         with 0 for column, not -1.
1665         (_cpp_handle_eof): Don't set the control macro here.  Don't
1666         clear input_stack_listing_current here.  Don't emit line
1667         commands.
1668
1669 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
1670
1671         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
1672         always, use the default SVR4 start address.
1673
1674         * config/rs6000/linux.h (LINK_SPEC): Don't define.
1675         (LINK_SHLIB_SPEC): Define.
1676         (LINK_START_DEFAULT_SPEC): Define.
1677         (LINK_OS_DEFAULT_SPEC): Define.
1678
1679         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
1680
1681         * config/rs6000/eabi.asm (__eabi): Call __init rather than
1682         __do_global_ctors to handle constructors.
1683         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
1684         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
1685         (STARTFILE_MVME_SPEC): Likewise.
1686         (STARTFILE_SIM_SPEC): Likewise.
1687         (ENDFILE_ADS_SPEC): Use crtend.
1688         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
1689         (ENDFILE_MVME_SPEC): Likewise.
1690         (ENDFILE_SIM_SPEC): Likewise.
1691         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
1692         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
1693         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
1694         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
1695         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
1696         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
1697         (CRTSTUFF_T_CFLAGS_S): Define.
1698         * config/rs6000/eabi-ctors.c: Delete.
1699
1700         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
1701         boundary.
1702         (__fini): Likewise.
1703         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
1704         boundary.
1705         (__fini): Likewise.
1706
1707 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
1708
1709         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
1710         plus mask size is smaller or equal to the mode size.
1711
1712 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1713
1714         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
1715         not yet set.
1716
1717         * expr.c (reload.h): Now included.
1718         (emit_block_move): Set volatile_ok when checking for movstr.
1719         (emit_move_1): Check for replacements in addresses in multi-word case.
1720         * Makefile.in (expr.o): Now includes reload.h.
1721
1722         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
1723         Never have a LIBCALL end a basic block.
1724         (find_basic_blocks_1): Likewise.
1725         Reorganize CALL_INSN cases.
1726
1727         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
1728
1729 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
1730
1731         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
1732         completers from mov.ret instruction.
1733
1734 2000-04-14  Richard Henderson  <rth@cygnus.com>
1735
1736         * fold-const.c (extract_muldiv): Don't distribute and widen
1737         multiply across plus for non-sizetype unsigned types.
1738
1739 2000-04-14  Richard Henderson  <rth@cygnus.com>
1740
1741         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
1742         If the original source is dead in the incr insn, it's dead now.
1743
1744 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1745
1746         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
1747         see if DECL_BIT_FIELD needs to still be set.
1748
1749         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
1750
1751         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
1752         print_int_cst_octal with something that's not an INTEGER_CST.
1753
1754         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
1755         and not a SUBREG to a FLOAT rtl.
1756
1757 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
1758
1759         * emit-rtl.c (try_split): Avoid infinite loop if the split
1760         results in a sequence that contains the original insn.
1761
1762 2000-04-13  Andreas Jaeger  <aj@suse.de>
1763
1764         * config/mips/mips.c (expand_block_move): Pass alignment
1765         argument to move_by_pieces in bits, not bytes.
1766
1767         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
1768         __pic__ for little endian.
1769
1770 2000-04-13  Andreas Jaeger  <aj@suse.de>
1771
1772         * config/i386/i386-protos.h: Add prototype for
1773         uno_comparison_operator.
1774
1775 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1776
1777         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
1778         * calls.c (ECF_PURE): New flag.
1779         (emit_call_1): Handle ECF_PURE calls.
1780         (initialize_argument_information): Unset ECF_PURE flag too.
1781         (precompute_arguments): Precompute for ECF_PURE too.
1782         (expand_call): Handle ECF_PURE calls too.
1783         (emit_library_call_value_1): Rename no_queue argument to fn_type,
1784         accept value of 2 as pure function.
1785         (emit_library_call_value, emit_library_call): Rename no_queue argument
1786         to fn_type.
1787         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
1788
1789         * tree.h (DECL_IS_PURE): New macro.
1790         (struct tree_decl): Add pure_flag.
1791         * c-common.c (enum attrs): Add attribute "pure".
1792         (init_attributes): Initialize attribute "pure"
1793         (decl_attributes): Handle attribute "pure".
1794         * extend.texi (Attribute "pure"): Document.
1795         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
1796         in pure function.
1797         (flags_from_decl_or_type): Support attribute "pure".
1798
1799 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
1800
1801         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
1802         the token except for numbers and identifiers.
1803
1804 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
1805
1806         * i386.c (ix86_expand_binary_operator,
1807         ix86_expand_unary_operator): Check no_new_pseudos
1808         instead of reload_in_progress and reload_completed.
1809         (ix86_split_ashldi, ix86_split_ashrdi,
1810         ix86_split_lshrdi): Check no_new_pseudos instead
1811         of reload_completed.
1812
1813 2000-04-12  Jeffrey A Law  (law@cygnus.com)
1814
1815         * function.c (purge_addressof): Unshare any shared rtl created by
1816         purge_addressof and its children.
1817
1818 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
1819
1820         * function.c (aggregate_value_p): VOID_TYPE nodes are never
1821         aggregates.
1822
1823 2000-04-05  Andreas Jaeger  <aj@suse.de>
1824
1825         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
1826         not compiling PIC code, add flags for mabi=64.
1827         (SUBTARGET_CPP_SIZE_SPEC): New.
1828         (SUBTARGET_CPP_SPEC): New.
1829         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
1830         for MIPS/Linux and lots of code needs these defines.
1831
1832 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
1833
1834         * reorg.c (fill_slots_from_thread): Check side_effects_p when
1835         trying the "opposite arithmetic" approach.
1836
1837 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1838
1839         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
1840         (struct sh_args): Add new field force_mem.
1841         (INIT_CUMULATIVE_ARGS): Initialize it.
1842         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
1843
1844 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1845
1846         * calls.c (expand_call): Do not reverse args in "equal from" field.
1847         (emit_library_call_value_1): Emit_libcall_block for const and pure
1848         function.
1849
1850 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1851
1852         * reload1.c (reload_combine): Don't enable optimization for fixed
1853         registers when encountering a BARRIER.
1854
1855 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1856
1857         * builtins.c (expand_builtin_memcmp): Do expansion even with
1858         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
1859
1860         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
1861         stack is propertly aligned; add sanity checking for aligned
1862         stack pointer.
1863         (expand_library_call_value_1): Add sanity checking for aligned
1864         stack pointer.
1865
1866 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
1867
1868         * calls.c (emit_library_call_value_1): Change 3rd arg to
1869         locate_and_pad_parm to disregard the setting of partial.
1870
1871 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1872
1873         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
1874
1875         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
1876         CALL_INSN from the normal case.
1877
1878 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1879
1880         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
1881         New global variables.
1882         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
1883         adjustment.
1884         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
1885         Declare,
1886         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
1887          TARGET_ADD_ESP_8): New macros.
1888         * i386.md: Add peep2s to convert esp adjustments to push and pop
1889         instructions.
1890         (pushsi_prologue, popsi_epilogue): New patterns.
1891
1892 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
1893
1894         * real.c (toe64): Remove stale #endif from the last change.
1895
1896 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
1897
1898         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
1899         * real.c (toe64): Revert previous change.
1900
1901 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
1902
1903         * objc/objc-act.c: Include ggc.h.
1904         (objc_tree_index, objc_global_trees): Convert most of the
1905         static tree variables into a static array with previous names
1906         as defines.
1907         (objc_ellipsis_node): New variable.
1908         (lang_init): Call objc_act_parse_init and c_parse_init.
1909         Create objc_ellipsis_node.
1910         (build_selector_translation_table): Use objc_ellipsis_node instead
1911         of (tree)1.
1912         (hack_method_prototype): Likewise.
1913         (get_arg_type_list): Likewise.
1914         (start_method_def): Likewise.
1915         (continue_method_def): Likewise.
1916         (gen_method_decl): Likewise.
1917         (ggc_mark_imp_list): New function.
1918         (ggc_mark_hash_table): New function.
1919         (objc_act_parse_init): New function.
1920         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
1921         * c-parse.in (c_parse_init): For objc add roots of objc specific
1922         local tree variables.
1923         * objc/objc-parse.y: Rebuilt.
1924         * objc/objc-parse.c: Rebuilt.
1925         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
1926
1927 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
1928
1929         * cse.c (delete_trivially_dead_insns): Also delete insns
1930         that copy a register to itself where the destination is
1931         a strict_low_part.
1932
1933 2000-04-11  Richard Henderson  <rth@cygnus.com>
1934
1935         * flow.c (struct propagate_block_info): Add new_dead, new_live.
1936         (propagate_block): Initialize them.  Use them in parallel instead
1937         of one tmp variable, ie revert much of the 0408 and 0407 functional
1938         changes, but keep the structural changes.
1939         (mark_set_regs): Take new_dead from propagate_block_info instead.
1940         (mark_set_1, mark_set_reg): Likewise.
1941         (mark_used_regs): Likewise with new_live.
1942         (mark_used_reg): Likewise.  Revert 0408 change.
1943
1944 2000-04-11  Nick Clifton  <nickc@cygnus.com>
1945
1946         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
1947         restriction.
1948         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
1949
1950 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1951
1952         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
1953         const section to output a CONSTRUCTOR based on the same conditions
1954         used for VAR_DECLs.
1955
1956 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
1957
1958         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
1959         * pa/pa-protos.h (output_call): Add additional argument indicating
1960         if the call is a sibling/tail call.
1961         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
1962         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
1963         (function_arg, function_arg_partial_nregs): Likewise
1964         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
1965         (emit_move_sequence): Zero extend certain constants as needed
1966         for TARGET_64BIT.
1967         (compute_zdepdi_operands, output_64bit_and): New functions.
1968         (output_64bit_ior, function_arg): Likewise.
1969         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
1970         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
1971         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
1972         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
1973         (output_bvb): Likewise.
1974         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
1975         (output_call): New argument 'sibcall'.  Generate sibcall sequences
1976         as needed.
1977         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
1978         (ouput_arg_descriptor): Do not emit argument descriptors for
1979         TARGET_64BIT.
1980         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
1981         defined.
1982         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
1983         (FUNCTION_OK_FOR_SIBALL): Define.
1984         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
1985         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
1986         (CPP_SPEC): Use new spec infrastructure.
1987         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
1988         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
1989         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
1990         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
1991         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
1992         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
1993         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
1994         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
1995         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
1996         (FUNCTION_ARG); Call out to C code.
1997         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
1998         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
1999         (MIN_UNITS_PER_WORD): Likewise.
2000         * pa/pa.md (cmpdi): New expander.
2001         (scc patterns, movstrsi): Not available for TARGET_64BIT.
2002         (64bit conditional arithmetic): New patterns.
2003         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
2004         (movsicc): Not available if modes on all the operands to not match.
2005         (movdicc): New expander and associated patterns.
2006         (64bit branches): New patterns.
2007         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
2008         (pre_ldd, post_std): New patterns.
2009         (64bit addil, load low part): New patterns.
2010         (special movsf constant): Not available for TARGET_64BIT.
2011         (movsf, movdf expanders): Force constants into memory.
2012         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
2013         (64bit movdf/movdi patterns): New patterns.
2014         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
2015         for TARGET_64BIT.
2016         (extendqidi2, extendhidi2, extendsidi2): Similarly.
2017         (adddi3 expander): Allow "arith_operand" for second input.
2018         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
2019         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
2020         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
2021         (muldi3): New expander for TARGET_64BIT.
2022         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
2023         for TARGET_64BIT.
2024         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
2025         patterns for TARGET_64BIT.
2026         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
2027         patterns for TARGET_64BIT.
2028         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
2029         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
2030         (sibcall_epilogue): New expander.
2031         (casesi): Tweak for TARGET_64BIT.
2032         (call expanders): Set & use the outgoing argument pointer.  Use the
2033         64bit call patterns as needed. Add additional arg to output_call.
2034         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
2035         (sibcall, sibcall_internal_symref): New expanders.
2036         (sibcall_value, sibcall_value_internal_symref
2037         (interspace_jump): Turn into an expander + matching patterns.
2038         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
2039         * pa/pa64-regs.h: Eliminate trigraph sequences.
2040         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
2041
2042 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
2043
2044         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
2045         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
2046         cpp_token with cpp_ttype everywhere.
2047         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
2048         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
2049         CPP_BUF_COL.  Line and column numbers are unsigned int, not
2050         long.
2051         * cpplex.c (cpp_buf_line_and_col): Delete.
2052         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
2053         'long lineno' to 'unsigned int lineno'.
2054         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
2055
2056 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2057
2058         * extend.texi: ISO C99 is not a draft anymore.
2059         * invoke.texi: ISO C++ is not a draft anymore.
2060         * cpp.texi: __cplusplus is required by the ISO standard.
2061
2062         * extend.texi (-fthis-is-variable): Undocument.
2063         * flags.h (warn_template_debugging): Remove declaration.
2064         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
2065         -Wenum-clash, -Wtemplate-debugging): Undocument.
2066
2067 2000-04-10  Nick Clifton  <nickc@cygnus.com>
2068
2069         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
2070         integer.
2071         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
2072         integer.
2073         (ARM_SIGN_EXTEND): Use HOST_UINT.
2074         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
2075         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
2076         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
2077         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
2078
2079         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
2080         (arm_gen_constant): Use HOST_UINT.
2081         (arm_canonicalize_constant): Use HOST_UINT.
2082         (arm_reload_in_hi): Use HOST_UINT.
2083         (arm_reload_out_hi): Use HOST_UINT.
2084         (output_multi_immediate): Use HOST_UINT.
2085         (int_log2): Use HOST_UINT.
2086         (arm_poke_function_name): Use HOST_UINT.
2087         (arm_output_epilogue): Use arm_volatile_func().
2088         (output_thumb_prologue): Use arm_strip_name_encoding().
2089
2090 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2091
2092         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
2093         of sequence point problems.
2094
2095 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
2096
2097         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
2098         Recomment.
2099         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
2100
2101 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2102
2103         * sbitmap.h: Whitespace changes and use upper-case macro args.
2104         (struct simple_bitmap_def): All sizes now unsigned.
2105         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
2106         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
2107         (sbitmap_vector_alloc): Parms and local vars now unsigned.
2108         (sbitmap_zero): Cast bzero arg to PTR.
2109         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
2110         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
2111         loop to make structure clearer.
2112         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
2113         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
2114         (sbitmap_a_and_b_or_c): Likewise.
2115         (sbitmap_intersection_of_succs): Minor cleanups.
2116         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
2117         (sbitmap_union_of_preds): Likewise.
2118         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
2119         (debug_sbitmap): New function.
2120
2121         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
2122         * c-typeck.c (convert_for_assignment): Likewise.
2123
2124         * expmed.c (init_expmed): Don't free objects we make.
2125         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
2126
2127         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
2128         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
2129
2130         * gcse.c (expr_hash_table_size): Now unsigned.
2131         (compute_ae_gen): Local variable `i' now unsigned.
2132         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
2133         (compute_transout, hoist_code): Likewise.
2134         (compute_local_properties): Likewise, also hash_table_size.
2135         (alloc_expr_hash_table): N_INSNS now unsigned.
2136         (delete_null_pointer_checks): Mark arg F as unused.
2137
2138         * regrename.c: Minor cleanups, including chang some variables
2139         to unsigned int.
2140
2141 2000-04-10  Neil Booth  <NeilB@earthling.net>
2142
2143         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
2144         than GETC ().
2145         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
2146
2147 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2148
2149         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
2150         __classof__, and __headof__ from the list of gnu keywords.
2151         (-ansi): Remove -foperator-names from list of implied options.
2152         Do not call it ANSI C++.
2153         (-foperator-names): Document as -fno-operator-names.
2154
2155 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
2156
2157         * cpphash.c (timestamp): Delete.
2158         (del_HASHNODE): If type is T_MCONST, free value.cpval.
2159         (special_symbol): Remove unnecessary braces.  Remove
2160         T_VERSION.  Treat T_STDC like T_CONST unless
2161         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
2162         when one is encountered, then convert them into T_MCONST
2163         nodes.
2164         * cppinit.c (builtin_array): version_string is T_MCONST.
2165         __STDC__ has a "1" in its cpval.  Don't have a terminator
2166         entry.  Clean up which entries are dumped.
2167         (initialize_builtins): Only __STDC__ gets the special
2168         -traditional treatment.  Count the length of builtin_array.
2169         Render version_string here.
2170         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
2171         * cpplib.h (struct cpp_reader): Remove timebuf.
2172
2173 2000-04-09  Richard Henderson  <rth@cygnus.com>
2174
2175         * genrecog.c (pred): Update comparison_operator for the unordered
2176         operators.
2177
2178         * config/i386/i386.c (no_comparison_operator): Disallow unordered
2179         operators.
2180         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
2181         (uno_comparison_operator): New.
2182         (put_condition_code): Handle UNORDERED/ORDERED.
2183         (unsigned_comparison): Likewise.
2184         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
2185         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
2186         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
2187         update all callers.  Handle all 8 unordered operators.
2188         (ix86_expand_setcc): Lose the unordered argument, update all callers.
2189         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
2190         * config/i386/i386.h (PREDICATE_CODES): Update.
2191         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
2192         (ix86_expand_branch, ix86_expand_setcc): Update.
2193         * config/i386/i386.md (sunordered, sordered): New.
2194         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
2195         (bunordered, bordered): New.
2196         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
2197         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
2198         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
2199
2200 2000-04-09  Philip Blundell  <philb@gnu.org>
2201
2202         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
2203
2204 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
2205
2206         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
2207         fix_truncxfhi2): New patterns.
2208         * i386.c (output_fix_trunc): Handle converting to HImode.
2209
2210 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
2211
2212         * ssa.c (convert_to_ssa): Eliminate dead code when calling
2213         life_analysis.
2214         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
2215         (for_each_successor_phi): Change parameter to basic_block.
2216         (coalesce_regs_in_successor_phi_nodes): Likewise.
2217         (coalesce_regs_in_copies): Likewise.
2218         (compute_coalesced_reg_partition): Use basic_block instead of index.
2219         * rtl.h (convert_to_ssa): Delete.
2220         (convert_from_ssa): Likewise.
2221         (successor_phi_fn): Likewise.
2222         (for_each_successor_phi): Likewise.
2223         (in_ssa_form): Likewise.
2224         * basic-block.h (convert_to_ssa): Moved from rtl.h.
2225         (convert_from_ssa): Likewise.
2226         (successor_phi_fn): Likewise.
2227         (in_ssa_form): Likewise.
2228         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
2229         * flow.c (calculate_global_regs_live): Pass a basic_block to
2230         for_each_successor_phi.
2231
2232 2000-04-08  Richard Henderson  <rth@cygnus.com>
2233
2234         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
2235         was modified in the current insn.
2236
2237 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
2238
2239         * arm/thumb.md: Delete.
2240         * arm/thumb-protos.h: Delete.
2241
2242 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
2243
2244         Merge changes from merged-arm-thumb-backend-branch onto trunk.
2245
2246         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
2247
2248         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
2249         into branch.
2250
2251         * arm.md (nop): Use the standard RTL expression.  Don't code as a
2252         define_expand.
2253         (*arm_nop, *thumb_nop): Delete.
2254
2255         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
2256         constants.  Use casts instead.
2257         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
2258         output_multi_immediate, arm_poke_function_name): Likewise.
2259         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
2260         MASK_RETURN_ADDDR): Likewise.
2261
2262         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
2263
2264         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
2265         into branch.
2266
2267         * arm.md (eh_epilogue): New function.
2268         * arm.h (struct machine_function): Move to here ...
2269         * arm.c: ... from here.
2270         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
2271         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
2272         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
2273
2274         2000-03-30  Nick Clifton  <nickc@cygnus.com>
2275
2276         * config/arm/semi.h (ASM_SPEC): Restore definition.
2277         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
2278
2279         * config/arm/elf.h (ASM_SPEC): Restore definition.
2280         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
2281
2282         * config/arm/arm.h (ASM_SPEC): Remove definition.
2283         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
2284
2285         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
2286
2287         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
2288
2289         2000-03-24  Nick Clifton  <nickc@cygnus.com>
2290
2291         Various formating tidyups, elimination of compile time
2292         warnings and synchronisation with internal sources:
2293
2294         * config/arm/arm-protos.h (assemble_align): Add prototype.
2295         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
2296         (gen_comapre_reg): Rename to arm_gen_compare_reg.
2297         (arm_return_addr_rtx): Rename to arm_return_addr.
2298
2299         * config/arm/arm.c: Include except.h.
2300         Define shorter typenames for strict minipool_node and struct
2301         minipool_fix.
2302         (arm_return_in_memory): For WinCE return all structures <= 32 bits
2303         in memory.
2304         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
2305         (gen_comapre_reg): Rename to arm_gen_compare_reg.
2306
2307         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
2308         already defined.
2309         (ASM_SPEC): Define if not already defined.
2310         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2311
2312         * config/arm/arm.md: Rename references to gen_rotated_half_load to
2313         arm_gen_rotated_half_load, and references to gen_comapre_reg to
2314         arm_gen_compare_reg.
2315         (indirect_jump):  Only accept register operands.
2316         (load_indirect_jump): Keep this pattern since combine can generate
2317         it.
2318
2319         * config/arm/coff.h: Include aout.h.
2320         (MULTILIB_DEFAULTS): Only define if not already defined.
2321
2322         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
2323         into arm.h (so that COFF ports can support thumb based aliases).
2324         (ASM_SPEC): Move definition into arm.h
2325
2326         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
2327         redundant apcs spec.
2328         (ASM_SPEC): Move definition to arm.h
2329
2330         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
2331
2332         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
2333         for entries in the .bss section
2334
2335         2000-03-23  Nick Clifton  <nickc@cygnus.com>
2336
2337         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
2338         to thumb_far_jump_used_p.
2339
2340         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
2341         single integer parameter.
2342
2343         * config/arm/arm.c (struct machine_function): Add two new
2344         fields, 'far_jump_used' and 'arg_pointer_live'.
2345         (thumb_far_jump_used_p): Once the decision has been made that
2346         far jumps might be used, always return true.
2347         If being called from the initial elimination offset macro then
2348         do not bother to perform the test if the arg pointer is not
2349         being used.
2350         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
2351         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
2352
2353         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
2354
2355         * arm.c (output_return_instruction): Handle more cases where we can
2356         return from a function with an ldr instruction.
2357         (arm_output_epilogue): Likewise.
2358
2359         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
2360         if we need to push a large stack frame and there are no callee-saved
2361         registers.
2362
2363         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
2364         in ARM code if the frame pointer has been eliminated.
2365
2366         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
2367         unspec_volatile arguments to avoid duplicates.
2368         (consttable_1, consttable_2): Fixes for big-endian mode.
2369
2370         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
2371         as appropriate.
2372
2373         Re-write constant pool code.
2374         * arm.c (minipool_node, minipool_fix): New types.
2375         (minifix): Delete type.
2376         (arm_add_minipool_constant): Delete.
2377         (arm_compute_minipool_offsets, arm_find_barrier,
2378         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
2379         (get_jump_table_size): Now returns HOST_WIDE_INT.
2380         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
2381         functions.
2382         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
2383         (assign_minipool_offsets, arm_print_value): Likewise.
2384         (dump_minipool): Rewrite.
2385         (arm_barrier_cost): New function.
2386         (create_fix_barrier): New function.
2387         (push_minipool_barrier): New function.
2388         (push_minipool_fix): Record additional information about the fixup
2389         required.
2390         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
2391         check the mode of what needs fixing.
2392         (arm_reorg): Rewrite.
2393
2394         2000-03-08  Nick Clifton  <nickc@cygnus.com>
2395
2396         * config/arm/arm.md (indirect_jump): Force constant addresses into
2397         a register.
2398
2399         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
2400
2401         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
2402
2403         2000-02-24  Nick Clifton  <nickc@cygnus.com>
2404
2405         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
2406         adjust is word aligned.
2407         (thumb_expand_epilogue): Make sure that stack adjust is word
2408         aligned.
2409
2410         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
2411
2412         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
2413
2414         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
2415         pointer relative addresses.
2416
2417         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
2418
2419         * arm.c (find_barrier): Find the last barrier within the allowed
2420         range.
2421
2422         2000-02-09  Nick Clifton  <nickc@cygnus.com>
2423
2424         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
2425
2426         2000-02-09  Nick Clifton  <nickc@cygnus.com>
2427
2428         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
2429         ARM_FUNCTION_PROFILER.
2430
2431         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
2432         ARM_FUNCTION_PROFILER.
2433
2434         * config/arm/linux-oldld.h: Imported from mainline sources.
2435
2436         2000-02-07  Nick Clifton  <nickc@cygnus.com>
2437
2438         * config/arm/lib1funcs.asm: Merge in thumb functions from
2439         lib1thumb.asm.
2440
2441         * config/arm/lib1thumb.asm: Delete.
2442
2443         2000-02-04  Nick Clifton  <nickc@cygnus.com>
2444
2445         * config/arm/arm.c: Sychronised with current Red hat local
2446         sources.
2447         * config/arm/arm.h: Ditto.
2448         * config/arm/arm-protos.h: Ditto.
2449
2450         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
2451
2452         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
2453
2454         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
2455         byte stores.
2456
2457         2000-02-02  Nick Clifton  <nickc@cygnus.com>
2458
2459         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
2460
2461         * config/arm/arm.md (epilogue): Fix rtl checking abort because
2462         (return) was emited using an emit_insn() call.
2463
2464         2000-01-31  Nick Clifton  <nickc@cygnus.com>
2465
2466         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
2467         thumb stack frame.
2468         (thumb_exit): Move frame pointer back into hard frame pointer
2469         register if backtracing is being used.
2470
2471         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
2472
2473         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
2474         into branch.
2475
2476         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
2477
2478         * config/arm/arm.md (neg_pool_offset): Provide default for new
2479         attribute.
2480         (arm_movsi_insn): Add neg_pool_offset attribute.
2481         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
2482         rtx for the insn that starts the scan and an unsigned long for its
2483         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
2484         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
2485         instructions in *PINSERTED.
2486         (struct minipool_fixup): Add MIN_ADDRESS elt.
2487         (sort_fixups): Compute it.
2488         (arm_reorg): Changes to support inserting pools before the insn to be
2489         fixed up.
2490
2491         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
2492
2493         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
2494         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
2495         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
2496
2497         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
2498
2499         * config/arm/semi.h (TARGET_VERSION): Do not define if already
2500         defined.
2501         (TARGET_DEFAULT): Do not define if already defined.
2502
2503         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
2504
2505         * config/arm/arm.md (anddi3): Allow disjoint source operands.
2506         (iordi3): Allow disjoint source operands.
2507         (xordi3): Allow disjoint source operands.
2508         (negdi2): Permit construction for ARM and Thumb.
2509         (arm_negdi2): Renamed version of old negdi2 pattern.
2510         (thumb_negdi2): New pattern: Only permit non-overlapping
2511         source and destination.
2512
2513         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
2514
2515         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
2516         scratch low register so that it will not be deleted.
2517
2518         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
2519
2520         * config/arm/pe.h (ARM_PE): Define.
2521
2522         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
2523         interfacearm attribute if this is a PE toolchain.
2524         (output_return_instruction): Do not emit anything if the function
2525         has the naked attribute set.
2526         (is_called_in_ARM_mode): If the function has the interfacearm
2527         attribute then return true.
2528         (thumb_expand_prologue): Do not generate a prologue for naked
2529         functions.
2530         (thumb_expand_epilogue): Do not generate an epilogie for a naked
2531         function.
2532         (output_thumb_prologue): Do not bother if the function is naked.
2533         Strip PE encoding from function name before emitting.
2534
2535         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
2536
2537         * arm.md (pic_load_addr): Fix constraints.
2538
2539         * arm.md (casesi_insn): Fix mis-applied patch.
2540
2541         * arm.md ("core" function unit): Add rules for single- and
2542         multi-cycle insns.
2543         (All TARGET_THUMB patterns): Add "type" attribute information
2544         where needed.
2545         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
2546         the following insn is a CALL.
2547
2548         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
2549         pointer.
2550         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
2551         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
2552         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
2553
2554         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
2555
2556         * config/arm/linux-gas.h: oops - this file was missed out when the
2557         branch was created...
2558
2559         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
2560
2561         * thumb.c: Deleted.  Move contents to ...
2562         * arm.c: ... here.
2563         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
2564         rule for thumb.o
2565         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
2566         * configure: Regen.
2567
2568         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
2569         declare a prototype for asm_output_align();
2570
2571         * arm.c (thumb_condition_code): Delete.
2572         (arm_print_operand): Always use arm_condition_code array.
2573
2574         * arm.c (thumb_return_addr_rtx): Delete.
2575         (arm_save_machine_status, arm_restore_machine_status): Delete.
2576         (arm_init_machine_status, arm_mark_machine_status): New functions.
2577         (arm_init_expanders): Update accordingly.
2578         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
2579         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
2580         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
2581
2582         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
2583
2584         * configure.in : Fix arm-*-aout target to use new t-arm-aout
2585         script.
2586         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
2587         targets.
2588
2589         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
2590
2591         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
2592         stack backtrace structure.
2593
2594         * config/arm/arm-protos.h: Add prototypes for functions defined in
2595         arm/pe.h.
2596
2597         * config/arm/arm.c (arm_override_options): Fix selection of
2598         attributes of default processor.
2599
2600         * config/arm/coff.h: Delete needless #include.
2601
2602         * config/arm/pe.c: Delete unused code.
2603
2604         * config/arm/pe.h (CPP_DEFINES): Delete
2605         (SUBTARGET_CPP_SPEC): Define.
2606         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
2607
2608         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
2609
2610         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
2611
2612         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
2613         updated.
2614         (CAN_DEBUG_WITHOUT_FP): Define.
2615         (FIXED_REGISTERS): Make r11 call-saved.
2616         (CALL_USED_REGISTERS): Likewise.
2617         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
2618         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
2619         frame-pointer is required.
2620         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
2621         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
2622         if the target normally needs a stack frame in non-leaf functions.
2623         (use_return_insn): Correct logic for determining when a return
2624         instruction can be used.
2625         (output_return_instruction): Handle the frame-pointer register as
2626         a normal register when not TARGET_APCS_FRAME.
2627         (arm_output_prologue): Likewise.
2628         (arm_output_epilogue): Likewise.
2629         (output_func_epilogue): Likewise.
2630         (arm_expand_prologue): Likewise.
2631         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
2632
2633         * arm.c (use_return_insn): No need to check floating point regs if
2634         TARGET_SOFT_FLOAT.
2635         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
2636         the code of value stored in the minipool array.
2637         (arm_add_minipool_constant): Likewise.
2638
2639 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2640
2641         * basic-block.h (conflict_graph_enum_fn): K&R fix.
2642
2643 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2644
2645         * tree.c (tree_expr_nonnegative_p): New function.
2646
2647         * tree.h (tree_expr_nonnegative_p): Declare.
2648
2649         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
2650         elide some sign_compare warnings.
2651         (build_conditional_expr): Likewise.
2652
2653 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
2654
2655         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
2656
2657         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
2658         * i386.c (print_operand): Use the proper suffix for a 387 HImode
2659         operand.  Abort if a 387 operand has an unsupported size.
2660
2661 2000-04-08  Neil Booth  <NeilB@earthling.net>
2662
2663         * cppexp.c (parse_charconst): Null does not end character
2664         constants.
2665         * cppinit.c (ISTABLE): Null character handled as whitespace.
2666         * cpplex.c (null_warning):  new function.
2667         (skip_string): Emit warning if nulls encountered.
2668         (_cpp_skip_hspace): Emit warning if nulls encountered.
2669         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
2670         them.
2671         * cpp.texi: Update.
2672
2673 2000-04-07  Richard Henderson  <rth@cygnus.com>
2674
2675         * flow.c (loop_depth): Remove.
2676         (reg_next_use, cc0_live, mem_set_list): Replace with ...
2677         (struct propagate_block_info): New.
2678         (life_analysis): Don't allocate reg_next_use.
2679         (propagate_block_delete_insn): Break out of propagate_block.
2680         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
2681         (propagate_block_delete_libcall): Likewise.
2682         (propagate_block): Create a propagate_block_info struct to pass
2683         to subroutines.  Allocate one not two temporary regsets.  Don't
2684         clobber memory for const calls.  Look for clobbers in
2685         CALL_INSN_FUNCTION_USAGE.
2686         (mark_set_regs): Recognize COND_EXEC.
2687         (mark_set_reg): Break out of mark_set_1.
2688         (mark_used_reg): Break out of mark_used_regs.
2689         (mark_used_regs): Recognize COND_EXEC.
2690         (insn_dead_p): Use propagate_block_info struct.
2691         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
2692         (find_auto_inc, try_pre_increment_1): Likewise.
2693         (print_rtl_with_bb): Dump regs live at end too.
2694         (count_reg_sets_1): Pass in loop_depth.
2695         (count_reg_sets, count_reg_references): Likewise.
2696         (recompute_reg_usage): Provide it.
2697
2698 2000-04-07  Richard Henderson  <rth@cygnus.com>
2699
2700         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
2701         not the raw files.
2702
2703 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
2704
2705         * cpplib.c (do_elif): Skip the rest of the line if we're
2706         not going to bother evaluating it.
2707         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
2708         to avoid pointless calls to the lexer.
2709
2710 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
2711
2712         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
2713
2714 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
2715
2716         * calls.c (expand_call): emit_queue if we're trying a sibcall.
2717
2718 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
2719
2720         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
2721
2722 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
2723
2724         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
2725         crtend so they can be multilibbed.
2726         (STAGESTUFF): Remove s-crt and s-crtS.
2727
2728 2000-04-07  Richard Henderson  <rth@cygnus.com>
2729
2730         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
2731         if we discover we need a pseudo and no_new_pseudos is true.
2732         * config/alpha/alpha.md (ne:DI insn): New.
2733         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
2734
2735 2000-04-07  Richard Henderson  <rth@cygnus.com>
2736
2737         * rtl.def (COND_EXEC): New.
2738         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
2739         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
2740
2741         * genconfig.c (have_cond_arith_flag): Remove.
2742         (have_cond_exec_flag): New.
2743         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
2744         (main): Print HAVE_conditional_execution.
2745
2746         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
2747         (sched_analyze_insn, print_pattern): Likewise.
2748         * reload.c (find_equiv_reg): Likewise.
2749         * rtlanal.c (reg_referenced_p): Likewise.
2750         (note_stores, dead_or_set_regno_p): Likewise.
2751         (reg_overlap_mentioned_p): Rewrite to use a switch.
2752
2753         * ggc.h (struct rtx_def): Forward declare.
2754
2755         * print-rtl.c (debug_rtx_range): New.
2756         * rtl.h (debug_rtx_range): Declare.
2757
2758         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
2759
2760         * gcse.c (gcse_main): Don't rebuild the CFG here.
2761         (delete_null_pointer_checks): Likewise.
2762         * ssa.c (convert_to_ssa): Likewise.
2763         * toplev.c (rest_of_compilation): Do it here instead.  Combine
2764         sequential calls to TIMEVAR.  Consistently use `insns' instead of
2765         `get_insns()'.  Always split insns after reload when optimizing.
2766
2767         * basic-block.h (merge_blocks_nomove): Declare.
2768         (tidy_fallthru_edge): Declare.
2769         * flow.c (merge_blocks_nomove): Document as merging into previous
2770         blocks.  Remove cruft from between blocks; remove all edges out of A.
2771         (tidy_fallthru_edge): Export.
2772
2773 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
2774
2775         * ssa.c (compute_conservative_reg_partition): Declare with
2776         void arguments.
2777         * toplev.c (clean_dump_file): Remove previously-deleted function
2778         inadvertantly merged back in.
2779         * conflict.c (conflict_graph_add): Use a single call to
2780         htab_find_slot to look up and insert.
2781
2782 2000-04-06  Richard Henderson  <rth@cygnus.com>
2783
2784         * genrecog.c (*): Rename _last_insn to last_insn.
2785         (make_insn_sequence): Set the position of the peephole2 C test
2786         to be at the last insn.
2787
2788 2000-04-06  Richard Henderson  <rth@cygnus.com>
2789
2790         * flow.c (compute_flow_dominators): Free worklist.
2791
2792 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
2793
2794         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
2795
2796 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
2797
2798         * rtl.h (INSN_P): New macro.
2799         (successor_phi_fn): New typedef.
2800         (for_each_successor_phi): New prototype.
2801         (in_ssa_form): New variable.
2802         (PHI_NODE_P): Likewise.
2803         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
2804         phi nodes in successors.
2805         (mark_used_regs): Add PHI case.
2806         (set_phi_alternative_reg): New function.
2807         (life_analysis): Assert that dead code elimination is not selected
2808         when in SSA form.
2809         * toplev.c (to_ssa_time): New variable.
2810         (from_ssa_time): Likewise.
2811         (compile_file): Zero to_ssa_time and from_ssa_time.
2812         Print time to convert to and from SSA.
2813         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
2814         (print_time): Compute percent fraction as integer.
2815         * ssa.c (PHI_NODE_P): Moved to rtl.h.
2816         (convert_to_ssa): Check if we're already in SSA.
2817         Don't eliminate dead code in life_analysis.
2818         Rerun flow and life analysis at bottom.
2819         (eliminate_phi): Use canonical regnos when adding nodes.
2820         (mark_reg_in_phi): New function.
2821         (mark_phi_and_copy_regs): Likewise.
2822         (convert_from_ssa): Rerun life analysis at top.
2823         Use coalesced partition.
2824         Check for removing a phi node at the end of the block.
2825         (compute_coalesced_reg_partition): New function.
2826         (coalesce_regs_in_copies): Likewise.
2827         (coalesce_reg_in_phi): Likewise.
2828         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
2829         (for_each_successor_phi): Likewise.
2830         (rename_context): New struct.
2831         (rename_block): Use a rename_context with rename_insn_1.  When
2832         renaming sets of a subreg, emit a copy of the entire reg first.
2833         (rename_insn_1): Treat data as a rename_context *.  Save current
2834         insn in set_data.
2835         (rename_set_data): Add field set_insn.
2836         * Makefile.in (HASHTAB_H): Move up in file.
2837         (OBSTACK_H): New macro.
2838         (collect2.o): Use OBSTACK_H in dependencies.
2839         (sdbout.o): Likewise.
2840         (emit-rtl.o): Likewise.
2841         (simplify-rtx.o): Likewise.
2842         (fix-header.o): Likewise.
2843         (OBJS): Add conflict.o.
2844         (conflict.o): New rule.
2845         * basic-block.h: Include partition.h.
2846         (conflict_graph): New typedef.
2847         (conflict_graph_enum_fn): Likewise.
2848         (conflict_graph_new): New prototype.
2849         (conflict_graph_delete): Likewise.
2850         (conflict_graph_add): Likewise.
2851         (conflict_graph_conflict_p): Likewise.
2852         (conflict_graph_enum): Likewise.
2853         (conflict_graph_merge_regs): Likewise.
2854         (conflict_graph_print): Likewise.
2855         (conflict_graph_compute): Likewise.
2856         * conflict.c: New file.
2857
2858 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
2859
2860         * tlink.c (read_repo_files): Don't look for .rpo info for
2861         linker flags.
2862
2863 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2864
2865         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
2866
2867 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2868
2869         * config/sh/lib1funcs.asm (___udivsi3_i4):
2870         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
2871         only depends on FMOVD_WORKS.
2872
2873 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2874
2875         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
2876         make double constant 8-byte aligned.
2877
2878 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
2879
2880         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
2881         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
2882         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
2883         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
2884         Accept storing GENERAL_REGS into offsetable memory.
2885         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
2886         building a TFmode constant other than 0.0L into GENERAL_REGS.
2887
2888 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
2889
2890         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
2891
2892 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
2893
2894         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
2895         (macro_cleanup): No need to cast pbuf->macro.
2896         (collect_expansion): Use _cpp_get_define_token.  Goto done if
2897         it returns VSPACE.  Remove check for trailing space after
2898         CPP_COMMENT.
2899         (_cpp_create_definition): Don't diddle flags here.  Return
2900         directly on error.
2901         (unsafe_chars): Handle c1 being EOF.
2902         (push_macro_expansion): Use unsafe_chars for both accidental-paste
2903         checks.  Don't push the buffer till after we're done with
2904         them.
2905         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
2906         (PEEKN, FORWARD, GETC, PEEKC): Use them.
2907         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
2908         appropriately.
2909         (_cpp_parse_assertion): Don't NUL terminate.
2910         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
2911         hspace before calling _cpp_parse_assertion.  Remove all sets
2912         of only_seen_white. Treat '\f' as hspace.  Don't do anything
2913         special with '\n' here.
2914         (maybe_macroexpand): Handle T_EMPTY hash entries without
2915         pushing a buffer at all.
2916         (cpp_get_token): Handle clearing only_seen_white here.  Handle
2917         incrementing the line number here.  Clear
2918         potential_control_macro as well as only_seen_white, if
2919         appropriate.
2920         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
2921         (_cpp_get_define_token): New function, basically like
2922         _cpp_get_directive_token was but doesn't eat horizontal space.
2923         Don't do anything with only_seen_white here.
2924         (_cpp_get_directive_token): Just call _cpp_get_define_token
2925         repeatedly till it returns non-hspace.
2926
2927         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
2928         (conditional_skip, skip_if_group): Return int.
2929         (DIRECTIVE_TABLE): Change origin of all conditional directives
2930         to "COND".
2931         (TRAD_DIRECT_P): New macro.
2932         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
2933         an error for a bogus directive, unless -lang-asm.  Use
2934         TRAD_DIRECT_P. Loop calling handler functions till one returns
2935         zero.
2936         (get_macro_name): Don't diddle flags here.
2937         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
2938         Create T_EMPTY nodes for #define macro /* nothing */.
2939         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
2940         Use hp->name when calling pass_thru_directive.
2941         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
2942         Return the result of conditional_skip and/or skip_if_group.
2943         Don't call _cpp_output_line_command.
2944         (consider_directive_while_skipping): Use _cpp_get_directive_token.
2945         Issue -Wtraditional warnings as appropriate.  Don't complain
2946         about unrecognized directives.  If we are to stop skipping,
2947         return the number of the directive that ended the skip.
2948         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
2949         expansion and line commands while skipping.  Return the result
2950         of consider_directive_while_skipping, if nonzero.
2951         (do_endif): Just set potential_control_macro here.
2952         (validate_else): Use _cpp_get_directive_token.
2953         (do_assert, do_unassert): Don't save pointers into the
2954         token_buffer across calls to the lexer.  Use
2955         _cpp_get_directive_token.
2956
2957         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
2958         pointer, not an offset.  Replace 'data', which was a generic
2959         pointer, with 'macro', which points to a struct hashnode.
2960         (cpp_reader): Add 'potential_control_macro' pointer.
2961         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
2962         (CPP_BUF_GET, CPP_FORWARD): Delete.
2963         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
2964         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
2965         ACTIVE_MARK_P): Update.
2966         (_cpp_get_define_token): New internal function.
2967         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
2968
2969 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
2970
2971         * configure.in: And here.
2972         * configure: Regenerate.
2973         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
2974         --enable-libstdcxx-v3 is passed at configure time.
2975         * config.h.in: Regenerate.
2976
2977 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
2978
2979         * final.c (final): Use xcalloc to allocate line_note_exists.
2980         * function.c (free_after_compilation): Free the temp_slots.
2981         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
2982         (combine_temp_slot): Free temp_slots when they get combined.
2983         (purge_addressof): Fix typo in comment.
2984         * stmt.c (mark_goto_fixup): Mark the fixup itself.
2985         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
2986
2987         * ggc.h: Include varray.h.
2988         (ggc_pending_trees): Declare.
2989         (ggc_mark_tree_children): Remove declaration.
2990         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
2991         * ggc-common.c (ggc_pending_trees): New variable.
2992         (ggc_mark_roots): Call ggc_mark_trees.
2993         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
2994         the ggc_pending_trees.
2995         * Makefile.in (GGC_H): New variable.  Use it throughout in place
2996         of ggc.h.
2997
2998 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2999
3000         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
3001         GET_MODE_SIZE.
3002
3003 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3004
3005         * sh.c (sh_insn_length_adjustment): New function.
3006         * sh-protos.h (sh_insn_length_adjustment): Declare.
3007         * sh.h (ADJUST_INSN_LENGTH): Use it.
3008
3009 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
3010
3011         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
3012         from the insn where REG_RETVAL is added.
3013         (emit_no_conflict_block): Ditto.
3014
3015         * md.texi (Standard Names): Clarify when movX is needed.
3016
3017         * combine.c (simplify_comparison) [MINUS]: Do not replace
3018         all (op (minus A B) 0) with (op A B).
3019
3020 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
3021                           J"orn Rennecke <amylaar@cygnus.co.uk>
3022
3023         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
3024         (block_lump_real): Likewise.
3025
3026 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
3027
3028         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
3029         remaining non-zero debugging masks.
3030
3031 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
3032
3033         * basic-block.h (verify_flow_info): Declare.
3034         (flow_loop_outside_edge_p): Declare.
3035         * flow.c (verify_flow_info): Remove declaration.
3036         (clear_log_links, flow_loop_outside_edge_p): Likewise.
3037
3038 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
3039
3040         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
3041         not C++ comments.
3042
3043 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
3044
3045         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
3046         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
3047         seqdi_zero_trunc+1): Allow splits only if registers are
3048         different.
3049
3050 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
3051
3052         * acconfig.h: Add HAVE_GAS_HIDDEN.
3053         * config.in: Regenerated.
3054         * configure.in: Add test for .hidden pseudo-op in gas.
3055         * configure: Regenerated.
3056         * crtstuff.c: Include auto-host.h.
3057         Emit additional .hidden pseudo-op for __dso_handle if the
3058         assembler knows about it.
3059
3060 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
3061
3062         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
3063         before freeing argnames.
3064         * cpplib.c (do_ifndef): Cast return value of xstrdup.
3065
3066 2000-04-05  Michael Meissner  <meissner@redhat.com>
3067
3068         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
3069         Walton <jonboy@gordian.com> to make memory references with update
3070         work wtih -mregnames.
3071
3072 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3073
3074         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
3075         (regrename_optimize): Rename variables `def_uses' and
3076         `ext_basic_blocks' to avoid conflicts with similarly named
3077         typedefs in traditional C.
3078
3079         * calls.c (initialize_argument_information): Fix typo in previous
3080         change.
3081
3082 2000-04-04  Richard Henderson  <rth@cygnus.com>
3083
3084         * regrename.c (consider_available): Test fixed_regs not
3085         PIC_OFFSET_TABLE_REGNUM.
3086
3087 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
3088
3089         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
3090         crtend.
3091         (CRTSTUFF_T_CFLAGS_S): Delete definition.
3092         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
3093         (ENDFILE_LINUX_SPEC): Always use crtend.
3094         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
3095         (powerpc-*-linux-gnu): Likewise.
3096         * configure: Regenerate.
3097
3098         * config/rs6000/eabi.h: Don't include sysv4.h.
3099         (MULTILIB_DEFAULTS): Don't define.
3100         * config/rs6000/eabiaix.h: Don't include eabi.h.
3101         * config/rs6000/eabile.h: Delete.
3102         * config/rs6000/eabilesim.h: Delete.
3103         * config/rs6000/eabisim.h: Don't include eabi.h.
3104         * config/rs6000/linux.h: Don't include sysv4.h.
3105         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
3106         (MULTILIB_DEFAULTS): Don't redefine.
3107         * config/rs6000/rtems.h: Don't include eabi.h.
3108         * config/rs6000/sol2.h: Don't include sysv4le.h.
3109         * config/rs6000/sysv4le.h: Don't include sysv4.h.
3110         * config/rs6000/t-ppc: Delete.
3111         * config/rs6000/t-ppcgas: Correct comment.
3112         * config/rs6000/t-ppcos: Correct comment.  Don't build
3113         multilibs for -fPIC, rather use -fPIC -mstrict-align
3114         as default.
3115         * config/rs6000/t-ppc: Delete.
3116         * config/rs6000/vxppc.h: Don't include sysv4.h.
3117         * config/rs6000/vxppcle.h: Delete.
3118         * configure.in: Use multiple header files for p2pc ELF targets
3119         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
3120         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
3121         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
3122         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
3123         always available for these platforms.
3124
3125 2000-04-04  Richard Henderson  <rth@cygnus.com>
3126
3127         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
3128
3129 2000-04-04  Stan Cox  <scox@cygnus.com>
3130
3131         * Makefile.in: Add rules for regrename.o
3132         * regrename.c: New file.
3133         * rtl.h (regrename_optimize): Add prototype.
3134         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
3135         (compile_file, decode_d_option): Add support for -frename-registers.
3136         (rest_of_compilation): Call regrename_optimize.
3137         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
3138         New macros.
3139
3140 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3141
3142         * Makefile (gccbug): New target.
3143         (doc): Depend on it.
3144         * gcc.texi (Bugs): Link subnodes.
3145         (gccbug): New node.
3146         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
3147         Document severities, priorities, and classes in bug form.
3148
3149 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
3150
3151         * cpplex.c (trigraph_map, speccase): Combine into single
3152         table, chartab.
3153         (NORMAL, NONTRI): New macros.
3154         (_cpp_read_and_prescan): Change to use unified table.  Use
3155         is_hspace to test for whitespace.
3156
3157         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
3158         definition that doesn't provoke the "empty body in an
3159         if-statement" warning.
3160
3161 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
3162
3163         * builtins.c (expand_builtin_strlen): Force the source to
3164         be a memory address.
3165
3166 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3167
3168         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
3169
3170 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3171
3172         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
3173          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
3174         (ECF_IS_CONST): Rename to ECF_CONST.
3175         (special_function_p): Make static, change interface.
3176         (flags_from_decl_or_type, try_to_integrate): Break out from ...
3177         (expand_call) ... here; convert number of variables to flags.
3178         (emit_library_call_vlue_1): Likewise.
3179         (setjmp_call_p): New function.
3180         (initialize_argument_information): Accepts flags as argument;
3181         return flags.
3182         (precompute_arguments): Likewise.
3183         * tree.h (special_function_p): Remove.
3184         (setjmp_call_p): Add prototype.
3185
3186 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
3187
3188         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
3189         so that addresses are offsetable by up to 16 bytes.
3190         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
3191         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
3192         offsetable.
3193
3194         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
3195         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
3196         (movsf): Don't force any constant to memory if target is integer
3197         hard register.
3198         Move fp_zero_operand check below the const0_rtx check.
3199         (movtf): Likewise. Also allow fp_zero_operand for stores into
3200         memory.
3201         (movdf): Likewise. Also allow fp_zero_operand for stores into
3202         memory and into integer hard registers.
3203         (clear_df, clear_dfp, movdf_const_intreg_sp32,
3204         movdf_const_intreg_sp64): Remove.
3205         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
3206         conditions.
3207         (movdf_no_e_insn_v9_sp32): New pattern.
3208         (movdf_insn_v9only): Remove.
3209         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
3210         (movdf_insn_sp64): Remove.
3211         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
3212         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
3213         (following splits): Rewrite conditions. Add two new splits
3214         for storing 0.0 into memory and registers.
3215         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
3216         (movtf_insn_sp32): Redo constraints and conditions.
3217         (movtf_insn_vis_sp32): New pattern.
3218         (movtf_no_e_insn_sp32): Redo constraints and conditions.
3219         (movtf_insn_hq_sp64): Likewise.
3220         (movtf_insn_hq_vis_sp64): New pattern.
3221         (movtf_insn_sp64): Redo constraints and conditions.
3222         (movtf_insn_vis_sp64): New pattern.
3223         (movtf_no_e_insn_sp64): Redo constraints and conditions.
3224         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
3225         or memory.
3226         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
3227         -mvis or -m64 to take down the number of various reload patterns.
3228
3229 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
3230
3231         * pa/pa-64.h: New file.
3232         * pa/pa64-regs.h: New file.
3233         * pa/pa64-start.h: New file.
3234         * pa/t-pa64: New file.
3235         * pa/xm-pa64hpux.h: New file.
3236
3237 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3238
3239         * sparc.c (output_restore_regs): Prototype.
3240         (sparc_emit_float_lib_cmp): Constification.
3241
3242         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
3243
3244         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
3245         Prototype.
3246
3247         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
3248         (get_value_hash, hash_rtx): Likewise.
3249
3250         * ssa.c (compute_conservative_reg_partition): Prototype.
3251
3252         * tree.c (mark_hash_entry): Prototype.
3253
3254 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
3255
3256         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
3257         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
3258         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
3259
3260         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
3261         * objc/lang-specs.h: Likewise.
3262
3263 2000-04-03  Neil Booth  <NeilB@earthling.net>
3264
3265         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
3266         and SYNTAX_ERROR2. Replace `' in messages with ''.
3267         (op_to_str): Make re-entrant.
3268         (_cpp_parse_expr): Implement new error macros. Use | rather
3269         than || to logically or 2 boolean integers.  Simply expression
3270         checking we have a left operand iff needed.
3271
3272 2000-04-03  Nick Clifton  <nickc@cygnus.com>
3273
3274         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
3275
3276 2000-04-03  Philip Blundell  <philb@gnu.org>
3277
3278         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
3279
3280 2000-04-03  Felix Lee  <flee@cygnus.com>
3281
3282         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
3283         (run_shell): Use it.
3284
3285 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
3286
3287         * Makefile.in (stmp-int-hdrs): Make include subdir here...
3288         (stmp-fixproto): ...rather than here.
3289
3290 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
3291
3292         * pa.c (print_operand): Compute 'base' only inside the code paths
3293         that use it.
3294
3295 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
3296
3297         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
3298         CEIL_DIV_EXPR.
3299
3300 2000-04-03  Philipp Thomas  <pthomas@suse.de>
3301
3302         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
3303
3304 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
3305
3306         * Makefile.in (alias.o): Depend on $(TREE_H).
3307
3308 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
3309
3310         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
3311         processing C++.
3312         * cpplib.c (_cpp_handle_directive): Improve warnings for
3313         traditional C and indented directives.
3314
3315         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
3316         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
3317         fixinc/inclhack.def: Indent the # of #include_next one space.
3318         * cp/rtti.c: Un-indent #if and #endif.
3319
3320         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
3321         syntax error, but an error has already been printed.
3322         * cpplex.c (_cpp_parse_assertion): Give a more specific error
3323         message when called with nothing remaining on the line.
3324         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
3325         OTHER token, not an ASSERTION.
3326         * cpplib.c (do_assert): When we create a 'base' node, clear
3327         its aschain pointer.
3328
3329 2000-04-02  Neil Booth <NeilB@earthling.net>
3330
3331         * cppexp.c:  New typedef op_t.  struct operation and struct
3332         token updated to use it.
3333         (op_to_str): New function.
3334         (_cpp_parse_expr): Error messages modified to use op_to_str.
3335
3336 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3337
3338         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
3339         before checking MUST_PASS_IN_STACK.
3340
3341 2000-04-02  Neil Booth <NeilB@earthling.net>
3342
3343         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
3344         flags and initial priority into a single constant.  New
3345         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
3346         (_parse_cpp_expr): Implement new constants.  Take left operand
3347         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
3348         parse indicated by reducing FINISHED token.  Remove new lines
3349         from cpp_error messages.
3350
3351 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
3352
3353         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
3354         permanent obstack.
3355
3356 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
3357
3358         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
3359         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
3360         the strings and function names on the fly.  Take the #sccs
3361         entry out of the table if SCCS_DIRECTIVE is not defined.
3362         (_cpp_handle_directive): Decide if the # was at the beginning
3363         of the line here.  Issue -pedantic warnings for extended
3364         directives here.  Warn about K+R directives with the #
3365         indented, and C89/extended directives with the # not indented,
3366         here.
3367         (do_import, do_include_next, do_warning, do_ident, do_sccs,
3368         do_assert, do_unassert): Don't issue pedantic warning here.
3369
3370         * cpphash.h: Add CPP_WTRADITIONAL macro.
3371         * cpplib.h (struct cpp_options): Rename warn_stringify to
3372         warn_traditional; update comments.
3373         * cppinit.c (handle_option): Set warn_traditional not
3374         warn_stringify.
3375         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
3376         CPP_WTRADITIONAL (pfile).
3377         * cpplex.c (_cpp_lex_token): Don't decide if directives should
3378         be ignored in -traditional mode here.
3379
3380         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
3381         to initialize speccase[] and trigraph_map[].  Delete all
3382         references to pfile->input_speccase.  Always treat '?' as a
3383         special character.  Remove table-initialization code from
3384         _cpp_init_input_buffer.
3385
3386         * cpplib.h (struct cpp_reader): Remove input_speccase field.
3387         * cppinit.c (cpp_cleanup): Don't free input_speccase.
3388
3389 2000-04-01  Richard Henderson  <rth@cygnus.com>
3390
3391         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
3392         (mostlyclean): Likewise.
3393
3394         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
3395         (struct dump_file_info, enum dump_file_index, dump_file): New.
3396         (open_dump_file): Take a dump_file_index not a suffix, and a decl
3397         not a string.  Clean out file if we havn't yet done so.  Do nothing
3398         if the dump isn't enabled.
3399         (close_dump_file): Do nothing if the dump isn't open.  Dump
3400         graph data if requested.
3401         (dump_rtl, clean_dump_file): Remove.
3402         (compile_file): Don't clean the dump files.  Only finalize .bp dump
3403         if flag_test_coverage or flag_branch_probabilities.  Only finalize
3404         .combine dump if optimizing.  Iterate over dump_file to finalize the
3405         graph dumps.
3406         (rest_of_compilation): Update for open_dump_file/close_dump_file.
3407         Convert all uses of dump_rtl.
3408         (decode_d_option): Iterate over dump_file to implement 'a' and to
3409         locate pass-specific dumps.
3410
3411 2000-04-01  Neil Booth <NeilB@earthling.net>
3412
3413         * cppexp.c: Redefine priority constants.
3414         (_cpp_parse_expr): Replace left and right priority scheme with
3415         single priority logic.  Move LOGICAL to same place as COMPARE.
3416         Remove bogus check for multiple unary +/- operators.
3417
3418 2000-04-01  Neil Booth <NeilB@earthling.net>
3419
3420         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
3421         within the switch statement.  Binary operations break out of
3422         the switch naturally.  '(' tokens handled by forcing
3423         immediate shift.  ')' handled by forcing immediate reduce to
3424         the previous '('.  New error messages.
3425
3426 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
3427
3428         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
3429         part', it's already in use.  Use %K instead.  Add a return at the
3430         end of what is now %K.
3431         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
3432
3433 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3434
3435         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
3436         allocate_dynamic_stack_space.
3437         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
3438         update stack_pointer_delta; do not update arg_size_so_far.
3439         (compute_argument_block_size): Use stack_delta instead of
3440         stack_pointer_pending and arg_size_so_far.
3441         (expand_call): Add sanity checking for stack_pointer_delta;
3442         save and restore stack_pointer_delta for SIB, use
3443         stack_pointer_delta for alignment; do not update arg_space_so_far.
3444         (emit_library_call_value): Use stack_pointer_delta for alignment.
3445         (store_one_arg): Do not update arg_space_so_far.
3446         * explow.c (adjust_stack, anti_adjust_stack): Update
3447         stack_pointer_delta.
3448         (allocate_dynamic_stack_space): Add sanity checking for
3449         stack_pointer_delta.
3450         * expr.c (init_expr, clear_pending_stack_adjust): Clear
3451         stack_pointer_delta.
3452         (emit_push_insn): Update stack_pointer_delta.
3453         * function.h (struct expr_status): Add x_stack_pointer_delta;
3454         remove x_arg_space_so_far.
3455         (arg_space_so_far): Remove.
3456         (stack_pointer_delta): New macro.
3457
3458 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
3459
3460         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
3461         Reorder struct cpp_options and struct cpp_reader for better
3462         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
3463         takes two args.  Change all 'char' flags to 'unsigned char'.
3464         Move show_column flag into struct cpp_options.  Don't
3465         prototype cpp_options_init.
3466         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
3467         cppinit.c, cpplex.c, cpplib.c:
3468         Replace CPP_OPTIONS (pfile)->whatever with
3469         CPP_OPTION (pfile, whatever), and likewise for
3470         opts = CPP_OPTIONS (pfile); ... opts->whatever;
3471
3472         * cppinit.c (merge_include_chains): Take a cpp_reader *.
3473         Extract CPP_OPTION (pfile, pending) and work with that
3474         directly.
3475         (cpp_options_init): Delete.
3476         (cpp_reader_init): Turn on on-by-default options here.
3477         Allocate the pending structure here.
3478         (cl_options, enum opt_code): Define these from the same table,
3479         kept in a large macro.  Add -fshow-column and -fno-show-column
3480         options.
3481
3482         * cpperror.c (v_message): If show_column is off, don't print
3483         the column number.
3484
3485         * cppmain.c: Update for new interface.
3486         * fix-header.c: Likewise.
3487
3488 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
3489
3490         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
3491         definition.
3492         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
3493         are passed to any invocation of AR_FOR_TARGET.
3494         (AR_CREATE_FOR_TARGET): New macro.
3495         (AR_EXTRACT_FOR_TARGET): New macro.
3496         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
3497         AR_EXTRACT_FOR_TARGET.
3498         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
3499         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
3500         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
3501         AR_EXTRACT_FOR_TARGET to sub-makes.
3502
3503 2000-03-31  Neil Booth <NeilB@earthling.net>
3504
3505         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
3506         PAREN_INNER_PRIO.
3507         (_cpp_parse_expr): Check for multiple unary +/- operators.
3508         Correct priorities of ':' and '?'.  Treat ')' as having a
3509         value.  Ensure conditional expression is not void.
3510
3511 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
3512
3513         * alias.c (canon_rtx): Make it global.
3514         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
3515         equality.
3516         * cse.c (struct table_elt): Add canon_exp.
3517         (insert): Clear it.
3518         (invalidate): Canonicalize expressions only once.
3519         * rtl.h (canon_rtx): Declare.
3520
3521 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
3522
3523         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
3524         * alias.c (reg_known_value): Add comments.
3525         (init_alias_analysis): Likewise.
3526         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
3527         address.
3528         (cse_basic_block): Fix typo in comment.
3529         * emit-rtl.c: Include hashtab.h.
3530         (const_int_htab): New variable.
3531         (const_int_htab_hash): New function.
3532         (const_int_htab_eq): Likewise.
3533         (rtx_htab_mark_1): Likewise.
3534         (rtx_htab_mark): Likewise.
3535         (gen_rtx_CONST_INT): Cache all CONST_INTs.
3536         (unshare_all_rtx): Fix formatting.
3537         (init_emit_once): Initialize const_int_htab.
3538         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
3539         address.
3540         * rtl.texi: Document the fact that all CONST_INTs with the same
3541         value are shared.
3542
3543 2000-03-30  Richard Henderson  <rth@cygnus.com>
3544
3545         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
3546
3547 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
3548
3549         * configure.in: Comment out --enable-c-cpplib stanza.
3550         * configure: Regenerate.
3551
3552 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3553
3554         * expr.c (store_constructor): Properly compute displacement and
3555         alignment when offset is variable.
3556
3557         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
3558         cases of alignment in bytes.
3559
3560 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
3561
3562         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
3563         since it is used to generate c-parse.y.
3564         * objc-parse.c, objc-parse.y: Regenerated.
3565
3566         * function.c (expand_function_end): Pass alignment argument to
3567         emit_block_move in bits, not bytes.
3568
3569 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3570
3571         * expr.c (move_by_pieces_ninsns): Fix one more missing align
3572         correction.
3573
3574         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
3575
3576         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
3577         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
3578         * function.c (assign_parms): Likewise.
3579         * integrate.c (expand_inline_function): Likewise.
3580         * stmt.c (expand_decl): Likewise.
3581         (copy_rtx_and_substitute): Likewise.
3582         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
3583         (clear_by_pieces): Fix error in last change.
3584         * emit-rtl.c (init_emit): Set known registers alignment in bits.
3585         * function.h (regno_pointer_align): Now unsigned.
3586         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
3587         is in bits.
3588         * config/i386/i386.c (aligned_operand): Likewise.
3589         * config/sparc/sparc.c (mem_min_alignment): Likewise.
3590         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
3591         (unaligned_memory_operand): Likewise.
3592         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
3593         Also make alignments and sizes unsigned and some whitespace cleanup.
3594         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
3595
3596         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
3597         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
3598         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
3599         (expand_builtin_memset): Likewise, but to clear_storage.
3600         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
3601         (restore_fixed_argument_area): Likewise.
3602         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
3603         (load_register_parameters): Likewise, to emit_group_load.
3604         (expand_call): Likewise, to emit_group_store and emit_block_move.
3605         (emit_library_call_value_1): Likewise, to emit_block_move.
3606         (store_one_arg): Likewise, and to emit_push_insn.
3607         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
3608         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
3609         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
3610         (emit_block_move, emit_group_load, emit_group_store): Likewise.
3611         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
3612         (expand_assigment, store_expr, store_constructor_field): Likewise.
3613         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
3614         (store_constructor, store_field, get_inner_reference): Likewise.
3615         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
3616         (expand_expr, case COMPONENT_REF): Likewise.
3617         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
3618         and positions; reindent code.
3619         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
3620         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
3621         (assign_parms): Likewise to emit_group_store.
3622         * optabs.c (prepare_cmp_insn): Alignment is in bits.
3623         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
3624         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
3625         (expand_return): Likewise to {extract,store}_bit_field.
3626         * stor-layout.c (get_mode_alignment): Minor cleanup.
3627         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
3628         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
3629
3630 2000-03-29  Nick Clifton  <nickc@cygnus.com>
3631
3632         * config/arm/arm.h: Undo effects of previous delta:
3633         (ASM_SPEC): Do not define.
3634         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
3635
3636         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
3637         typo.
3638
3639 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
3640
3641         * cppinit.c (cpp_start_read): Call initialize_dependency_output
3642         only after reading in the primary source file.
3643
3644 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
3645
3646         * c-common.c (c_common_nodes_and_builtins): The first parameter to
3647         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
3648         or a reference to a va_list.
3649         * builtins.c (stabilize_va_list): Simplify now we don't have to
3650         work around C array address decay.
3651         * c-typeck.c (convert_for_assignment): Handle assignment to
3652         a reference parameter by taking the address of the RHS.
3653         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
3654         (va_copy): Likewise.
3655         (__va_copy): Likewise.
3656         * ginclude/varargs.h (va_start): Likewise.
3657         (__va_copy): Likewise.
3658
3659 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
3660
3661         * i386/djgpp.h: Remove extraneous "+".
3662
3663         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
3664
3665         * calls.c (expand_call): Fix typo in last change.
3666
3667 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
3668
3669         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
3670         been expanded.
3671
3672 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3673
3674         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
3675         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
3676         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
3677         * tree.c (bit_position, byte_position): Likewise.
3678         * tree.h: Declare new functions.
3679
3680 2000-03-29  Nick Clifton  <nickc@cygnus.com>
3681
3682         * config/arm/arm.c: Minor formatting changes/
3683         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
3684         already defined.
3685         (ASM_SPEC): Define if not already defined.
3686
3687 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
3688
3689         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
3690         _cpp_calc_hash.
3691
3692 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
3693
3694         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
3695         value, don't output it as unsigned.
3696
3697 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
3698
3699         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
3700
3701 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3702
3703         * c-common.c (c_common_nodes_and_builtins): Don't special case
3704         cplus_mode when declaring builtin bzero/bcmp, always avoid
3705         prototype arguments.
3706
3707 2000-03-29  Bruce Korb  <bkorb@gnu.org>
3708
3709         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
3710         to a non-file
3711
3712 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3713
3714         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
3715         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
3716         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
3717         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
3718         (save_fixed_argument_area, restore_fixed_argument_area):
3719         conditionize by #ifdef REG_PARM_STACK_SPACE only.
3720         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
3721         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
3722         (precompute_register_parameters): Avoid #ifdefs on
3723         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
3724         (stire_one_args): Likewise.
3725         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
3726         (emit_library_call_value_1): Likewise.
3727         (compute_argument_block_size): Align to STACK_BOUNDARY only for
3728         ACCUMULATE_OUTGOING_ARGS.
3729         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
3730         value.
3731         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
3732         (use_crosses_set_p): Likewise.
3733         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
3734         #define ACCUMULATE_OUTGOING_ARGS 1.
3735         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
3736         frames.
3737         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
3738         constants.
3739         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
3740         (TARGET_SWITCHES): Add push-args, no-push-args,
3741         accumulate-outgoing-args and no-accumulate-outgoing-args.
3742         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
3743         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
3744         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
3745         and PUSH_ROUNDING.
3746         (emit_push_insn): Likewise.
3747         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
3748         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
3749         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
3750         (STACK_DYNAMIC_OFFSET): Define correctly for both
3751         ACCUMULATE_OUTGOING_ARGS and normal mode.
3752         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
3753         * tm.texi (PUSH_ARGS): Document.
3754         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
3755
3756 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3757
3758         * flags.h (flag_optimize_sibling_calls): Declare.
3759         * calls.c (expand_call): Fail sibcall when
3760         !flag_optimize_sibling_calls
3761         * invoke.texi (flag_optimize_sibling_calls): Document.
3762         * toplev.c (flag_optimize_sibling_calls): New global variable.
3763         (f_options): Add flag_optimize_sibling_calls.
3764         (rest_of_compilation): Conditionize
3765         optimize_sibling_and_tail_recursive_calls by
3766         flag_optimize_sibling_calls.
3767         (main): Set flag_optimize_sibling_calls for -O2.
3768         * stmt.c (expand_return): Conditionize tail recursion by
3769         flag_optimize_sibling_calls.
3770
3771 2000-03-29  Richard Henderson  <rth@cygnus.com>
3772
3773         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
3774         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
3775
3776 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
3777
3778         * except.c (add_eh_table_entry): Mark type_info's as referenced.
3779
3780 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3781
3782         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
3783         is given.
3784         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
3785         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
3786         * config/rs6000/aix.h: then modified likewise.
3787
3788 2000-03-28  Richard Henderson  <rth@cygnus.com>
3789
3790         * rtl.h: Redistribute enum reg_note documentation.
3791         Kill trailing whitespace.
3792         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
3793         Kill trailing whitespace.
3794
3795 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
3796
3797         * cppfiles.c (hash_IHASH): Just return i->hash.
3798         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
3799         htab_find_with_hash.
3800         (cpp_read_file): Likewise.
3801         (find_include_file): Likewise.  Properly initialize
3802         ih->nshort.  Share ih->name and ih->nshort if possible.
3803         * cpphash.c (_cpp_calc_hash): New function.
3804         (hash_HASHNODE): Just return h->hash.
3805         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
3806         htab_find_with_hash.
3807         * cpphash.h: Prototype _cpp_calc_hash.
3808         * cppinit.c (initialize_builtins): Provide a valid hash
3809         to _cpp_make_hashnode, using _cpp_calc_hash.
3810
3811         * cpphash.c (collect_expansion): # is not a special character
3812         in object-like macros.  In -traditional mode, /**/ is not
3813         token paste at the beginning or end of the line.
3814         * cpplib.c (do_include, do_import, do_include_next): If
3815         parse_include fails, return immediately.
3816
3817 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
3818
3819         * config/arm/arm.md (return peepholes): Update to reflect the new
3820         call insn patterns.
3821         * config/arm/arm.c (arm_volatile_func): Also check
3822         current_function_nothrow.
3823         (output_return_instruction, output_func_prologue): Use it.
3824         (arm_output_epilogue, arm_expand_prologue): Likewise.
3825
3826 2000-03-27  Tom Tromey  <tromey@cygnus.com>
3827
3828         * gcc.c (handle_braces): In {x*...} case, break out of loop if
3829         switch is found.
3830
3831 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3832
3833         * expr.c (store_constructor): SIZE now signed.
3834         For EXPR_SIZE, don't evaluate size; just needed if constant.
3835         * fold-const.c (fold): Fix a number of cases when folded tree is
3836         wrong type.
3837         * function.c (flush_addressof): Reenable.
3838         * tree.h (flush_addressof): Likewise.
3839         * toplev.c (independent_decode_option): Look at strings_processed.
3840         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
3841
3842 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
3843
3844         * sibcall.c (indentify_call_return_value): Find last call in the chain;
3845         Allow stack adjustment after function call.
3846
3847         * regmove.c (struct csa_memlist): Make mem field rtx *.
3848         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
3849         (try_apply_stack_adjustment): Replace whole MEM rtx.
3850         (combine_stack_adjustments_for_block): Update calls
3851         to record_one_stack_ref.
3852
3853 2000-03-28  Neil Booth  <NeilB@earthling.net>
3854
3855         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
3856         '\\' rather than a null character, so nulls are not special.  Fix
3857         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
3858         speed trigraph conversion.
3859         (_cpp_init_input_buffer): Initialize trigraph map.
3860
3861 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
3862
3863         * config/i386/i386.c (output_387_binary_op): Correct intel
3864         mode assembly output, and add spaces after commas in AT&T
3865         output.  Correct Unixware assembler comment.  Document input
3866         constraints.  Comment fp operations.  Reduce profligate buffer
3867         size.  Remove extraneous abort.  Localize temp var.
3868         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
3869         (output_fix_trunc): Add spaces after commas in assembly output.
3870
3871 2000-03-27  Richard Henderson  <rth@cygnus.com>
3872
3873         * i386-protos.h (ix86_match_ccmode): Declare.
3874         * i386.c (ix86_match_ccmode): New.
3875         (ix86_expand_fp_compare): Update for pattern renames.
3876         (ix86_expand_strlensi_unroll_1): Likewise.
3877         * i386.h (EXTRA_CC_MODES): Add CCZ.
3878         (SELECT_CC_MODE): Use it for EQ/NE zero.
3879         * i386.md (cmpsi_ccz_1): New.
3880         (cmpqi_ccz_1): New.
3881         (*testsi_ccz_1): New.
3882         (testqi_ccz_1): New.
3883         (cmpsi_ccno_1): Rename from cmpsi_0.
3884         (testsi_ccno_1): Rename from testsi_1.
3885         (testqi_ccno_1): Rename from testqi_1.
3886         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
3887         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
3888         (*cmphi_0): Use ix86_match_ccmode.
3889         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
3890         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
3891         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
3892         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
3893         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
3894         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
3895         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
3896         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
3897         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
3898         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
3899         (appropriate peepholes): Likewise.
3900         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
3901         (*subsi_3, *subhi_3, *subqi_3): Remove.
3902         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
3903         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
3904         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
3905         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
3906         (x86_shift_adj_1): Use CCZ.
3907         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
3908
3909 2000-03-27  Stan Cox  <scox@cygnus.com>
3910
3911         * resource.h (mark_resource_type): New.
3912         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
3913         find_free_register): Use mark_resource_type.
3914         (mark_set_resources): Change include_delayed_effects
3915         to mark_resource_type.
3916         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
3917         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
3918         Use mark_resource_type.
3919
3920 2000-03-27  Richard Henderson  <rth@cygnus.com>
3921
3922         * i386.md (call_pop_0, call_value_pop_0): New.
3923         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
3924         (call_value_pop_1): Likewise.
3925         (call_0, call_value_0): New.
3926         (call_1, call_value_1): Remove constraint from unused arg.
3927
3928 2000-03-27  Nick Clifton  <nickc@cygnus.com>
3929
3930         * invoke.texi (Spec Files): Document new spec % command created by
3931         Tom Tromey's recent patch.
3932
3933 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
3934
3935         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
3936         if not defined.
3937
3938 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3939
3940         * expr.c (expand_assignment): Fix typo in last change.
3941
3942         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
3943
3944 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3945
3946         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
3947         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
3948         and DECL_INLINE if FUNCTION_DECL.
3949         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
3950         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
3951         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
3952         (combine_parm_decls): Likewise.
3953         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
3954         * print-tree.c (print_node): Likewise.
3955         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
3956         DECL_TRANSPARENT_UNION on proper decl types.
3957         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
3958         * stor-layout.c (layout_decl): Only check DECL_PACKED and
3959         DECL_BIT_FIELD of FIELD_DECL.
3960         * tree.h (DECL_RESULT_FLD): New macro.
3961
3962         * expr.c (expand_assignment): Add code to handle variable-sized
3963         BLKmode case.
3964
3965 2000-03-26  Richard Henderson  <rth@cygnus.com>
3966
3967         * calls.c (expand_call): Pass parms not original exp to
3968         optimize_tail_recursion.  Mind return value instead of looking
3969         for a barrier.
3970         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
3971         call_expr.  Move checks for call_expr and current_function_decl ...
3972         (expand_return): ... here.
3973
3974 2000-03-26  Tom Tromey  <tromey@cygnus.com>
3975
3976         * gcc.c (handle_braces): Recognize `%{<S}' construct.
3977         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
3978         defines.
3979         (process_command): Use them.
3980         (check_live_switch): Likewise.
3981         (give_switch): Skip ignored switches.
3982
3983 2000-03-26  Jan Hubicka  <jh@suse.cz>
3984
3985         * jump.c (jump_optimize_1): Fix typo in elide optimizations
3986         for minimal jump pass test.
3987
3988 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
3989
3990         * integrate.c (function_cannot_inline_p): Do inline functions that
3991         return `void'.
3992
3993 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3994
3995         * stor-layout.c (layout_type, set_sizetype): early_type_list is
3996         now a list of TREE_LIST entries, not types.
3997         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
3998
3999         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
4000         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
4001         int_bit_position.
4002         * config/mips/mips.c (function_arg): Likewise; also remove cast
4003         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
4004         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
4005         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
4006         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
4007         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
4008         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
4009         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
4010         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
4011         num_adjusts now unsigned.
4012         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
4013         * config/sparc/sparc.c (struct function_arg_record_value_parms):
4014         NREGS now unsigned.
4015         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
4016         as is BITPOS variable; use host_integerp and int_bit_position.
4017         (function_arg_record_value_2): Likewise.
4018         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
4019         Variable REGNO now unsigned.
4020         (function_arg_record_value): NREGS now unsigned.
4021
4022 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
4023
4024         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
4025
4026 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4027
4028         * Rework fields used to describe positions of bitfields and
4029         modify sizes to be unsigned and use HOST_WIDE_INT.
4030         * alias.c (reg_known_value_size): Now unsigned.
4031         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
4032         (really_start_incremental_init): Use bitsize_zero_node.
4033         (push_init_level, pop_init_level, output_init_element): Likewise.
4034         Use bitsize_unit_node and bitsize_one_node.
4035         (output_pending_init_elements, process_init_element): Likewise.
4036         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
4037         (make_extraction): Position and length HOST_WIDE_INT and unsigned
4038         HOST_WIDE_INT, respectively.
4039         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
4040         (num_sign_bit_copies): Returns unsigned.
4041         BITWIDTH now unsigned; rework arithmetic.
4042         Remove recursive call from arg to MAX.
4043         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
4044         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
4045         REGNO now unsigned.
4046         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
4047         (find_split_point, expand_compound_operation, make_extraction): LEN
4048         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
4049         (make_field_assignment): Likewise.
4050         (combine_simplify_rtx): Add cast.
4051         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
4052         (force_to_mode): WIDTH now unsigned; add cast.
4053         (if_then_else_cond): SIZE now unsigned.
4054         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
4055         (extended_count): Now returns unsigned.
4056         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
4057         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
4058         (simplify_comparison): MODE_WIDTH now unsigned.
4059         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
4060         (mark_used_regs_combine): Likewise; rework arithmetic.
4061         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
4062         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
4063         (record_promoted_value): REGNO now unsigned.
4064         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
4065         (get_last_value): REGNO now unsigned.
4066         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
4067         (reg_dead_regno, reg_dead_endregno): Now unsigned.
4068         (remove_death): Arg REGNO now unsigned.
4069         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
4070         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
4071         now unsigned.
4072         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
4073         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
4074         (struct cse_reg_info): REGNO now unsigned.
4075         (cached_regno): Now unsigned.
4076         (REGNO_QTY_VALID_P): Add cast.
4077         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
4078         (remove_invalid_regs): Likewise.
4079         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
4080         as are variables END and I.
4081         (get_cse_reg_info, insert): Likewise.
4082         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
4083         (canon_hash): Likewise.
4084         (insert_regs, lookup_for_remove): REGNO now unsigned.
4085         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
4086         New variable RN.
4087         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
4088         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
4089         * emit-rtl.c (subreg_realpart_p): Add cast.
4090         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
4091         (operand_subword_force): Arg I is now unsigned.
4092         * except.c (eh_regs): Variable I is now unsigned.
4093         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
4094         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
4095         length is unsigned HOST_WIDE_INT; likewise for internal variables.
4096         (store_split_bit_field, extract_fixed_bit_field): Likewise.
4097         (extract_split_bit_field, store_bit_field, extract_bit_field):
4098         Likewise.
4099         * expr.c (store_constructor_fields, store_constructor, store_field):
4100         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
4101         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
4102         (do_jump): Likewise.
4103         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
4104         MAX_SIZE is now unsigned.
4105         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
4106         (emit_group_store): Likewise.
4107         (emit_move_insn): I now unsigned.
4108         (store_constructor): Use host_integerp, tree_low_cst, and
4109         bitsize_unit_node.
4110         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
4111         Rework all calculations to use trees and new fields.
4112         * expr.h (promoted_input_arg): Regno now unsigned.
4113         (store_bit_field, extract_bit_field): Adjust types of pos and size.
4114         (mark_seen_cases): Arg is HOST_WIDE_INT.
4115         * flow.c (verify_wide_reg_1): REGNO now unsigned.
4116         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
4117         precisions and alignments are unsigned.
4118         (optimize_bit_field_compare, fold_truthop): Likewise.
4119         (int_const_binop): Adjust threshold for size_int_type_wide call.
4120         (fold_convert): Likewise.
4121         (size_int_type_wide): Make table larger and fix thinko that only
4122         had half of table used.
4123         (all_ones_mask_p, fold): Precisions are unsigned.
4124         * function.c (put_reg_info_stack): REGNO is unsigned.
4125         (instantiate_decl): Size is HOST_WIDE_INT.
4126         (instantiate_virtual_regs): I is unsigned.
4127         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
4128         (promoted_input_arg): REGNO is unsigned.
4129         * function.h (struct function): x_max_parm_reg is now unsigned.
4130         * gcse.c (max_gcse_regno): Now unsigned.
4131         (struct null_pointer_info): min_reg and max_reg now unsigned.
4132         (lookup_set, next_set): REGNO arg now unsigned.
4133         (compute_hash_table): REGNO and I now unsigned.
4134         (handle_avail_expr): regnum_for_replacing now unsigned.
4135         (cprop_insn): REGNO now unsigned.
4136         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
4137         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
4138         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
4139         * hard-reg-set.h (reg_class_size): Now unsigned.
4140         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
4141         * jump.c (mark_modified_reg): I now unsigned; add cast.
4142         (rtx_equal_for_thread_p): Add cast.
4143         * loop.c (max_reg_before_loop): Now unsigned.
4144         (struct_movable): REGNO now unsigned.
4145         (try_copy_prop): REGNO arg unsigned.
4146         (regs_match_p): XN and YN now unsigned.
4147         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
4148         (strength_reduce): Likewise; NREGS also unsigned.
4149         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
4150         * loop.h (struct iv_class): REGNO now unsigned.
4151         (max_reg_before_loop, first_increment_giv, last_increment_giv):
4152         Now unsigned.
4153         * machmode.h (mode_size, mode_unit_size): Now unsigned.
4154         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
4155         * optabs.c (expand_binop): I and NWORDS now unsigned.
4156         (expand_unop): I now unsigned.
4157         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
4158         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
4159         * real.c (significand_size): Now returns unsigned.
4160         * real.h (significand_size): Likewise.
4161         * regclass.c (reg_class_size): Now unsigned.
4162         (choose_hard_reg_mode): Both operands now unsigned.
4163         (record_reg_classes): REGNO and NR now unsigned.
4164         (reg_scan): NREGS now unsigned.
4165         (reg_scan_update): old_max_regno now unsigned.
4166         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
4167         * reload.c (find_valid_class): BEST_SIZE now unsigned.
4168         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
4169         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
4170         Likewise for variable R.
4171         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
4172         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
4173         (find_equiv_reg): Add casts.
4174         (regno_clobbered_p): Arg REGNO now unsigned.
4175         * reload.h (struct reload): NREGS now unsigned.
4176         (refers_to_regno_for_reload_p): Regno args are unsigned.
4177         (regno_clobbered_p): Likewise.
4178         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
4179         (compute_use_by_pseudos): REGNO now unsigned.
4180         (find_reg): I and J now unsigned, new variable K, and change loop
4181         variables accordingly; THIS_NREGS now unsigned.
4182         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
4183         (spill_hard_reg): REGNO arg now unsigned; add casts.
4184         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
4185         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
4186         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
4187         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
4188         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
4189         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
4190         (emit_reload_insns): REGNO now unsigned.
4191         (reload_cse_move2add): Add cast.
4192         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
4193         and rework loop.
4194         * resource.c (mark_referenced_resources, mark_set_resources): New
4195         variable R; REGNO and LAST_REGNO now unsigned.
4196         (mark_target_live_regs): J and REGNO now unsigned.
4197         * rtl.c (mode_size, mode_unit_size): Now unsigned.
4198         * rtl.h (union rtunion_def): New field rtuint.
4199         (XCUINT): New macro.
4200         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
4201         (operand_subword, operand_subword_force): Word number is unsigned.
4202         (choose_hard_reg_mode): Operands are unsigned.
4203         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
4204         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
4205         (regno_use_in, combine_instructions, remove_death): Likewise.
4206         (reg_scan, reg_scan_update): Likewise.
4207         (extended_count): Return is unsigned.
4208         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
4209         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
4210         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
4211         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
4212         (reg_reg_last_1): FIRS and LAST now unsigned.
4213         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
4214         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
4215         now unsigned.
4216         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
4217         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
4218         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
4219         (replace_regs): Arg NREGS now unsigned.
4220         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
4221         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
4222         (simplify_binary_operation): Likewise.
4223         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
4224         THIS_LAST now unsigned.
4225         (cselib_record_set): Add cast.
4226         * ssa.c (ssa_max_reg_num): Now unsigned.
4227         (rename_block): REGNO now unsigned.
4228         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
4229         sizes now unsigned.
4230         (all_cases_count): Just return -1 not -2.
4231         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
4232         Rework tests to use trees whenever possible.
4233         Use host_integerp and tree_low_cst.
4234         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
4235         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
4236         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
4237         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
4238         (smallest_mode_for_size): Likewise.
4239         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
4240         KNOWN_ALIGN is now an alignment, so simplify code.
4241         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
4242         (start_record_layout): Renamed from new_record_layout_info.
4243         Update to new fields.
4244         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
4245         New functions.
4246         (place_union_field): Renamed from layout_union_field.
4247         Update to use new fields in rli.
4248         (place_field): Renamed from layout_field.
4249         Major rewrite to use new fields in rli; pass alignment to layout_decl.
4250         (finalize_record_size): Rework to use new fields in rli and handle
4251         union.
4252         (compute_record_mode): Rework to simplify and to use new DECL fields.
4253         (finalize_type_size): Make rounding more consistent.
4254         (finish_union_layout): Deleted.
4255         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
4256         (layout_type, case RECORD_TYPE): Call new function names.
4257         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
4258         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
4259         (get_best_mode): UNIT is now unsigned; remove casts.
4260         * tree.c (bit_position): Compute from new fields.
4261         (byte_position, int_byte_position): New functions.
4262         (print_type_hash_statistics): Cast to remove warning.
4263         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
4264         (build_index_type): Likewise; make subtype of sizetype.
4265         (build_index_2_type): Pass sizetype to build_range_type.
4266         (build_common_tree_nodes): Use size_int and bitsize_int to
4267         initialize nodes; add bitsize_{zero,one,unit}_node.
4268         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
4269         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
4270         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
4271         (DECL_FIELD_BITPOS): Deleted.
4272         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
4273         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
4274         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
4275         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
4276         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
4277         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
4278         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
4279         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
4280         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
4281         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
4282         (DECL_ALIGN): Adjust to new field in union.
4283         (DECL_OFFSET_ALIGN): New field.
4284         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
4285         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
4286         (union tree_decl): Add struct for both aligns.
4287         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
4288         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
4289         (struct record_layout_info): Rework fields to have offset
4290         alignment and byte and bit position.
4291         (start_record_layout, place_field): Renamed from old names.
4292         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
4293         (byte_position, int_byte_position): Likewise.
4294         (get_inner_reference): Change types of position and length.
4295         * unroll.c (unroll_loop): New variable R; use for some loops.
4296         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
4297         (calculate_giv_inc): Arg REGNO now unsigned.
4298         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
4299         * varasm.c (assemble_variable): Clean up handling of size using
4300         host_integerp and tree_low_cst.
4301         (decode_addr_const): Use byte, not bit, position.
4302         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
4303         use tree_low_cst and int_bit_position.
4304         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
4305
4306 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
4307
4308         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
4309         (reorder_block_def): New members eff_head and eff_end.
4310         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
4311         (verify_insn_chain): New function.
4312         (skip_insns_between_block): Add code to skip deleted insns.
4313         Check for note before using.
4314         (chain_reorder_blocks): Replace calls to skip_insns_between_block
4315         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
4316         Check for note before using.
4317         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
4318         (fixup_reorder_chain): Restructure, clean up, defect removal.
4319         (reorder_basic_blocks): Remove last_insn and references to it.
4320         Moved insn chain verification code into a new function (see above).
4321         Delete defective code that sets last insn.
4322         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
4323         all blocks.
4324
4325 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4326
4327         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
4328
4329 2000-03-24  Richard Henderson  <rth@cygnus.com>
4330
4331         * tree.c (lang_safe_for_unsave): Remove.
4332         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
4333         allowing for two levels of unsafeness.  Remove lang hook.
4334         * tree.h: Update declarations.
4335         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
4336         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
4337         Always fail sibcalls when there are pending cleanups.
4338
4339 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
4340
4341         * flow.c (propagate_block): When we delete an ADDR_VEC,
4342         also delete the BARRIER following it if there is one.
4343
4344 2000-03-24  Richard Henderson  <rth@cygnus.com>
4345
4346         * builtins.c (expand_builtin_bzero): Convert `length' argument
4347         to sizetype.
4348
4349 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
4350
4351         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
4352         comparison if regno's are equal.
4353         * calls.c (initialize_argument_informat): Add ecf_flags argument.
4354         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
4355         (expand_call): Update caller.
4356         Avoid making a sibling call if argument size of the callee is larger
4357         than argument size of the caller.
4358         Call hard_function_value with outgoing set if in sibcall pass.
4359         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
4360
4361         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
4362         Change LEAF_REGISTERS from an array initializer to actual array
4363         identifier. Move static global variable into the function.
4364         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
4365         sequences for leaf functions.
4366         * global.c (global_alloc): Likewise.
4367         * tm.texi (LEAF_REGISTERS): Update documentation.
4368
4369         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
4370         TARGET_FLAT leaf disabling hack.
4371         (LEAF_REGISTERS): Changed from an array initializer to actual array
4372         identifier to avoid duplication and remove the above hack.
4373         (FUNCTION_OK_FOR_SIBCALL): Define.
4374         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
4375         always like call attribute.
4376         (eligible_for_sibcall_delay): New attribute.
4377         (sibcall): New delay type.
4378         (sibcall, sibcall_value, sibcall_epilogue): New expands.
4379         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
4380         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
4381         * config/sparc/sparc.c (sparc_leaf_regs): New array.
4382         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
4383         New functions.
4384         (output_function_epilogue): Move part of the code into
4385         output_restore_regs.
4386         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
4387         TYPE_SIBCALL.
4388         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
4389         prototypes.
4390
4391         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
4392         until infrastructure is finished.
4393
4394 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
4395
4396         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
4397         (save_parm_insns): Not here.
4398
4399 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4400
4401         * builtins.c (expand_builtin_bzero): New function.
4402         (expand_builtin): Handle bzero.
4403
4404         * builtins.def: Add BUILT_IN_BZERO.
4405
4406         * c-common.c (c_common_nodes_and_builtins): Provide builtin
4407         prototype & function for bzero.
4408
4409 2000-03-23  Michael Meissner  <meissner@redhat.com>
4410
4411         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
4412         change adding TARGET_FP to the TF floating point insns, except for
4413         trunctfsf2, which generates direct calls to truncdfsf2.
4414
4415 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
4416
4417         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
4418         try to protect against middle-end changes that break binary
4419         compatibility.
4420         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
4421
4422 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4423
4424         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
4425
4426 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4427
4428         * calls.c (expand_call): If TARGET is passed by reference and
4429         is readonly, write a CLOBBER.
4430
4431 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4432
4433         * builtins.c (expand_builtin): Handle bcmp.
4434
4435         * builtins.def: Add BUILT_IN_BCMP.
4436
4437         * c-common.c (c_common_nodes_and_builtins): Provide builtin
4438         prototype & function for bcmp.
4439
4440 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
4441
4442         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
4443         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
4444         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
4445
4446 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
4447
4448         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
4449         alternative when using -fp64 -gp32.
4450
4451 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
4452
4453         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
4454         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
4455         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
4456
4457         * frame.h (frame_state): Revert last change.
4458         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
4459         * libgcc2.c (throw_helper): Revert last change.
4460
4461 2000-03-22  Richard Henderson  <rth@cygnus.com>
4462
4463         * stmt.c (expand_asm_operands): Don't promote the temporary.
4464
4465 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
4466
4467         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
4468         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
4469           c_get_alias_set): Likewise.
4470         * c-decl.c (duplicate_decls): Likewise.
4471         * c-typeck.c (default_conversion,build_unary_op): Likewise.
4472         * calls.c (initialize_argument_information): Likewise.
4473         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
4474         Likewise.
4475         * dwarfout.c (decl_class_context,output_type): Likewise.
4476         * expr.c (get_inner_reference): Likewise.
4477         * fold-const.c (simple_operand_p,fold): Likewise.
4478         * function.c (aggregate_value_p): Likewise.
4479         * stmt.c (expand_asm_operands): Likewise.
4480         * varasm.c (named_section): Likewise.
4481
4482 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
4483
4484         Implement dwarf2 exception handling for the ARM.
4485         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
4486         (DWARF_FRAME_RETURN_COLUMN): Define.
4487         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
4488         REG_FRAME_RELATED_EXPR note.
4489         (emit_sfm): Likewise.
4490         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
4491         * dwarf2out.c (reg_save): Handle saving a register to itself.
4492         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
4493         * except.c (eh_regs): Don't use the static chain reg if it's
4494         callee-saved.
4495         * frame.h (frame_state): Add cfa_saved field.
4496         * frame.c (execute_cfa_insn): Set it.
4497         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
4498         the epilogue.
4499         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
4500         Now takes a parm.
4501         (instantiate_virtual_regs): Adjust.
4502         * tm.texi: Adjust.
4503         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
4504         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
4505         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
4506
4507         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
4508         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
4509
4510 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4511
4512         * builtins.def: New file.
4513
4514         * Makefile.in (TREE_H): Depend on builtins.def.
4515
4516         * builtins.c (built_in_names): Use builtins.def.
4517
4518         * tree.h (built_in_function): Likewise.
4519
4520 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
4521
4522         * tree.c (size_in_bytes): Return size_zero_node, not
4523         integer_zero_node.
4524
4525 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
4526
4527         * config/fp-bit.c (pack_d): Correct the case when a denormal
4528         is rounded up and stops being denormal.
4529
4530 2000-03-21  Richard Henderson  <rth@cygnus.com>
4531
4532         * config/alpha/alpha.c (function_arg): Check for void_type_node
4533         before using MUST_PASS_IN_STACK.
4534
4535 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
4536
4537         * regmove.c (combine_stack_adjustments_for_block): Check that
4538         the stack pointer is a valid memory address.
4539
4540 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
4541
4542         * calls.c: re-install Mar 16 emit_library_call merge.
4543
4544 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
4545
4546         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
4547         we cannot be sure that if reload_completed base register will
4548         be properly aligned.
4549
4550 2000-03-21  Richard Henderson  <rth@cygnus.com>
4551
4552         * flow.c (delete_block): Fix typo last change.
4553
4554 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
4555
4556         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
4557         not COMPLETE_TYPE_P, to check the type of the expression.
4558
4559 2000-03-21  Michael Meissner  <meissner@redhat.com>
4560
4561         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
4562         all floating point insns that just tested the macro
4563         TARGET_HAS_XFLOATING_LIBS.
4564         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
4565         used to only use the gprs.
4566
4567 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
4568
4569         * tree.h (COMPLETE_TYPE_P): New macro.
4570         (COMPLETE_OR_VOID_TYPE_P): New macro.
4571         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
4572         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
4573         * c-aux-info.c (gen_type): Use them.
4574         * c-common.c (c_expand_expr_stmt): Likewise.
4575         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
4576         grokdeclarator, grokparms, finish_struct, start_function,
4577         store_parm_decls, combine_parm_decls): Likewise.
4578         * c-parse.y (cast_expr): Likewise.
4579         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
4580         c_size_in_bytes, c_alignof, build_component_ref,
4581         build_indirect_ref, build_array_ref, convert_arguments,
4582         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
4583         * calls.c (initialize_argument_information): Likewise.
4584         * convert.c (convert_to_integer): Likewise.
4585         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
4586         * dwarfout.c (location_or_const_value_attribute,
4587         output_enumeration_type_die, output_structure_type_die,
4588         output_union_type_die, output_type): Likewise.
4589         * expr.c (safe_from_p, expand_expr): Likewise.
4590         * function.c (assign_parms): Likewise.
4591         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
4592         * tree.c (build_array_type, build_function_type,
4593         build_method_type, build_offset_type, build_complex_type): Likewise.
4594         * c-parse.c, c-parse.h: Regenerated.
4595
4596 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4597
4598         * config/c4x/rtems.h: Include config/rtems.h.
4599
4600 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
4601
4602         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
4603         decl is a FUNCTION_DECL
4604
4605 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
4606
4607         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
4608         function uses output registers.  Don't save RP for leaf functions.
4609         Do save RP even if no epilogue.
4610         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
4611         (CALL_USED_REGISTERS): Unmark in registers.
4612         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
4613         to near the middle.
4614
4615 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
4616
4617         * config/rs6000/rs6000.md (bunordered): New expander.
4618         (bordered): New expander.
4619         (buneq): New expander.
4620         (bunge): New expander.
4621         (bungt): New expander.
4622         (bunle): New expander.
4623         (bunlt): New expander.
4624         (bltgt): New expander.
4625
4626         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
4627         (ccr_bit_negated_p): New function.
4628         (print_operand): For %C, generate appropriate cror for UNEQ,
4629         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
4630
4631 2000-03-20  Andreas Jaeger  <aj@suse.de>
4632
4633         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
4634         warning.
4635
4636         * tree.h (safe_for_unsave): Prototype.
4637
4638 2000-03-20  Richard Henderson  <rth@cygnus.com>
4639
4640         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
4641         (combine_stack_adjustments_for_block): Don't allow sp references
4642         in the side of a set we're not fixing up.
4643         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
4644         after life_analysis.
4645
4646 2000-03-20  Richard Henderson  <rth@cygnus.com>
4647
4648         * calls.c (expand_call): Don't bother generating tail call
4649         sequences if there are pending cleanups.  Use
4650         expand_start_target_temps/expand_end_target_temps to elide
4651         cleanups created during sibcall expansion.
4652
4653 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
4654
4655         * configure.in: Set $IFS to a value if it doesn't already have one
4656         in the --enable-checking handling.
4657         * configure: Regenerate.
4658
4659 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4660
4661         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
4662         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
4663         Regenerated.
4664
4665 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
4666
4667         * jump.c (delete_noop_moves): Remove code attempting to
4668         combine stack adjustments.
4669
4670 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4671
4672         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
4673         * except.c (emit_cleanup_handler): Use them.
4674         (expand_end_all_catch): Likewise.
4675         * function.c (fixup_var_refs): Likewise.
4676         (expand_function_end): Clear catch_clauses_last.
4677         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
4678         * except.h (struct eh_status): New field x_catch_clauses_last.
4679         (catch_clauses_last): New define.
4680
4681         * Makefile.in (tree.o): Depend on HASHTAB_H.
4682         * tree.c: Include hashtab.h.
4683         (struct type_hash): Remove next field.
4684         (TYPE_HASH_SIZE): Remove.
4685         (TYPE_HASH_INITIAL_SIZE): New define.
4686         (type_hash_table): Change type to htab_t.
4687         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
4688         mark_hash_entry): New functions.
4689         (init_obstacks): Allocate type hash.
4690         (type_hash_lookup): Use htab functions.
4691         (type_hash_add, mark_type_hash): Likewise.
4692         (dump_tree_statistics): Call print_type_hash_statistics.
4693
4694 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4695
4696         * rs6000/t-aix41: New file.
4697
4698         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
4699
4700 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
4701
4702         * tm.texi (Driver): Fix typos and tweak entry for
4703         INCLUDE_DEFAULTS.
4704         Move misplaced STRUCT_FORCE_BLK entry ...
4705         (Storage Layout): ... to here.
4706         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
4707
4708 2000-03-19  Richard Henderson  <rth@cygnus.com>
4709
4710         * flow.c (delete_block): Delete the addr_vec along with the block.
4711         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
4712         reference labels.
4713
4714         * fold-const.c (extract_muldiv): Apply type check for defined
4715         overflow to multiply as well as divide.
4716
4717         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
4718
4719 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
4720
4721         * emit-rtl.c (remove_unncessary_notes): Check that all
4722         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
4723         associated NOTE_BLOCK.
4724         * function.h (identify_blocks): Update comments.
4725         (reorder_blocks): Declare.
4726         * function.c (identify_blocks): Don't take paramters.
4727         (reorder_blocks): Don't take parameters.
4728         * loop.h (find_loop_tree_blocks): Remove.
4729         (unroll_block_trees): Likewise.
4730         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
4731         reorder_blocks instead of unroll_block_trees.h
4732         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
4733         * stmt.c (find_loop_tree_blocks): Remove.
4734         (unroll_block_trees): Likewise.
4735         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
4736         in whole-function mode.
4737         * tree.h (reorder_blocks): Remove declaration.
4738
4739         * expr.c: Include intl.h.
4740         * Makefile.in (expr.o): Depend on intl.h.
4741
4742 2000-03-18  Richard Henderson  <rth@cygnus.com>
4743
4744         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
4745
4746 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
4747
4748         * tree.h (tree_index): Remove enumerals for integer types.
4749         (integer_type_kind): New type.
4750         (integer_types): New variable.
4751         (char_type_node): Adjust.
4752         (signed_char_type_node): Likewise.
4753         (unsigned_char_type_node): Likewise.
4754         (short_integer_type_node): Likewise.
4755         (short_unsigned_type_node): Likewise.
4756         (integer_type_node): Likewise.
4757         (unsigned_type_node): Likewise.
4758         (long_integer_type_node): Likewise.
4759         (long_unsigned_type_node): Likewise.
4760         (long_long_integer_type_node): Likewise.
4761         (long_long_unsigned_type_node): Likewise.
4762         * tree.c (integer_types): New variable.
4763         (init_obstacks): Register it as a root.
4764
4765 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
4766
4767         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
4768         NEXT_INSN. Update last insn in chain.
4769
4770 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
4771
4772         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
4773         with TYPE_DECL_SUPPRESS_DEBUG set.
4774
4775 2000-03-18  Richard Henderson  <rth@cygnus.com>
4776
4777         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
4778
4779 2000-03-18  Richard Henderson  <rth@cygnus.com>
4780
4781         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
4782         care for HALF_PIC_P.
4783         (expander_call_insn_operand): Remove.
4784         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
4785         * i386.h (PREDICATE_CODES): Update.
4786         * i386.md (all call expanders): Remove predicates, remove special
4787         handling for half-pic.
4788         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
4789         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
4790         (sibcall_epilogue): New.
4791
4792 2000-03-17  Richard Henderson  <rth@cygnus.com>
4793
4794         * rtlanal.c (single_set): Reject if the parallel has anything
4795         except SET or USE or CLOBBER.
4796
4797 2000-03-17  Jeff Law  <law@cygnus.com>
4798             Richard Henderson  <rth@cygnus.com>
4799
4800         * Makefile.in (OBJS): Add sibcall.o.
4801         (sibcall.o): New.
4802         * sibcall.c: New file.
4803         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
4804         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
4805         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
4806         Emit sibcall patterns when requested.  Update all callers.
4807         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
4808         elimination seems feasable.
4809         * final.c (leaf_function_p): Sibling calls don't discount being
4810         a leaf function.
4811         * flow.c (HAVE_sibcall_epilogue): Provide default.
4812         (find_basic_blocks_1): Sibling calls don't throw.
4813         (make_edges): Make edge from sibling call to EXIT.
4814         (propagate_block): Don't remove sibcall_epilogue insns.
4815         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
4816         (sibcall_epilogue): New.
4817         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
4818         (identify_blocks_1): Likewise.  Break out from ...
4819         (identify_blocks): ... here.
4820         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
4821         (reorder_blocks): ... here.
4822         (init_function_for_compilation): Zap prologue/epilogue as varrays.
4823         (record_insns): Extend a varray instead of mallocing new memory.
4824         (contains): Read a varray not array of ints.
4825         (sibcall_epilogue_contains): New.
4826         (thread_prologue_and_epilogue_insns): Emit and record
4827         sibcall_epilogue patterns.
4828         (init_function_once): Allocate prologue/epilogue varrays.
4829         * genflags.c (gen_insn): Treat sibcall patterns as calls.
4830         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
4831         Broken out from ...
4832         (save_for_inline_nocopy): ... here.
4833         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
4834         Broken out from ...
4835         (expand_inline_function): ... here.
4836         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
4837         (subst_constants): Handle 'n' formats.
4838         * jump.c (jump_optimize_minimal): New.
4839         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
4840         optimizations if it's set.
4841         * rtl.c (copy_rtx): Do copy jump & call for insns.
4842         * rtl.h (struct rtx_def): Document use of jump and call for insns.
4843         (SIBLING_CALL_P): New.
4844         (sibcall_use_t): New.
4845         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
4846         Invoke optimize_sibling_and_tail_recursive_calls.
4847         * tree.c (lang_safe_for_unsave): New.
4848         (safe_for_unsave): New.
4849         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
4850
4851         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
4852         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
4853         (*sibcall_osf_1, *sibcall_value_osf_1): New.
4854
4855 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
4856
4857         * objc/objc-act.c (encode_method_prototype): Pass types, not
4858         PARM_DECLs, to int_size_in_bytes.
4859
4860 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
4861
4862         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
4863
4864         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
4865         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
4866
4867 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4868
4869         * Clean up usages of TREE_INT_CST_LOW.
4870         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
4871         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
4872         Regenerated.
4873         * c-tree.h (min_precision): Move declaration to here.
4874         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
4875         (build_unary_op, add_pending_init): Use bit_position.
4876         (pending_init_member, process_init_element): Likewise.
4877         (really_start_incremental_init, push_init_level, pop_init_level):
4878         Don't make copies of nodes or modify them in place, use consistent
4879         types when tracking positions, and use tree routines computations.
4880         (set_init_index, output_init_element): Likewise.
4881         (output_pending_init_elements, process_init_element): Likewise.
4882         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
4883         tree_low_cst and int_bit_position; also minor cleanup.
4884         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
4885         (print_cst_octal): Precision is unsigned.
4886         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
4887         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
4888         (simple_type_align_in_bits): Result is unsigned int.
4889         Use tree_int_low_cst and host_integerp.
4890         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
4891         (field_byte_offset): Result is HOST_WIDE_INT.
4892         Change types of internal variables so alignments are unsigned int,
4893         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
4894         Use host_integerp, tree_low_cst, and int_bit_position.
4895         (add_bit_offset_attribute): Likewise.
4896         (add_data_member_location_attribute): Use tree_cst_low.
4897         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
4898         (add_bit_size_attribute): Use tree_low_cst.
4899         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
4900         * dwarfout.c: Similar changes to dwarf2out.c.
4901         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
4902         * genoutput.c (n_occurences): Return -1 for null string.
4903         (strip_whitespace): Accept null string and make into function.
4904         (scan_operands): Reflect above changes.
4905         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
4906         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
4907         * ssa.c (rename_registers): Add missing cast of arg to bzero.
4908         * tree.c (int_size_in_bytes): Check for too big to represent.
4909         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
4910         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
4911         New declarations.
4912         (min_precision): Delete from here.
4913         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
4914         and int_bit_position.
4915         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
4916         (encode_method_def): Likewise.
4917         (build_ivar_list_initializer): Use int_bit_position.
4918         (generate_shared_structures): Convert size.
4919         (encode_type, encode_complete_bitfield): Use integer_zerop.
4920         (encode_bitfield): Use tree_low_cst and int_bit_position.
4921
4922 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4923
4924         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
4925
4926 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4927
4928         * call.c (special_function_p): It is only malloc if it returns
4929         Pmode.
4930
4931 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4932
4933         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
4934         (C33_FLAG, TARGET_C3X): Add macros.
4935         (TARGET_SWITCHES): Add -m33 option.
4936         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
4937
4938 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4939
4940         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
4941         (PARALLEL_PACK_FLAG): Delete.
4942         (TARGET_SWITCHES): Update.
4943         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
4944
4945 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4946
4947         * fold-const.c (fold): Fix a few cases when the returned result
4948         is not of the same type as the input.
4949
4950 2000-03-16  Nick Clifton  <nickc@cygnus.com>
4951
4952         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
4953         warning.
4954
4955 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4956
4957         * libgcc2.h: Move prototypes above macros with the same name.
4958         Wrap some function prototypes in the conditional which indicates
4959         whether they are supported, i.e. "BITS_PER_UNIT == 8".
4960
4961 2000-03-16  Richard Henderson  <rth@cygnus.com>
4962
4963         * calls.c: Revert last two changes.
4964
4965 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
4966
4967         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
4968         has exponent 0 is a zero.
4969
4970         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
4971         HASH may already be nonzero.  Add code/mode into hash value
4972         immediately after repeat label.
4973         (cselib_lookup): Don't leave the hash table in an inconsistent
4974         state before a hash lookup operation.
4975
4976 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
4977
4978         * i386.md (all HI and QI mode non-move patterns):  Conditionize
4979         by TARGET_[HQ]IMODE_MATH.
4980         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
4981         x86_promote_qi_regs): Declare.
4982         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
4983         TARGET_PROMOTE_QI_REGS): New macros.
4984         (PROMOTE_MODE): New macro.
4985         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
4986         x86_promote_qi_regs): New global variables.
4987
4988 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
4989
4990         * calls.c (emit_library_call_value_1): Break out from ...; handle
4991         VOIDmode function calls too.
4992         (emit_library_call_value): ... here.
4993         (emit_library_call): Implement by calling emit_library_call_value_1.
4994
4995 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
4996
4997         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
4998         Update arg_space_so_far on stack adjustments.
4999         (emit_library_call, emit_library_call_value): Likewise; take into
5000         account arg_space_so_far and pending_stack_adjust when calculcating
5001         the boundary.
5002
5003 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
5004
5005         * flow.c: Move all basic block reordering code into its own file.
5006         (create_basic_block): Externalize.
5007         * bb-reorder.c: New file. Copy all basic block reordering code from
5008         flow.c to this file.
5009         (reorder_basic_blocks): Fix fencepost error in for-loop.
5010         (reorder_basic_blocks): Remove braces from single statement for-loops.
5011         * basic-block.h: Add declaration for create_basic_block.
5012         * Makefile.in: Add rules for bb-reorder.o.
5013
5014 2000-03-16  Neil Booth  <NeilB@earthling.net>
5015
5016         * cppinit.c (handle_option):  Implement #unassert directive
5017         as -A- command line option.
5018         (print_help):  Update.
5019         * cpptexi.c:  Update.
5020
5021 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
5022
5023         * md.texi (Standard Names): Document `jump'.
5024
5025 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
5026
5027         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
5028         gotos.
5029
5030 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
5031
5032         Merge changes from newppc-branch onto trunk.
5033
5034         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
5035
5036         * rs6000.c (toc_hash_table): Update for new hash table functions.
5037         (toc_hash_function): Likewise.
5038         (toc_hash_eq): Likewise.
5039         (toc_hash_mark_entry): Likewise.
5040         (toc_hash_mark_table): Likewise.
5041         (output_toc): Likewise.
5042         (rs6000_add_gc_roots): Likewise.
5043
5044         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5045
5046         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
5047         (AR_FLAGS_FOR_TARGET): here.  New macro.
5048
5049         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
5050
5051         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
5052         fpmem_operand) Delete.
5053         (xer_operand) New.
5054         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
5055         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
5056         (rs6000_save_machine_status, rs6000_restore_machine_status,
5057         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
5058         references to above variables.
5059         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
5060         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
5061         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
5062         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
5063         (XER_REGNO_P, XER_REGNO): New.
5064         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
5065         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
5066         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
5067         XER_REGNO_P.
5068         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
5069         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
5070         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
5071
5072         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5073
5074         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
5075         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
5076         * rs6000.h: from here.
5077
5078         * rs6000-protos.h (rs6000_select_section): Provide prototype.
5079         (rs6000_select_rtx_section): Likewise.
5080         (rs6000_encode_section_info): Likewise.
5081         (sdata_section): Likewise.
5082         (sdata2_section): Likewise.
5083         (sbss_section): Likewise.
5084         * sysv4.h (rs6000_select_section): Delete prototype.
5085         (rs6000_select_rtx_section): Likewise.
5086         (rs6000_encode_section_info): Likewise.
5087         (sdata_section): Likewise.
5088         (sdata2_section): Likewise.
5089         (sbss_section): Likewise.
5090         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
5091
5092         * sysv4.h: Delete various unnecessary #undef's and put a comment
5093         on the remaining ones.
5094         Change various comments according to coding standard.
5095
5096         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
5097
5098         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
5099         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
5100         (CR0_REGNO_P) Remove.
5101         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
5102         setup_incoming_varargs, mtcrf_operation, print_operand,
5103         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
5104         Use the above macros.
5105
5106         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
5107
5108         * config/rs6000/rs6000.md: Added a new alternative for each
5109         pattern that had a 'x' alternative but no 'y' alternative.
5110         Added a new split for each of the above patterns.
5111
5112         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
5113
5114         * aix41.h (ASM_CPU_SPEC): Delete.
5115         (CPP_CPU_SPEC): Delete.
5116
5117         * aix.h (RS6000_OUTPUT_BASENAME): Define.
5118         (ASM_OUTPUT_LABEL): Define.
5119         (ASM_GLOBALIZE_LABEL): Define.
5120         (STRIP_NAME_ENCODING): Define.
5121         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
5122         (STRIP_NAME_ENCODING): Don't define.
5123         (ASM_OUTPUT_LABEL): Don't define.
5124         (ASM_GLOBALIZE_LABEL): Don't define.
5125         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
5126         names, and ASM_OUTPUT_LABEL to output labels, rather than
5127         asm_fprintf.
5128         (ASM_OUTPUT_LABEL): Define.
5129         (ASM_OUTPUT_INT): Use assemble_name.
5130         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
5131         (STRIP_NAME_ENCODING): Don't undefine first.
5132         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
5133         ELF.
5134         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
5135         specified with 'asm' even with -fleading-underscore.
5136         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
5137         (output_epilog): Likewise.
5138         (output_toc): Likewise.
5139         * tramp.asm: Handle -fleading-underscore correctly.
5140
5141         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
5142         -mminimal-toc.
5143         (nonlocal_goto_receiver): Delete.
5144         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
5145
5146         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
5147         (SET_ASM_OP): Define.
5148         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
5149
5150         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
5151         (ASM_LONG): Define.
5152
5153         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
5154         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
5155
5156         * rs6000.h: Add 'u' to more constants.
5157
5158         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
5159
5160         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
5161
5162         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
5163
5164         * rs6000.c (reg_or_u_cint_operand): New function.
5165         (logical_operand): Handle 64-bit hosts.
5166         (logical_u_operand): New function.
5167         (non_logical_cint_operand): Handle 64-bit hosts.
5168         (non_logical_u_cint_operand): New function.
5169         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
5170         (PREDICATE_CODES): Define new functions.
5171         * rs6000-protos.h: Declare new functions.
5172         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
5173         (movdi_64): Bracket code intended for 64-bit hosts.  Create
5174         CONST_DOUBLE for 32-bit values.
5175         (scc insns): Generate DImode compares.
5176         (mfcr insns): Create DImode versions.
5177         (sge matchers): New patterns.
5178
5179         2000-02-15  Gabriel Paubert  <paubert@iram.es>
5180
5181         * rs6000.md: Correct instructions length attributes and
5182         constraints on unsigned compare instructions.
5183         (*ne0): Disable for PowerPC64.
5184
5185         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
5186
5187         * rs6000.c (output_function_profiler): Use .long for a 32-bit
5188         quantity, fix profile1.C test failure under -fPIC.
5189
5190         * rs6000.c: Add 'u' to many constants to suppress warnings.
5191         (constant_pool_expr_1): Make static.
5192         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
5193         * rs6000.h: Add 'u' to many constants to suppress warnings.
5194
5195         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
5196         for the start of the TOC, instead of LCTOC..0.
5197         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
5198         of the TOC.
5199         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
5200         (load_toc_aix_di): Use LCTOC..1.
5201
5202         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
5203         * rs6000.c (rs6000_legitimize_address): New function from
5204         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
5205         symbols in the constant pool that really are TOC references.
5206         (print_operand_address): For ELF, write TOC offsets under
5207         -fPIC as subtractions in the insn.
5208         (output_toc): For ELF, define symbols in TOC as normal labels,
5209         to match RTL.
5210         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
5211         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
5212         (create_TOC_reference): Prototype only when RTX_CODE is defined.
5213         * rs6000.md (movsi): Only use create_TOC_reference on
5214         symbols in the constant pool that really are TOC references.
5215
5216         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
5217         * rs6000.c (rs6000_reorg): Delete.
5218         * rs6000-protos.h (rs6000_reorg): Delete.
5219
5220         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
5221
5222         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
5223
5224         * aix.h (SETUP_FRAME_ADDRESSES): Define.
5225         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
5226         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
5227         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
5228         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
5229         rs6000_aix_emit_builtin_unwind_init.
5230         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
5231         rs6000_emit_eh_toc_restore on AIX.
5232         (return_eh_si): Use r2.
5233         (return_eh_di): Use r2.
5234
5235         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
5236         since we're breaking binary compatibility anyway.
5237
5238         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
5239
5240         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
5241         constant_pool_expr_p): Declare them.
5242         (constant_pool_expr_p): Declare it.
5243         * config/rs6000/rs6000.c (toc_label_name): Define.
5244         (rs6000_override_options): Set toc_label_name.
5245         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
5246         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
5247         uses_TOC): New functions.
5248         (print_operand): Delete old '*' case.
5249         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
5250         and strip off rtl for TOC before calling output_addr_const.
5251         (rs6000_emit_load_toc_table): Use toc_label_name.
5252         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
5253         the default.
5254         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
5255         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
5256         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
5257         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
5258         into explicit TOC_REGISTER offsets.
5259         (TOC_REGISTER): New macro.
5260         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
5261         TARGET_TOC to reference TOC_REGISTER.
5262         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
5263         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
5264         uses_TOC before emitting label references.
5265
5266         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
5267
5268         * rs6000.md (stack_tie): Fix warning.
5269
5270         * eabi-ctors.c: Use 'asm' names for the start/end variables,
5271         to handle -fleading-underscore.
5272         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
5273         (USER_LABEL_PREFIX): New macro.
5274         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
5275         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
5276         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
5277         call-linux can use the same multilibs.
5278         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
5279         and call-linux multilibs.  Do multilib with -fleading-underscore.
5280         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
5281         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
5282         to call-aix.
5283
5284         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
5285         have MASK_SOFT_FLOAT set.
5286         (CPP_FLOAT_DEFAULT_SPEC): New macro.
5287         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
5288         CPP_FLOAT_DEFAULT_SPEC.
5289
5290         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
5291         * rs6000.md: Whitespace change.
5292         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
5293         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
5294
5295         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
5296
5297         * rs6000.md (eh_epilogue): New expander.
5298         (eh_reg_restore): New expand/split/insn combination.
5299         (return_eh_si): New insn.
5300         (return_eh_di): New insn.
5301
5302         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
5303         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
5304         * eabi-ctors.c (__do_global_ctors): Register this object's
5305         frame.  Clean up.  Call atexit() after the constructors.
5306         (__do_global_dtors): Deregister this object's frame.  Clean up.
5307         Allow for recursive calls to exit().
5308         * rs6000.c (fixuplabelno): New variable.
5309         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
5310         TARGET_RELOCATABLE, it slows down exec() under linux.
5311         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
5312
5313         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
5314         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
5315         (ASM_OUTPUT_DWARF_DELTA2): New macro.
5316         (ASM_OUTPUT_DWARF_DELTA4): New macro.
5317         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
5318         (ASM_OUTPUT_DWARF_ADDR): New macro.
5319         (ASM_OUTPUT_DWARF_DATA4): New macro.
5320         (ASM_OUTPUT_DWARF_DATA2): New macro.
5321         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
5322         (ASM_OUTPUT_DWARF_OFFSET): New macro.
5323         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
5324
5325         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
5326
5327         * rs6000.c (rs6000_sr_alias_set): New variable.
5328         (rs6000_override_options): Initialise rs6000_sr_alias_set.
5329         (rs6000_emit_stack_tie): New function.
5330         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
5331         in a way that dwarf2out can understand.
5332         (rs6000_frame_related): New function.
5333         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
5334         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
5335         Use rs6000_emit_stack_tie when needed.
5336         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
5337         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
5338         * rs6000.md (stack_tie): New insn.
5339         (return_internal_si): Allow return value to be in the count
5340         register.
5341         (return_internal_di): Likewise.
5342
5343         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
5344
5345         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
5346
5347         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
5348
5349         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
5350
5351         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
5352
5353         * rs6000.md (stmw): Use the right POWER opcode.
5354         (lmw): Likewise.
5355
5356         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5357
5358         * rs6000-protos.h: New file.
5359
5360         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
5361
5362         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
5363         warnings.
5364
5365         * sysv4.h: Likewise.
5366
5367         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
5368
5369         * ../../configure.in: Delete powerpcle-*-winnt*
5370         and powerpcle-*-pe|powerpcle-*-cygwin*.
5371         * ../../configure: Regenerated.
5372         * cygwin.h: Delete.
5373         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
5374         (TARGET_WINDOWS_NT): Delete.
5375         (ABI_NT): Delete.
5376         (CALL_NT_DLLIMPORT): Delete.
5377         Delete NT-specific code.
5378         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
5379         * win-nt.h: Delete.
5380         * t-winnt: Delete.
5381         * nt-ci.asm: Delete.
5382         * nt-cn.asm: Delete.
5383         * ntstack.asm: Delete.
5384
5385         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5386
5387         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
5388         (ASM_FILE_START): Likewise.
5389         (ASM_DECLARE_FUNCTION_NAME): Likewise.
5390         (ASM_OUTPUT_LABELREF): Likewise.
5391         (ASM_OUTPUT_SKIP): Likewise.
5392         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
5393         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
5394         (ASM_OUTPUT_CASE_LABEL): Likewise.
5395         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
5396         (ASM_OUTPUT_ASCII): Likewise.
5397
5398         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
5399
5400         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
5401         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
5402         increment rs6000_pic_labelno here.
5403         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
5404         and increment rs6000_pic_labelno here.
5405
5406         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
5407
5408         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
5409         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
5410         allocation knows (reg) is dead before the insn.
5411
5412         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
5413
5414         * rs6000.md (movsi_to_cr): Correct typo in output template.
5415
5416         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
5417
5418         * rs6000.c (rs6000_pic_labelno): Always define.
5419         (rs6000_pic_func_labelno): Delete.
5420         (lmw_operation): Check for a zero base register,
5421         which doesn't mean what we want.
5422         (stmw_operation): New function.
5423         (print_operand): Define new 'l' modifier.
5424         (rs6000_stack_info): We must save all 64 bits of the registers
5425         if TARGET_POWERPC64.
5426         (rs6000_output_load_toc_table): Delete.
5427         (rs6000_emit_load_toc_table): New function.
5428         (rs6000_allocate_stack_space): Delete.
5429         (rs6000_emit_allocate_stack): New function.
5430         (rs6000_emit_prologue): New function.
5431         (output_prolog): Use rs6000_emit_prologue.
5432         (rs6000_emit_epilogue): Change a few variable names to be
5433         more accurate.  Restore all 64 bits of the registers if
5434         TARGET_POWERPC64.  Only restore the FP registers which were used
5435         if they are being saved/restored one-at-a-time.
5436         (output_mi_thunk): Delete inefficient code generation.
5437         (output_function_profiler): Don't use rs6000_output_load_toc_table.
5438         * rs6000.h: Declare rs6000_emit_load_toc_table,
5439         rs6000_allocate_stack_space, stmw_operation.  Don't declare
5440         rs6000_output_load_toc_table.
5441         * rs6000.md (elf_high): Allow register 0, but discourage it
5442         heavily.
5443         (elf_low): Support loading into register 0.
5444         (load_toc_aix_si): New pattern.
5445         (load_toc_aix_di): New pattern.
5446         (load_toc_v4_pic_si): New pattern.
5447         (load_toc_v4_pic_di): New pattern.
5448         (load_toc_v4_PIC_1): New pattern.
5449         (load_toc_v4_PIC_1b): New pattern.
5450         (load_toc_v4_PIC_2): New pattern.
5451         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
5452         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
5453         (prologue): New expander.
5454         (movesi_from_cr): New pattern.
5455         (stmw): New pattern.
5456         (save_fpregs_si): New pattern.
5457         (save_fpregs_di): New pattern.
5458
5459         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
5460
5461         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
5462         (movdi): Likewise.
5463         (movhi): Likewise.
5464         (movqi): Likewise.
5465
5466         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
5467
5468         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
5469         at present.
5470         (movsi_got_internal): Likewise.
5471         (movsi_got_internal+1): Likewise.
5472         (set_sp): 'unspec 7' does a SImode clobber.
5473
5474         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
5475
5476         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
5477         allocate a stack temporary.
5478         (floatsidf2_internal): Likewise.
5479         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
5480         with unspec.
5481         (floatunssidf2): Don't use the fpmem "register", just
5482         allocate a stack temporary.
5483         (floatunssidf2_internal): Likewise.
5484         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
5485         with unspec.
5486         (floatsidf2_loadaddr): Delete.
5487         (floatsidf2_store1): Delete.
5488         (floatsidf2_store2): Delete.
5489         (floatsidf2_load): Delete.
5490         (fix_truncdfsi2): Don't use the fpmem "register", just
5491         allocate a stack temporary.
5492         (fix_truncdfsi2_internal_si): Delete.
5493         (fix_truncdfsi2_internal_di): Delete.
5494         (fix_truncdfsi2_internal): New insn.
5495         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
5496         (fix_truncdfsi2_store): Delete.
5497         (fix_truncdfsi2_load): Delete.
5498         (fctiwz): Produce gen_fctiwz.
5499
5500         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
5501
5502         * eabi.h (INVOKE__main): Define.
5503         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
5504         specially.
5505         (rs6000_emit_prologue): Likewise.
5506         * rs6000.h (struct rs6000_stack): Don't keep track of whether
5507         this is the main program.
5508
5509         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
5510
5511         * rs6000.c (rs6000_va_arg): Delete some unused variables.
5512
5513         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
5514
5515         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
5516         goes after the argument.
5517
5518         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
5519
5520         * rs6000.md: Document 'unspec' values used.
5521         (epilogue): New expander.
5522         (movesi_to_cr_one): New expander.
5523         (movesi_to_cr and following): New pattern.
5524         (lmw): New pattern.
5525         (return_internal_si): New pattern.
5526         (return_internal_di): New pattern.
5527         (return_and_restore_fpregs_si): New pattern.
5528         (return_and_restore_fpregs_di): New pattern.
5529         * rs6000.h: Declare new functions.
5530         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
5531         rather than rs6000_calls_p.
5532         (rs6000_makes_calls): Delete.
5533         (lmw_operation): New function.
5534         (mtcrf_operation): New function.
5535         (rs6000_emit_epilogue): New function.
5536         (output_epilog): Call rs6000_emit_epilogue and final if
5537         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
5538
5539         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
5540
5541         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
5542         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
5543         * aix.h (SUBTARGET_SWITCHES): Document switches.
5544         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
5545         sched-prolog and sched-epilog the same.  Document all the
5546         switches.
5547         (TARGET_OPTIONS): No longer allow -mdebug-.
5548
5549         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
5550
5551         * rs6000.h (ASM_FILE_END): Move to aix.h.
5552         (EXTRA_SECTIONS): Move to aix.h.
5553         (READONLY_DATA_SECTION): Move to aix.h.
5554         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
5555         (SELECT_SECTION): Move to aix.h.
5556         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
5557         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
5558         (LINK_REGISTER_REGNUM): New definition.
5559         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
5560         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
5561         AIX and SVR4.
5562         * sysv4.h: Delete the code between the inclusion of rs6000.h
5563         and svr4.h.
5564         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
5565         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
5566         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
5567         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
5568         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
5569         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
5570         (fix_truncdfsi2_internal_di): New pattern.
5571         (fix_truncdfsi2_store): The second arg here is Pmode too.
5572         (fix_truncdfsi2_load): The second arg here is Pmode too.
5573         (tablejumpdi): Now that switch tables hold only SImode values,
5574         gcc needs to know how to add them to the pc which is DImode.
5575         * rs6000.c (rs6000_stack_info): Use symbolic name for
5576         LINK_REGISTER_REGNUM.
5577         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
5578         (output_toc): Delete unused variables s1 and s2.
5579         (output_ascii): Use fputs not fprintf on a variable string.
5580
5581         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
5582
5583         * rs6000.c (processor_target_table): Add power3 as alias for 630.
5584         * aix43.h: Revert Aug 2 change.
5585         (HAS_INIT_SECTION): Define, not visible yet.
5586         (LD_INIT_SWITCH): Define, not visible yet.
5587         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
5588
5589         2000-01-04  Joel Sherrill (joel@OARcorp.com>
5590
5591         * config/rs6000/rtems.h: Include config/rtems.h.
5592
5593         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
5594
5595         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
5596         (SLOW_UNALIGNED_ACCESS): Define.
5597         (CASE_VECTOR_MODE): Always use 32-bit offsets.
5598         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
5599         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
5600         (toc_section): Likewise and .toc pseudo-op.
5601         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
5602         64-bit mode.
5603         (TEXT_SECTION_ASM_OP): Likewise.
5604         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
5605         32-bit offsets.
5606
5607         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
5608
5609         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
5610         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
5611         compiling libgcc2.
5612
5613         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5614
5615         * rs6000.h: Move more stuff from here...
5616         * aix.h: to here.
5617         * sysv4.h: Cleanup accordingly.
5618         * netware.h: Likewise
5619
5620         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5621
5622         * rs6000.h: Continue cleanup.
5623         * aix.h: Likewise.
5624         * lynx.h: Likewise.
5625         * netware.h: Likewise.
5626         * sol2.h: Likewise.
5627         * sysv4.h: Likewise.
5628         * win-nt.h: Likewise.
5629
5630         * rs6000.h (TARGET_SWITCHES): Add descriptions.
5631         (TARGET_OPTIONS): Likewise.
5632
5633         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
5634         (SUBTARGET_OPTIONS): Likewise.
5635
5636         * rs6000.md: Fix compile time warnings.
5637
5638         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
5639
5640         vxworks patches from the Cygnus tree originally by
5641         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
5642         <vmakarov@cygnus.com>.
5643         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
5644         (ENDFILE_SPEC): Likewise.
5645         (LIB_VXWORKS_SPEC): New macro.
5646         (STARTFILE_VXWORKS_SPEC): New macro.
5647         (ENDFILE_VXWORKS_SPEC): New macro.
5648         (LINK_START_VXWORKS_SPEC): New macro.
5649         (LINK_OS_VXWORKS_SPEC): New macro.
5650         (CPP_OS_VXWORKS_SPEC): New macro.
5651         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
5652         * vxppc.h: Rewrite to use proper configuration method.
5653         * vxppcle.h: New file.
5654         * ../../configure.in: Add powerpcle-wrs-vxworks*.
5655         * ../../configure: Rebuilt.
5656
5657         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
5658
5659         Lots of changes to rs6000.h, sysv4.h, aix.h,
5660         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
5661         with the aim that rs6000.h is the first header
5662         included and the others override it.
5663         * aix.h: New file.
5664
5665         * x-aix41-gld: Remove.
5666         * x-aix43: Remove.
5667         * x-aix41: Remove target-specific switches, and don't specify
5668         -Wl,-bbigtoc as we don't need it any more.
5669         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
5670         Use t-aix43 for AIX 4.3 and above.
5671         * ../../configure: Regenerated.
5672
5673         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
5674         options, that don't do anything yet.
5675         (MASK_SCHED_PROLOG): New macro.
5676         (MASK_SCHED_EPILOG): New macro.
5677         (TARGET_SCHED_PROLOG): New macro.
5678         (TARGET_SCHED_EPILOG): New macro.
5679
5680         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
5681
5682         * rs6000.c: Correct comment, the `minimal' TOCs are actually
5683         one per translation unit, not one per function.
5684         (output_toc): Also do duplicate constant elimination
5685         for per-translation-unit TOCs.
5686
5687         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
5688         a comment explaining _exactly_ when this pattern gets used.
5689         (builtin_setjmp_receiver): New pattern for better clarity.
5690         (init_v4_pic): Move it into a section dealing with TOC registers.
5691
5692         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
5693
5694         * rs6000.c (toc_hash_table): New variable.
5695         (rs6000_hash_constant): New function.
5696         (toc_hash_function): New function.
5697         (toc_hash_eq): New function.
5698         (toc_hash_mark_entry): New function.
5699         (toc_hash_mark_table): New function.
5700         (output_toc): Don't output duplicate TOC entries in
5701         a single file.
5702         (rs6000_add_gc_roots): Add the hash table as a GC root.
5703         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
5704         where they clearly shouldn't be.  This may need to be fixed
5705         later when there is a GNU ar for AIX.
5706         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
5707         Don't define BOOT_LDFLAGS as it is now not necessary.
5708
5709         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
5710
5711         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
5712         for va_list on AIX.  Use unsigned_char_type_node rather than
5713         constructing our own version on svr4.
5714
5715         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
5716
5717         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
5718         since patently it's not.
5719
5720         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
5721
5722         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
5723         define_expand/define_insn pair, and handle restore of the
5724         SVR4 -fpic register.
5725
5726 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
5727
5728         * acconfig.h (HAVE_GAS_WEAK): New define.
5729         * configure.in (assembler weak support): Check for .weak support.
5730         * config.in, configure: Rebuilt.
5731         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
5732         HAVE_GAS_WEAK is defined.
5733
5734 2000-03-15  Nick Clifton  <nickc@cygnus.com>
5735
5736         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
5737         asm_fprintf().
5738
5739 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
5740
5741         * cppfiles.c (open_include_file): New function.
5742         (find_include_file, cpp_read_file): Use it.
5743
5744 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
5745
5746         * cpphash.c (dump_hash_helper): Take the slot, not the element.
5747
5748 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
5749
5750         * flow.c (verify_flow_info): Check for unconditional return.
5751
5752 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
5753
5754         * config/ia64/ia64.md (restore_stack_nonlocal): New.
5755         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
5756         (__ia64_restore_stack_nonlocal): New.
5757         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
5758
5759 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5760
5761         * cpphash.c (collect_formal_parameters): Do not complain about
5762         parameter names that just start with `__VA_ARGS__'.
5763
5764 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
5765
5766         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
5767         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
5768         * i386.c (pentiumpro_cost): Set mul cost to 4.
5769         (x86_use_movx): Set for PPro.
5770
5771 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
5772
5773         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
5774         STACK_BOUNDARY for empty frames now.
5775
5776 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
5777
5778         * stor-layout.c (layout_union): Remove.
5779         (layout_union_field): New function, split out from layout_union.
5780         (finish_union_layout): Likewise.
5781         (layout_field): Handle unions by calling layout_union_field.
5782         (finish_record_layout): Handle unions.
5783         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
5784         QUAL_UNION_TYPE handling.
5785
5786 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
5787
5788         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
5789         end of basic block is jump_insn, not barrier; use create_basic_block
5790         instead of creating basic block by hand.
5791
5792 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
5793
5794         * flow.c (reorder_basic_blocks): Account for barriers when writing
5795         over NEXT_INSN (last_bb->end).
5796         (verify_flow_info): Add check for missing barriers.
5797
5798 2000-03-14  Greg McGary  <gkm@gnu.org>
5799
5800         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
5801         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
5802         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
5803         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
5804         __unbounded, __unbounded__): New keywords.
5805         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
5806         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
5807         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
5808
5809 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
5810
5811         * cselib.h: New file.
5812         * alias.c: Include "cselib.h".
5813         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
5814         MEMs as two new arguments.
5815         (get_addr): New static function.
5816         (find_base_term): Handle VALUEs.
5817         (memrefs_conflict_p): Likewise.
5818         (true_dependence): Call get_addr on the addresses.
5819         Call fixed_scalar_and_varying_struct_p with addresses that have been
5820         passed through get_addr and canon_rtx.
5821         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
5822         with true_dependence.
5823         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
5824         * loop.c: Include "cselib.h".
5825         (load_mems): Process extended basic block that enters the loop with
5826         cselib.  Use that information to change initialization of the shadow
5827         register so that a constant equivalence is seen by later passes.
5828         * reload1.c: Include "cselib.h".
5829         (reload_cse_invalidate_regno): Delete function.
5830         (reload_cse_mem_conflict_p): Likewise.
5831         (reload_cse_invalidate_mem): Likewise.
5832         (reload_cse_invalidate_rtx): Likewise.
5833         (reload_cse_regno_equal_p): Likewise.
5834         (reload_cse_check_clobber): Likewise.
5835         (reload_cse_record_set): Likewise.
5836         (reg_values): Delete static variable.
5837         (invalidate_regno_rtx): Likewise.
5838         (reload_cse_delete_noop_set): New static function.
5839         (reload_cse_simplify): New static function, broken out of
5840         reload_cse_regs_1.
5841         (reload_cse_noop_set_p): Delete unused argument INSN.
5842         Just call rtx_equal_for_cselib_p on set source and destination.
5843         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
5844         reload_cse_delete_noop_set.  Delete code to keep track of values; use
5845         cselib functions instead.  Delete code to push/pop obstacks.
5846         (reload_cse_simplify_set): Use cselib to find equivalent values.
5847         Delete code to push/pop obstacks.
5848         (reload_cse_simplify_operands): Likewise.
5849         * rtl.def (VALUE): New rtx code.
5850         * rtl.h (union rtunion_def): New elt rt_cselib.
5851         (X0CSELIB, CSELIB_VAL_PTR): New macros.
5852         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
5853         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
5854         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
5855         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
5856         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
5857         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
5858         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
5859         cselib_record_set, cselib_record_sets): New static functions.
5860         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
5861         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
5862         references_value_p): New functions.
5863         (MAX_USELESS_VALUES, REG_VALUES): New macros.
5864         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
5865         n_useless_values, reg_values, callmem, cselib_obstack,
5866         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
5867         New static variables.
5868         * varray.h (union varray_data_tag): New elt te.
5869         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
5870         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
5871         dependencies.
5872
5873 2000-03-14  Nick Clifton  <nickc@cygnus.com>
5874
5875         * gcc.c (do_spec_1): Catch the case where %* is used in a
5876         substitution pattern, but it has not been initialised.
5877         Issue a meaningful error message if an unrecognised operator
5878         is encountered in a spec string.
5879
5880 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
5881
5882         * function.c (prepare_function_start): Correctly initialize
5883         cfun->stack_alignment_needed.
5884
5885 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
5886
5887         * cppfiles.c (find_include_file): Don't assume nshort is a
5888         substring of name.
5889
5890 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
5891
5892         * configure.in (hppa configurations): Add pa32-regs.h to the
5893         list of tm files as appropriate.
5894         * configure: Rebuilt.
5895         * pa.c (compute_frame_size): Remove explicit knowledge about FP
5896         register numbering.
5897         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
5898         (fmpyaddoperands, fmpysuboperands): Likewise.
5899         * pa.h: Remove various definitions which depend on knowing
5900         how registers are numbered.
5901         * pa32-regs.h: New file with PA32 register numbering specific
5902         definitions.
5903
5904 2000-03-14  Richard Henderson  <rth@cygnus.com>
5905
5906         * regmove.c (combine_stack_adjustments): New.
5907         (stack_memref_p, single_set_for_csa): New.
5908         (free_csa_memlist, record_one_stack_memref): New.
5909         (try_apply_stack_adjustment): New.
5910         (combine_stack_adjustments_for_block): New.
5911         * rtl.h (combine_stack_adjustments): Declare.
5912         * toplev.c (rest_of_compilation): Call it.
5913
5914         * i386.md: Revert 2000-01-16 change.
5915
5916 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5917
5918         * gccbug.in: Add web category, gcc specific classes.
5919
5920 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
5921
5922         * stor-layout.c (finalize_record_size): Fix typo.
5923
5924 2000-03-14  Stan Shebs  <shebs@apple.com>
5925
5926         * c-typeck.c (c_alignof): Error on incomplete types.
5927         * extend.texi (Alignment): Document this.
5928
5929 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
5930
5931         * cppfiles.c: Include mkdeps.h.
5932         (find_include_file, read_include_file): Remove _cpp_ prefix
5933         from name, make static.
5934         (_cpp_execute_include): New function, broken out of
5935         do_include.
5936
5937         * cpplib.c: Don't include mkdeps.h.
5938         (struct directive): Remove type field. Reorder entries.  The
5939         function takes only one argument.
5940         (struct if_stack): Make type field an int.
5941         (directive_table): Rename to dtable.  Generate it, the
5942         prototypes of the directive handlers, and the enum for the
5943         directive numbers, from a template macro.
5944         (do_ifndef, do_include_next, do_import): New functions.
5945         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
5946         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
5947         do_ident, do_assert, do_unassert, do_sccs): Take only one
5948         argument.
5949         (do_sccs): Define always, but alter behavior based on
5950         SCCS_DIRECTIVE.
5951         (_cpp_handle_directive, consider_directive_while_skipping):
5952         Restructure for new directive table layout.
5953
5954         (pass_thru_directive): Take a directive number, not a pointer
5955         to a struct directive.
5956         (parse_include): New function, broken out of do_include.
5957         (do_include, do_import, do_include_next): Use parse_include
5958         and _cpp_execute_include.
5959         (do_elif, do_else): Test for T_ELSE specifically when checking
5960         for #elif/#else after #else.
5961         (parse_ifdef): New function, broken out of do_ifdef.
5962         (validate_else): Expect a name arg without a leading #.
5963         (if_directive_name): Delete.
5964         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
5965         directive handlers with only one argument.
5966
5967         * cpphash.h: Update prototypes.
5968         (enum node_type): Remove entries for directives.
5969         * Makefile.in: Update dependencies.
5970
5971         * cpphash.c (dump_hash_helper): Only dump nodes of type
5972         T_MACRO.  Emit a newline after each definition.
5973
5974 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5975
5976         * gccbug.in: New file.
5977         * configure.in (all_outputs): Add gccbug.
5978         * Makefile.in (install-common): Install gccbug.
5979         (GCCBUG_INSTALL_NAME): New variable.
5980         * configure: Rebuilt.
5981
5982 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
5983
5984         * function.c (put_var_into_stack): Use type_for_mode to calculate
5985         part_type.  Use MEM_SET_IN_STRUCT_P.
5986         * expr.c (store_field): Handle CONCAT.
5987         (store_constructor): Use fields_length.
5988         * tree.c (fields_length): New fn.
5989         * tree.h: Declare it.
5990
5991 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
5992
5993         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
5994         (cpplex.o): New target.
5995         * po/POTFILES.in: Add cpplex.c.
5996
5997         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
5998         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
5999         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
6000         skip_block_comment, skip_line_comment, skip_comment,
6001         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
6002         _cpp_parse_name, skip_string, parse_string,
6003         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
6004         _cpp_get_directive_token, find_position,
6005         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
6006         (maybe_macroexpand, _cpp_lex_token): New functions.
6007
6008         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
6009         parse_goto_mark): Delete.
6010         (_cpp_handle_eof): New function.
6011         (_cpp_handle_directive): Rename from handle_directive.
6012         (_cpp_output_line_command): Rename from output_line_command.
6013         (do_if, do_elif): Call _cpp_parse_expr directly.
6014         * cppfiles.c (_cpp_read_include_file): Don't call
6015         init_input_buffer here.
6016         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
6017         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
6018         here; pop the token_buffer and skip the rest of the line here.
6019         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
6020         here.
6021
6022         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
6023         Define here.
6024         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
6025         CPP_GOTO_MARK): New macros.
6026         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
6027         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
6028         _cpp_read_and_prescan, _cpp_init_input_buffer,
6029         _cpp_grow_token_buffer, _cpp_get_directive_token,
6030         _cpp_handle_directive, _cpp_handle_eof,
6031         _cpp_output_line_command): Prototype them here.
6032         * cpplib.h (enum cpp_token): Add CPP_MACRO.
6033         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
6034         quote_string, output_line_command): Remove.
6035
6036 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
6037
6038         * stmt.c (expand_end_case): RANGE may be signed, and when checking
6039         whether it is too large we must also verify that it isn't negative.
6040
6041 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
6042
6043         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
6044         (movsi_zero_liveg0): Remove.
6045         (movsf_insn_novis_liveg0): Remove.
6046         (negsi2): Remove.
6047         (negsi2_not_liveg0): Rename to negsi2.
6048         (one_cmplsi2): Remove.
6049         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
6050         (one_cmplsi2_liveg0): Remove.
6051         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
6052         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
6053         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
6054         (PREDICATE_CODES): Remove zero_operand.
6055         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
6056         TARGET_BROKEN_SAVERESTORE.
6057         (zero_operand): Remove.
6058         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
6059         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
6060         options.
6061         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
6062         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
6063         TARGET_BROKEN_SAVERESTORE): Remove.
6064         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
6065         Remove.
6066         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
6067         Remove.
6068         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
6069         Remove.
6070
6071         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
6072
6073 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
6074
6075         * cpplib.c (do_pragma_implementation): Fix off-by-one error
6076         truncating a string.  Don't assume tokens are nul terminated.
6077         Problem noted by Andreas Jaeger <aj@suse.de>
6078
6079 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
6080
6081         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
6082         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
6083         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
6084
6085 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
6086
6087         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
6088         STRUCTURE_SIZE_BOUNDARY.
6089
6090 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
6091
6092         * tree.h (record_layout_info_s): New structure.
6093         (record_layout_info): New type.
6094         (new_record_layout_info): New function.
6095         (layout_field): Likewise.
6096         (finish_record_layout): Likewise.
6097         * stor-layout.c (layout_record): Remove.
6098         (new_record_layout_info): New function.
6099         (layout_field): New function, broken out from layout_record.
6100         (finalize_record_size): Likewise.
6101         (compute_record_mode): Likewise.
6102         (finalize_type_size): New function, broken out from layout_type.
6103         (finish_record_layout): Likewise.
6104         (layout_type): Use them.
6105
6106 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
6107
6108         * cpphash.c: Don't include version.h.
6109         (special_symbol) [case T_VERSION]: Look for the string in
6110         hp->value.cpval; don't use version_string.
6111         * cppinit.c (initialize_builtins): Set hp->value.cpval for
6112         __VERSION__ to version_string.
6113         * Makefile.in (cpphash.o): Update deps.
6114
6115 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
6116
6117         Convert cpplib to use libiberty/hashtab.c.
6118
6119         * cpplib.h (struct cpp_reader): Make hashtab and
6120         all_include_files of type 'struct htab *'.  Delete HASHSIZE
6121         and ALL_INCLUDE_HASHSIZE macros.
6122
6123         * cpphash.h: Update prototypes.
6124         (struct hashnode): Remove next, prev, and bucket_hdr members.
6125         Make length a size_t.  Add hash member.
6126         (struct ihash): Remove next member.  Add hash member.  Make
6127         name a flexible array member.
6128
6129         * cppfiles.c: Include hashtab.h.
6130         (include_hash): Delete.
6131         (IHASHSIZE): New macro.
6132         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
6133         (cpp_included): Do the hash lookup here.
6134         (_cpp_find_include_file): Rewrite.
6135         (cpp_read_file): Put the "fake" hash entry into the hash
6136         table.  Honor the control_macro, if it turns out we've seen
6137         the file before.  Don't push the buffer here.
6138         (_cpp_read_include_file): Push the buffer here.
6139         (OMODES): New macro.  Use it whenever we call open(2).
6140
6141         * cpphash.c: Include hashtab.h.
6142         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
6143         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
6144         _cpp_lookup_slot): New functions.
6145         (HASHSIZE): new macro.
6146         (hashf, _cpp_install, _cpp_delete_macro): Delete.
6147         (_cpp_lookup): Use hashtab.h routines.
6148
6149         * cppinit.c: Include hashtab.h.
6150         (cpp_reader_init): Call _cpp_init_macro_hash and
6151         _cpp_init_include_hash.  Don't allocate hashtab directly.
6152         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
6153         pfile->all_include_files.
6154         (initialize_builtins): Use _cpp_make_hashnode and
6155         htab_find_slot to add hash entries.
6156         (cpp_finish): Just call _cpp_dump_macro_hash.
6157         * cpplib.c: Include hashtab.h.
6158         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
6159         create hash entries.
6160         (do_pragma_poison, do_assert): Likewise.
6161         (do_include): Don't push the buffer here.  Don't increment
6162         system_include_depth unless _cpp_read_include_file succeeds.
6163         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
6164         or htab_remove_elt.
6165         (do_pragma_implementation): Use alloca to create copy.
6166
6167         * Makefile.in: Update dependencies.
6168
6169 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6170
6171         * cppinit.c (cl_directive_handler): More K&R fixing.
6172
6173 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
6174
6175         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
6176         STACK_BOUNDARY.
6177         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
6178
6179 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6180
6181         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
6182         Change from char[] to macros.
6183
6184 2000-03-12  Neil Booth  <NeilB@earthling.net>
6185
6186         * cppinit.c (cpp_start_read): Update indirect function
6187         call to K&R C.
6188
6189 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
6190
6191         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
6192         entry.
6193
6194         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
6195         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
6196
6197 2000-03-11  Neil Booth  <NeilB@earthling.net>
6198
6199         * cppinit.c (struct pending option): Replace undef with a
6200         pointer to a directive handling routine.
6201         (struct cpp_pending): Replace separate assert_ and define_
6202         lists with one directive_ list.
6203         (new_pending_define): Rename new_pending_directive. Extra
6204         argument is the directive's handling routine.
6205         (handle_option): Update to use new_pending_directive.
6206
6207 2000-03-11  Neil Booth  <NeilB@earthling.net>
6208
6209         * cppfiles.c (file_cleanup, _cpp_find_include_file,
6210         remap_filename, _cpp_read_include_file, actual_directory,
6211         hack_vms_include_specification): Replace bcopy(), index() etc
6212         calls.  Add casts to some allocations.  Make some variables
6213         pointers to const [unsigned] char.
6214         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
6215         collect_formal_parameters): Similarly.
6216         * cppinit.c (struct pending_option, append_include_chain,
6217         cpp_options_init, cpp_reader_init, initialize_standard_includes,
6218         cpp_start_read, new_pending_define, handle_option): Similarly.
6219         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
6220         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
6221         do_pragma_implementation, detect_if_not_defined,
6222         do_ifdef, skip_if_group, cpp_get_token, parse_string,
6223         do_assert, do_unassert): Similarly.
6224         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
6225         function prototypes.
6226         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
6227
6228 2000-03-10  Richard Henderson  <rth@cygnus.com>
6229
6230         * builtins.c (expand_builtin_strlen): Revert last change.
6231         Use emit_insn_before if we're at the beginning of a sequence.
6232
6233 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
6234
6235         * builtins.c (expand_builtin_strlen): Make sure that we have something
6236         at the beginning of the sequence.
6237
6238         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
6239         deferred inlines.
6240
6241         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
6242
6243 2000-03-10  Richard Henderson  <rth@cygnus.com>
6244
6245         * except.c (can_throw): Use INTVAL on a CONST_INT.
6246         (reachable_handlers): Likewise.
6247         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
6248
6249 2000-03-10  Andreas Jaeger  <aj@suse.de>
6250
6251         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
6252         MD_STARTFILE_PREFIX since those are not needed on linux.
6253         (ASM_FILE_START): New, from mips/gnu.h.
6254
6255 2000-03-09  Richard Henderson  <rth@cygnus.com>
6256             Alex Samuel  <samuel@codesourcery.com> and others
6257
6258         * Makefile.in (ssa.o): New rule.
6259         (OBJS): Add ssa.o.
6260         (STAGESTUFF): Add *.ssa and *.ussa.
6261         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
6262         * rtl.def (PHI): New RTL expression.
6263         * rtl.h (clear_log_links): New declaration.
6264         (convert_to_ssa): Likewise.
6265         (convert_from_ssa): Likewise.
6266         * flow.c (split_edge): If the entry node falls through to the
6267         split edge's source block, split the entry edge.
6268         (clear_log_links): New function.
6269         * toplev.c (ssa_dump): New variable.
6270         (flag_ssa): Likewise.
6271         (f_options): Add "ssa".
6272         (compile_file): Create SSA dump files.
6273         (rest_of_compilation): Go to and from SSA if enabled.
6274         (decide_d_option): Handle -de for SSA dump files.
6275         * ssa.c: New file.
6276
6277 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
6278
6279         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
6280         same as VAR_DECL.
6281
6282 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
6283
6284         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
6285
6286 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
6287
6288         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
6289         (MD_STARTFILE_PREFIX_1): New macro.
6290
6291 2000-03-09  Robert Lipe  <robertl@sco.com>
6292
6293         * config/ia64/ia64.c: Include system.h.
6294
6295 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
6296
6297         * except.c (nothrow_function_p): If -fno-exceptions, just return.
6298         (init_eh_nesting_info): Likewise.
6299
6300         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
6301         (TREE_NOTHROW): Rename from TREE_RAISES.
6302         * toplev.c (rest_of_compilation): Set it.
6303         * print-tree.c (print_node): Adjust.
6304         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
6305         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
6306         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
6307         REG_EH_REGION note as appropriate.
6308         (libfunc_nothrow): New fn.
6309         (emit_library_call, emit_library_call_value): Use it.
6310         (expand_call): Check TREE_NOTHROW.
6311
6312         * varasm.c (make_decl_rtl): Skip initial '*' when setting
6313         DECL_ASSEMBLER_NAME.
6314
6315 2000-03-09  Andreas Jaeger  <aj@suse.de>
6316
6317         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
6318         (TARGET_MEM_FUNCTIONS): Define.
6319
6320 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
6321
6322         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
6323
6324         * except.c (can_throw): See through a SEQUENCE.
6325         (nothrow_function_p): New fn.
6326         * except.h: Declare it.
6327         * function.c (current_function_nothrow): New var.
6328         (prepare_function_start): Initialize it.
6329         * output.h: Declare it.
6330         * toplev.c (rest_of_compilation): Set it.
6331         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
6332
6333 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
6334
6335         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
6336         match.  (cpp_compare_defs): Count the nul separator when
6337         advancing over argument names.
6338
6339 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
6340
6341         * recog.c (preprocess_constraints): Matching constraints affect
6342         same alternative/different operand, not same operand/different
6343         alternative.
6344
6345         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
6346         register and a constant specially.
6347
6348 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6349
6350         * libgcc2.h: New file.
6351         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
6352
6353 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
6354
6355         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
6356         * configure: Regenerate.
6357         * config/ia64: New.
6358
6359 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
6360
6361         * Makefile.in (LIBCPP_DEPS): New macro.
6362         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
6363         it to declare deps.
6364         * cpperror.c: Include cpphash.h.
6365         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
6366         dingleberry.
6367         (lex): Don't use CPP_WARN_UNDEF.
6368         (_cpp_parse_expr): Return an int, the truth value.
6369         * cppfiles.c: Include cpphash.h.
6370         (_cpp_merge_include_chains): Move to cppinit.c and make static.
6371         * cppinit.c (include_defaults_array): Disentangle.
6372         (cpp_cleanup): Don't free the if stack here.
6373         (cpp_finish): Pop off all buffers, not just one.
6374         * cpplib.c (eval_if_expr): Return int.
6375         (do_xifdef): Rename do_ifdef.
6376         (handle_directive): Don't use CPP_PREPROCESSED.
6377         (cpp_get_token): Don't use CPP_C89.
6378         * fix-header.c: Don't use CPP_OPTIONS.
6379
6380         * cpplib.h: Move U_CHAR, enum node_type, struct
6381         file_name_list, struct ihash, is_idchar, is_idstart,
6382         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
6383         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
6384         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
6385         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
6386         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
6387         of _cpp_simplify_pathname, _cpp_find_include_file,
6388         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
6389         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
6390         cppinit.c.
6391         Change all uses of U_CHAR to be unsigned char instead.
6392         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
6393
6394 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
6395
6396         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
6397         (dwarf2out_begin_prologue): Set it.
6398         (output_call_frame_info): Don't emit EH unwind info for leaves.
6399
6400         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
6401         can occur outside of an EH region.
6402         * except.c: Correct comments about rethrow behavior.
6403         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
6404
6405 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
6406
6407         * flow.c (make_edges): Always call make_eh_edge for calls.
6408
6409 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
6410
6411         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
6412         (struct cpp_buffer): Remove fname and underflow fields.
6413         (struct cpp_reader): Remove get_token field.
6414         (struct include_hash): Rename to struct ihash.  Add typedef to
6415         IHASH.
6416         (struct if_stack): Remove fname field.
6417         (IF_STACK_FRAME): Rename to IF_STACK.
6418
6419         * cpperror.c (print_containing_files): Trust that there are no
6420         macro buffers below the top file buffer.
6421         * cppfiles.c: Replace all references to 'struct include_hash'
6422         with 'IHASH'.  Rename initialize_input_buffer to
6423         init_input_buffer.  Don't set or reference cpp_buffer->fname,
6424         use buffer->ihash->name instead.
6425         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
6426         not CPP_NULL_BUFFER.
6427         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
6428         IF_STACK_FRAME, IHASH not struct include_hash.
6429         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
6430         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
6431         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
6432         references to cpp_buffer->fname (delete entirely, or use
6433         ->ihash->name instead) and IF_STACK->fname.
6434         (cpp_push_buffer): Don't set new->underflow.
6435         (do_include): Use cpp_file_buffer.
6436
6437         * cpphash.c (collect_formal_parameters): Remove duplicate
6438         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
6439         used as a macro argument name.  Don't append "..." to namebuf
6440         for varargs macros.  After we're done scanning, go through
6441         namebuf and make it NUL separated, not comma separated.
6442         (_cpp_compare_defs): Remove register tag from variables.
6443         Expect defn->argnames to be NUL separated.
6444         (_cpp_dump_definition): Expect defn->argnames to be NUL
6445         separated and in forward order.
6446         * cpphash.h: Update documentation of argnames field.
6447
6448 2000-03-08  Richard Henderson  <rth@cygnus.com>
6449
6450         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
6451         to fail.  Don't pre-expand the source operand.
6452
6453         * i386.md (strlensi): Initialize eoschar and align before use.
6454
6455 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
6456
6457         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
6458         CONSTRUCTOR element.
6459
6460 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
6461
6462         * mips.c (mips_expand_prologue): If the last
6463         named argument is the vararg marker "va_list", treat it as
6464         an unnamed argument.
6465
6466 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
6467
6468         * dbxout.c (dbxout_parms): When correcting for promoted
6469         big-endian parameters, use the mode of the DECL_RTL rather
6470         than UNITS_PER_WORD.
6471
6472 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
6473
6474         * c-common.h (make_fname_decl): Declare.
6475         * c-common.c (make_fname_decl): Define.
6476         (declare_hidden_char_array): Remove.
6477         (declare_function_name): Use make_fname_decl.
6478         * c-decl.c (c_make_fname_decl): New function.
6479         (init_decl_processing): Set make_fname_decl.
6480
6481 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
6482
6483         * cccp.c (handle_directive): Initialize backslash_newlines_p.
6484
6485 2000-03-07  Philipp Thomas  <pthomas@suse.de>
6486
6487         * po/POTFILES.in: Remove cppalloc.c from file list.
6488
6489 2000-03-07  Steve Chamberlain  <sac@pobox.com>
6490
6491         * pj.c (pj_expand_prologue): current_function->args_info is
6492         now current_function_args_info.
6493
6494         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
6495         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
6496         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
6497
6498 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6499
6500         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
6501         output as hexadecimal rather than the default octal.
6502
6503 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
6504
6505         * cpphash.c (special_symbol): Fix thinko in previous commit.
6506
6507 2000-03-07  Neil Booth  <NeilB@earthling.net>
6508
6509         * cppexp.c (struct operation, left_shift, right_shift,
6510         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
6511         "int"s to "unsigned int"s.
6512         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
6513         Similarly.
6514         * cpplib.h: Update for above.
6515         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
6516         returned from allocations.
6517
6518         * cppinit.c (opt_comp, parse_options): New functions.
6519         (handle_option): Use parse_option to parse a single command
6520         line option, that possibly takes an argument.
6521         (cpp_handle_options): Sort the array of command line options on
6522         first invocation (non-ASCII hosts only).
6523         (print_help): Update.
6524
6525 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
6526
6527         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
6528         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
6529
6530         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
6531         initialized.
6532         * cppinit.c (cpp_cleanup): Free imp->nshort also.
6533
6534         * cpperror.c (cpp_print_containing_files,
6535         cpp_print_file_and_line, v_cpp_message): Rename to
6536         print_containing_files, print_file_and_line, and v_message.
6537         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
6538         to _cpp_parse_expr, parse_escape, and lex.
6539         (parse_charconst): Remove broken multibyte support.
6540         * cppfiles.c (include_hash): Make static.
6541         (cpp_included): New function.
6542         (merge_include_chains, find_include_file, finclude,
6543         simplify_pathname): Rename to _cpp_merge_include_chains,
6544         _cpp_find_include_file, _cpp_read_include_file, and
6545         _cpp_simplify_pathname.
6546         * cpphash.c (cpp_lookup, free_definition, delete_macro,
6547         cpp_install, create_definition, macroexpand, compare_defs,
6548         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
6549         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
6550         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
6551         * cppinit.c (cpp_handle_option): Rename to handle_option, make
6552         static.
6553         * cpplib.c: Remove extern prototype of cpp_parse_expr.
6554
6555         * cpphash.h: Update prototypes.
6556         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
6557
6558 2000-03-07  Andrew Haley  <aph@cygnus.com>
6559
6560         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
6561         PTRDIFF_TYPE should be based solely on Pmode.
6562         (SIZE_TYPE): ditto.
6563
6564 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6565
6566         * rtl.h (rtunion_def): Constify member `rtstr'.
6567         (emit_line_note_after, emit_line_note, emit_line_note_force,
6568         emit_note, decode_asm_operands): Constify.
6569
6570         * cse.c (canon_hash): Likewise.
6571
6572         * dbxout.c (dbxout_block): Likewise.
6573
6574         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
6575         v_warning_for_asm): Likewise.
6576
6577         * dwarfout.c (function_start_label): Likewise.
6578
6579         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
6580         emit_line_note_force): Likewise.
6581
6582         * final.c (last_filename, asm_insn_count, final_scan_insn,
6583         output_source_line): Likewise.
6584
6585         * function.h (struct emit_status): Likewise.
6586
6587         * gcse.c (hash_expr_1): Likewise.
6588
6589         * genattr.c (gen_attr, main): Likewise.
6590
6591         * genattrtab.c (struct function_unit, current_alternative_string,
6592         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
6593         attr_numeral, check_attr_test, check_attr_value,
6594         convert_set_attr_alternative, convert_set_attr,
6595         compute_alternative_mask, simplify_by_exploding, gen_attr,
6596         gen_unit): Likewise.
6597
6598         * genflags.c (gen_insn): Likewise.
6599
6600         * gengenrtl.c (type_from_format): Likewise.
6601
6602         * genopinit.c (gen_insn): Likewise.
6603
6604         * genoutput.c (n_occurrences, process_template, process_template):
6605         Likewise.
6606
6607         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
6608         Likewise.
6609
6610         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
6611         Likewise.
6612
6613         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
6614         ggc_set_mark, ggc_get_size): Likewise.
6615
6616         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
6617
6618         * optabs.c (init_one_libfunc): Likewise.
6619
6620         * output.h (assemble_start_function): Likewise.
6621
6622         * recog.c (decode_asm_operands): Likewise.
6623
6624         * toplev.c (rest_of_compilation): Likewise.
6625
6626         * tree.h (emit_line_note_after, emit_line_note,
6627         emit_line_note_force): Likewise.
6628
6629         * varasm.c (asm_output_bss, asm_output_aligned_bss,
6630         asm_emit_uninitialised, assemble_start_function,
6631         assemble_variable, const_hash, compare_constant_1,
6632         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
6633
6634         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
6635
6636         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
6637
6638         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
6639
6640         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
6641
6642         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
6643         arm_dllimport_name_p): Likewise.
6644
6645         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
6646         Likewise.
6647
6648         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
6649
6650         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6651
6652         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
6653         arm_mark_dllexport, arm_mark_dllimport,
6654         arm_pe_encode_section_info): Likewise.
6655
6656         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
6657         ASM_FINISH_DECLARE_OBJECT): Likewise.
6658
6659         * arm/thumb.c (thumb_function_prologue): Likewise.
6660
6661         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
6662
6663         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6664
6665         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
6666
6667         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
6668
6669         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
6670
6671         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6672
6673         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
6674         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
6675
6676         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
6677
6678         * i386/i386.c (asm_output_function_prefix): Likewise.
6679
6680         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
6681
6682         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6683
6684         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
6685
6686         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
6687         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
6688         ASM_OUTPUT_SECTION_NAME): Likewise.
6689
6690         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
6691
6692         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
6693
6694         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
6695
6696         * m32r/m32r.c (m32r_encode_section_info): Likewise.
6697
6698         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6699
6700         * mcore/mcore.c (mcore_encode_section_info): Likewise.
6701
6702         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6703
6704         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6705
6706         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6707
6708         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
6709
6710         * mips/mips.md (movdi, movsi): Likewise.
6711
6712         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6713
6714         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6715
6716         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
6717
6718         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
6719         ASM_OUTPUT_ASCII): Likewise.
6720
6721         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
6722         output_mi_thunk, output_toc): Likewise.
6723
6724         * rs6000/rs6000.md (movsi): Likewise.
6725
6726         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
6727
6728         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
6729
6730         * v850/v850.c (print_operand, print_operand_address,
6731         v850_encode_data_area): Likewise.
6732
6733 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
6734
6735         * config/mips/mips.md (zero_extendsidi2): Always force operand
6736         one to memory for mips16.
6737
6738 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6739
6740         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
6741         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
6742         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
6743         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
6744         (min_precision): Result is unsigned.
6745         (add_double, neg_double, mul_double): Low word is unsigned.
6746         (lshift_double, rshift_double, lrotate_double): Likewise.
6747         (rrotate_double, div_and_round_double): Likewise.
6748         (tree_floor_log2, compare_tree_int): New functions.
6749         (preserve_rtl_expr_temps): New declaration.
6750         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
6751         (decl_attributes): Use tree_log2 to find alignment.
6752         Check for TREE_INT_CST_HIGH for format args.
6753         (min_precision): Now unsigned.
6754         Use tree_floor_log2.
6755         (truthvalue_conversion): Delete long-disabled code.
6756         * c-decl.c (finish_struct): Clean up tests on field width.
6757         (finish_function): Use compare_tree_int.
6758         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
6759         * c-typeck.c (comptypes): Use tree_int_cst_equal.
6760         (default_conversion, digest_init): Use compare_tree_int.
6761         (build_binary_op): Use integer_all_onesp and compare_tree_int.
6762         Fix type errors in forming masks.
6763         * calls.c (initialize_argument_information): Use compare_tree_int.
6764         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
6765         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
6766         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
6767         (store_field): Use compare_tree_int.
6768         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
6769         (expand_expr, case ARRAY_REF): Use compare_tree_int.
6770         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
6771         (do_store_flag): Use compare_tree_int.
6772         * fold-const.c (encode, decode): Low part is always unsigned.
6773         (force_fit_type, add_double, neg_double, mul_double): Likewise.
6774         (lshift_double, rshift_double, lrotate_double): Likewise.
6775         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
6776         (fold_convert): Use compare_tree_int.
6777         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
6778         (invert_truthvalue, case INTEGER_CST): Likewise.
6779         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
6780         * mkdeps.c (deps_dummy_targets): Make I unsigned.
6781         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
6782         (lshift_double, rshift_double, lrotate_double, rrotate_double):
6783         Likewise.
6784         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
6785         (expand_end_case): Use compare_tree_int.
6786         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
6787         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
6788         (layout_decl): Likewise.
6789         (layout_record, layout_union): Make sizes unsigned.
6790         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
6791         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
6792         * tree.c (struct type_hash): hashcode is unsigned.
6793         (build_type_attribute_variant, type_hash_list): Likewise.
6794         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
6795         (attribute_hash_list, build_array_type, build_method_type): Likewise.
6796         (build_complex_type): Likewise.
6797         (real_value_from_int_cst): Remove unneeded casts.
6798         (integer_all_onesp): Add casts.
6799         (tree_floor_log2, compare_tree_int): New functions.
6800         (build_index_type): Use tree_int_cst_sgn.
6801         * varasm.c (assemble_variable): Use compare_tree_int.
6802
6803 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
6804
6805         * cpphash.c (collect_expansion): Also catch ## at start of macro.
6806
6807         * varasm.c (make_decl_rtl): Don't add a number to members of
6808         local classes.
6809         (make_function_rtl): Likewise.
6810
6811 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6812
6813         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
6814         patch from 2000-01-28.
6815
6816 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
6817
6818         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
6819         filled with an insn from the jump target.
6820
6821 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6822
6823         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
6824         (c4x_external_ref): Likewise.
6825         * config/c4x/c4x.c (struct name_list): Likewise.
6826
6827 1999-12-16  Ben Collins  <bcollins@debian.org>
6828
6829         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
6830         argument to genmultilib.
6831         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
6832         the contents into the multilib.h header.
6833         * gcc.c: Declare multilib_exclusions for the specs file.
6834         (set_multilib_dir): Use it.
6835         (print_multilib_info): Likewise.
6836         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
6837         to pass to genmultilib.
6838
6839 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6840
6841         * builtins.c (built_in_class_names, built_in_names): Constify a
6842         char*.
6843
6844         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
6845         int.
6846         (_mcleanup): Ensure value matches format specifier in sprintf.
6847
6848         * cpphash.c (special_symbol): Don't needlessly cast away
6849         const-ness.
6850
6851         * cppinit.c (base_name): Delete unused prototype.
6852
6853         * mkdeps.c (deps_init): Make definition K&R safe.
6854
6855         * tree.h (built_in_class_names, built_in_names): Constify a
6856         char*.
6857
6858 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
6859
6860         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
6861         floating point instructions for epilogue delay.
6862
6863         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
6864         to gas if it supports .register pseudo.
6865
6866         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
6867         LONG_DOUBLE_TYPE_SIZE if not defined.
6868         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
6869         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
6870         * real.c: Likewise.
6871         * gengenrtl.c: Likewise.
6872         * print-rtl.c: Likewise.
6873         * rtl.c: Likewise.
6874         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
6875         MASK_LONG_DOUBLE_128.
6876         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
6877         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
6878         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
6879         (SUBTARGET_SWITCHES): Define.
6880         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
6881         with -mlong-double-128.
6882         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
6883         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
6884         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
6885         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
6886         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
6887         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
6888         with -mlong-double-128.
6889         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
6890         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
6891         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
6892         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
6893         TARGET_LONG_DOUBLE_128): Define.
6894         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
6895         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
6896         long double on TARGET_ARCH64.
6897
6898 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
6899
6900         * function.c (free_temps_for_rtl_expr): Don't free slots
6901         that have been pushed into a higher level.
6902
6903         Revert this patch:
6904         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
6905
6906 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
6907
6908         * basic-block.h (ALLOCA_REG_SET): Remove.
6909         (INITIALIZE_REG_SET): New macro.
6910         * flow.c (update_life_info): Use it.
6911         (calculate_global_regs_live): Likewise.
6912         (propagate_block): Likewise.
6913         * global.c (build_insn_chain): Likewise.
6914         * haifa-sched.c (schedule_region): Likewise.
6915
6916 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
6917
6918         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
6919         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
6920         (DWARF_ARANGES_PAD_SIZE): New define.
6921         (output_aranges): Use it to pad the address range header.
6922         (DWARF_ROUND): Fix for non power of 2 rounding.
6923
6924 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
6925
6926         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
6927
6928 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
6929
6930         * tree.def (RTL_EXPR): Update documentation.
6931         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
6932         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
6933         * function.c (preserve_rtl_expr_temp): New function.
6934         (preserve_rtl_expr_temps): Likewise.
6935         (preserve_rtl_expr_result): Use it.
6936
6937         Revert this patch:
6938         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
6939
6940 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
6941
6942         * regmove.c (copy_src_to_dest)  Do not create src->dest move
6943         for unchanging destination.
6944
6945 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
6946
6947         * function.h (struct sequence_stack): Remove rtl_expr.
6948         (struct emit_staus): Likewise.
6949         (seq_rtl_expr): Remove.
6950         * tree.h (free_temps_for_rtl_expr): Don't declare.
6951         (start_sequence_for_rtl_expr): Likewise.
6952         * rtl.h (preserve_rtl_expr_result): Likewise.
6953         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
6954         (start_sequence_for_rtl_expr): Remove.
6955         (push_topmost_sequence): Don't save sequence_rtl_expr.
6956         (pop_topmost_sequence): Remove comment about not restoring it.
6957         (end_sequence): Don't set seq_rtl_expr.
6958         (init_emit): Don't initialize it.
6959         (mark_sequence_stack): Don't mark it.
6960         (mark_emit_status): Likewise.
6961         * except.c (protect_with_terminate): Use
6962         start_sequence_for_rtl_expr, not start_sequence.
6963         * expr.c (expand_expr, case RTL_EXPR): Don't call
6964         preserve_rtl_expr_result or free_temps_for_rtl_expr.
6965         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
6966         (preserve_rtl_expr_result): Remove.
6967         (free_temps_for_rtl_expr): Likewise.
6968         (pop_temp_slots): Likewise.
6969         (mark_temp_slot): Don't mark the rtl_expr.
6970         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
6971         start_sequence_for_rtl_expr.
6972
6973 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
6974
6975         * mkdeps.c, mkdeps.h: New files.
6976         * po/POTFILES.in: Add them.
6977         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
6978         (cpplib.o, cppinit.o): Depend on mkdeps.h.
6979         (mkdeps.o): New target.
6980
6981         * cppfiles.c: Delete deps_output.
6982         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
6983         OBJECT_SUFFIX, and base_name.
6984         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
6985         the include hash.
6986         (initialize_dependency_output): Use deps_init,
6987         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
6988         all the unnecessary string bashing.
6989         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
6990         level.
6991         * cpplib.c (do_include): Use deps_add_dep.
6992         * cpplib.h (struct cpp_reader): Replace deps_buffer,
6993         deps_allocated_size, deps_size, deps_column members with
6994         single pointer to a struct deps.  Delete prototype of
6995         deps_output.
6996
6997         * cppinit.c: Fix thinko in previous patch.
6998
6999 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7000
7001         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
7002         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
7003         (mode_for_size_tree): New function.
7004         (layout_decl, layout_type): Call it and clean up BLKmode checks.
7005         * tree.h (mode_for_size_tree): New declaration.
7006
7007         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
7008
7009 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
7010
7011         * stmt.c (is_body_block): Move...
7012         * dwarfout.c, dwarf2out.c: ...from here.
7013         * tree.h: Declare it.
7014         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
7015         * final.c (final_start_function): Do call remove_unnecessary_notes
7016         when scheduling.
7017
7018 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
7019
7020         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
7021
7022         * cpplib.h (_dollar_ok): New macro.
7023         (is_idchar, is_idstart): Use it.
7024         (IStable): Rename to _cpp_IStable.  Declare it const if
7025         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
7026         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
7027         is_space): Update for renamed IStable.
7028
7029         * cppinit.c: Delete all references to FAKE_CONST and CAT
7030         macros. Define init_IStable as empty macro if gcc >=2.7 or
7031         C99. Change TABLE() to ISTABLE and hardcode name of table.
7032         (cpp_start_read): Don't change the IStable based on
7033         dollars_in_ident.
7034
7035         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
7036         changed.  Handle '$' for char1 correctly.
7037         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
7038
7039         * cppexp.c (tokentab2): Make const.
7040         (cpp_lex): Make toktab const.
7041         * cppinit.c (include_defaults_array): Make const.
7042         (initialize_standard_includes): Make default_include const.
7043
7044 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
7045
7046         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
7047         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
7048         (gen_decl_die): Likewise.
7049         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
7050         (output_decl): Likewise.
7051
7052         * varasm.c (make_function_rtl): If we change the name used in the
7053         rtl, update DECL_ASSEMBLER_NAME accordingly.
7054         (make_decl_rtl): Likewise.
7055
7056         * toplev.c (rest_of_compilation): Tweak formatting.
7057
7058         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
7059         remove_unnecessary_notes.
7060         (debug_ignore_block): New fn.
7061         * toplev.h: Declare it.
7062         * emit-rtl.c (remove_unncessary_notes): Call it.
7063         * dwarf2out.c (dwarf2out_ignore_block): New fn.
7064         * dwarf2out.h: Declare it.
7065         * final.c (final_start_function): Don't call remove_unnecessary_notes
7066         if we did insn scheduling.
7067
7068 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
7069
7070         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
7071         * cpplib.h: Delete SET_CPP_PEDANTIC.
7072
7073 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7074
7075         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
7076         result is a RECORD_TYPE.
7077
7078 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
7079
7080         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
7081
7082 2000-03-03  Richard Henderson  <rth@cygnus.com>
7083
7084         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
7085         addition over compliments over shifts.
7086
7087 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7088
7089         * reload1.c (reload_combine_note_use): Handle return register USEs.
7090         REG case: Handle multi-hard-register hard regs.
7091
7092 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7093
7094         * md.texi: Document use of '*' in insn pattern name.
7095
7096 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
7097
7098         * calls.c (special_function_p): operator new may not be malloc-like.
7099
7100         * gcse.c (dump_hash_table): Really fix error in last change.
7101
7102 2000-03-02  Denis Chertykov  <denisc@overta.ru>
7103
7104         * avr.c (print_operand): Use print_operand_address instead of
7105         output_addr_const.
7106         * avr/libgcc.S: Cleanup code.
7107
7108 2000-03-02  Richard Henderson  <rth@cygnus.com>
7109
7110         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
7111
7112 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
7113
7114         * tree.h (TYPE_ALIGN_UNIT): New macro.
7115
7116 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
7117
7118         * i386.c: (constant_call_address_operand): Reject CONST_INT.
7119
7120 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
7121
7122         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
7123         for the buffer.
7124         (SET_CPP_PEDANTIC): New macro.
7125         * cpplib.c (do_include): Don't bother checking system_header_p.
7126         (do_warning, do_ident, do_assert, do_unassert): Likewise.
7127         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
7128
7129         * function.h (struct expr_status): Add x_arg_space_so_far.
7130         (arg_space_so_far): New macro.
7131         * expr.c (init_expr): Initialize it.
7132         * calls.c (emit_call_1): Reset it.
7133         (compute_argument_block_size, expand_call): Use it.
7134         (expand_call, store_one_arg): Increment it.
7135
7136 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7137
7138         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
7139         a UNION_TYPE.
7140
7141 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
7142
7143         * cppfiles.c (cpp_read_file): New function.
7144
7145         * cpphash.c (collect_expansion): Make sure to reset last_token
7146         to NORM when we hit a string.  Handle trailing whitespace
7147         properly when the expansion is empty.
7148         (create_definition): Disable line commands while parsing the
7149         directive line.
7150         (dump_definition): If pfile->lineno == 0, output a line
7151         command ahead of the dump, and add a trailing newline.
7152
7153         * cppinit.c (append_include_chain): Add fifth argument, which
7154         indicates whether or not system headers are C++ aware.
7155         (initialize_standard_includes): New function,
7156         broken out of read_and_prescan.  Pass 'cxx_aware' value from
7157         the include_defaults_array on to append_include_chain.
7158         (dump_special_to_buffer): Const-ify char array.
7159         (builtin_array): Don't dump __BASE_FILE__.
7160         (cpp_start_read): Use cpp_read_file.  Reorder code for
7161         clarity.  Don't output line commands here for -D/-A/-U
7162         switches.  Don't call deps_output for files included with
7163         -include or -imacros.
7164
7165         * cpplib.c (do_define): Don't pay any attention to the second
7166         argument.
7167         (cpp_expand_to_buffer): Disable line commands while scanning.
7168         (output_line_command): Work in the file buffer.
7169         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
7170         Fix formatting of comments.  Prototype cpp_read_file.
7171
7172 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7173
7174         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
7175         reference the language-equivalent of sizetype.
7176         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
7177         * fold-const.c (size_binop, size_diffop): Put back checks.
7178         * gcse.c (dump_hash_table): Fix minor error in last change.
7179         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
7180         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
7181         all sizetypes.
7182
7183 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
7184
7185         * calls.c (expand_call)  Do not attempt to combine stack adjustments
7186         with inhibit_defer_pop set.
7187
7188 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
7189
7190         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
7191         the DECL_SIZE for a FIELD_DECL.
7192
7193 2000-03-01  Bruce Korb  <bkorb@gnu.org>
7194
7195         * fixinc/inclhack.tpl: remove unused symlinks
7196         * fixinc/README: GCC Maintainer info
7197         * fixinc/inclhack.sh: regen
7198         * fixinc/fixincl.sh: regen
7199
7200 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
7201
7202         * cpphash.c (collect_expansion): Trim trailing white space
7203         from macro definitions, but don't go past the last insertion
7204         point.
7205
7206 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
7207
7208         * i386.md (mulqi3): New pattern.
7209
7210 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
7211
7212         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
7213         token types.
7214         (struct cpp_reader): Add parsing_if_directive and
7215         parsing_define_directive flags.
7216         (struct cpp_options): Remove output_conditionals flag.
7217         (check_macro_name): Delete prototype.
7218
7219         * cpphash.h (struct macrodef): Delete.
7220         (struct reflist): Separate from struct definition.
7221         (struct definition): Remove unused fields.  Add column number.
7222         (create_definition): Returns a DEFINITION *.  Takes a
7223         cpp_reader * and an int.
7224
7225         * cpphash.c (SKIP_WHITE_SPACE): Delete.
7226         (PEEKC): Copy defn from cpplib.c.
7227         (rest_extension, REST_EXTENSION_LENGTH): Delete.
7228         (struct arg): New.
7229         (struct arglist): Simplify.
7230         (collect_expansion): Rewrite.  Get tokens by calling
7231         cpp_get_token.  Add more error checking.
7232         (collect_formal_parameters): New function, broken out of
7233         create_definition and reworked to use get_directive_token.
7234         (create_definition): All real work is now in collect_expansion
7235         and collect_formal_parameters.  do_define handles finding the
7236         macro name.  Return a DEFINITION, not a MACRODEF.
7237         (macroexpand): Replace bcopy with memcpy throughout.  Replace
7238         character-at-a-time copy loop with memcpy and pointer increments.
7239         (compare-defs): d1->argnames / d2->argnames might be null.
7240
7241         * cpplib.c (copy_rest_of_line): Delete function.
7242         (skip_rest_of_line): Do all the work ourselves.
7243         (skip_string): New function.
7244         (parse_string): Use skip_string.
7245         (get_macro_name): New function.
7246         (check_macro_name): Delete.
7247         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
7248         (cpp_skip_hspace): Use CPP_BUMP_LINE.
7249         (handle_directive): ICE if we're called on a macro buffer.
7250         (do_define): Determine macro name and type (funlike/objlike)
7251         here.  Expunge all uses of MACRODEF.
7252         (cpp_push_buffer): Set line_base to NULL.
7253         (do_undef, read_line_number): Don't worry about getting a POP token.
7254         (eval_if_expression): Set/reset parsing_if_directive around
7255         cpp_parse_expr. Don't clear only_seen_white.
7256         (skip_if_group): Remove output_conditionals logic.  Use
7257         skip_rest_of_line.
7258         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
7259         tokens under appropriate conditions.
7260         (cpp_unassert): Call do_unassert not do_assert.  Oops.
7261
7262         * cppexp.c (parse_defined): New function, break out of
7263         cpp_lex.
7264         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
7265         ourselves, with cpp_defined.
7266         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
7267
7268         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
7269         * gcc.dg/strpaste-2.c: New.
7270
7271 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
7272
7273         * fold-const.c (size_binop): Don't asert inputs are the same and
7274         have TYPE_IS_SIZETYPE set.
7275         (size_diffop): Likewise.
7276
7277 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
7278
7279         * dwarfout.c (output_block): Output abstract blocks even if they
7280         don't have TREE_ASM_WRITTEN set.
7281
7282         * calls.c (emit_library_call): Check for null REG.
7283
7284 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
7285
7286         * c-decl.c (current_function_decl): Move to toplev.c.
7287         (init_decl_processing): Don't add current_function_decl as a ggc
7288         root here.
7289         * dbxout.c (dbxout_symbol): Change return type to int.
7290         (dbxout_symbol_location, dbxout_syms): Likewise.
7291         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
7292         any locals. Use current_function_func_begin_label if set.
7293         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
7294         * dwarf2out.c (dwarf2out_begin_prologue): Set
7295         current_function_func_begin_label.
7296         * final.c (final_start_function): Reset it.
7297         * toplev.c (current_function_decl): Define it here.
7298         (current_function_func_begin_label): New variable.
7299         (main): Add both as ggc roots.
7300         * tree.h (current_function_func_begin_label): Declare.
7301
7302 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7303
7304         * gcse.c: Cleanups throughout: mostly white-space, but also
7305         some minor rearrangement of code.
7306
7307 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
7308
7309         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
7310         returns a PARALLEL.  Use emit_group_load and use_group_regs
7311         as needed.
7312         (emit_library_call_value): Similarly.
7313
7314         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
7315         * pa/quadlib.asm: Remove.
7316         * pa/quadlib.c: New file.
7317
7318         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
7319         * configure: Rebuilt.
7320
7321 2000-02-29  Philip Blundell  <pb@futuretv.com>
7322
7323         * config/arm/conix-elf.h: New file.
7324         * configure.in (arm*-*-conix*): New configuration.
7325         * configure: Regenerate.
7326
7327 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
7328
7329         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
7330         don't have TREE_ASM_WRITTEN set.
7331
7332 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7333
7334         * Eliminate DECL_FIELD_SIZE.
7335         * builtins.c (built_in_class_names, built_in_names): New variables.
7336         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
7337         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
7338         DECL_SIZE, not DECL_FIELD_SIZE.
7339         * print-tree.c (print_node): Remove code that prints extra blank
7340         lines in some cases.
7341         Properly handle inline and builtin function cases.
7342         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
7343         * tree.h (built_in_class_named, built_in_names): New declarations.
7344         (union tree_decl): Rename internal unions to u1 and u2 and change
7345         some of their components.
7346         Add new field built_in_class.
7347         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
7348         Reflect above changes.
7349         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
7350         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
7351         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
7352         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
7353
7354 2000-02-28  Dmitri Makarov  <dim@windriver.com>
7355
7356         * extend.texi: Document ARM's support for long/short calls.
7357
7358         * invoke.texi: Document ARM's -mlong-calls command line switch.
7359
7360         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
7361         (arm_encode_call_attribute): Add prototype.
7362         (arm_set_default_type_attribute): Add prototype.
7363         (arm_strip_name_encoding): Add prototype.
7364
7365         * config/arm/arm.c (arm_init_cumulative_args): replace
7366         initialisation og 'long_calls' field with initialisation of
7367         'call_cookie' field.
7368         (enum arm_pragma_enum): New enum.
7369         (arm_pragma_long_calls): New static variable.
7370         (arm_process_pragma): Also process "#pragma long_calls_off".
7371         (arm_valid_type_attribute_p): Accept short_call attribute.
7372         (arm_comp_type_attributes): Check long/short call attributes.
7373         (arm_encode_call_attribute):  New function:  Encode long_call
7374         or short_call attribute in function name.
7375         (arm_set_default_type_attributes): New function: Assign
7376         default attributes to newly defined type.
7377         (current_file_function_operand): New function: Return true if
7378         the symbol is a function which has already been compiled.
7379         (arm_is_longcall_p): New function: Return true if the
7380         indicated function should be called via a long call.
7381         (arm_get_strip_length): New function.  Returns number of
7382         prefix characters to be stripped from a function's name.
7383         (arm_strip_name_encoding): New function.  Strip prefix characters
7384         from a function's name.
7385
7386         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
7387         with 'call_cookie'.
7388         (SHORT_CALL_FAG_CHAR): Define.
7389         (LONG_CALL_FAG_CHAR): Define.
7390         (ENCODED_SHORT_CALL_ATTR_P): Define.
7391         (ENCODED_LONG_CALL_ATTR_P): Define.
7392         (ARM_NAME_ENCODING_LENGTHS): Define.
7393         (STRIP_NAME_ENCODING): Define.
7394         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
7395         (ARM_ENCODE_CALL_TYPE): Define.
7396         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
7397         (ARM_DECLARE_FUNCTION_SIZE): Define.
7398         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
7399
7400         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
7401         if a long call is needed.
7402         (call_value): Ditto.
7403         (call_symbol): Ditto.
7404
7405         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
7406         ARM_DECLARE_FUNCTION_SIZE.
7407
7408         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
7409         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
7410         (ARM_STRIP_NAME_ENCODING): Undefine.
7411         (STRIP_NAME_ENCODING): Undefine.
7412         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
7413         (ASM_DECLARE_FUNCTION_NAME): Ditto.
7414         (ASM_OUTPUT_COMMON): Ditto.
7415         (ASM_DECLARE_OBJECT_NAME): Ditto.
7416
7417         * config/arm/pe.c (arm_dllexport_name_p): Check for
7418         ARM_PE_FLAG_CHAR.
7419         (arm_dllimport_name_p): Ditto.
7420         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
7421         (arm_mark_dllimport): Ditto.
7422
7423 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7424
7425         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
7426
7427 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
7428
7429         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
7430
7431 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
7432
7433         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
7434         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
7435         NO_BUILTIN_WCHAR_TYPE is not defined.
7436         (CPP_WCHAR_TYPE): Delete.
7437         * cccp.c (main): Don't change wchar_type if cplusplus.
7438         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
7439
7440 2000-02-28  Nick Clifton  <nickc@cygnus.com>
7441
7442         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
7443
7444 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
7445
7446         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
7447         (ASM_WEAKEN_LABEL): Define.
7448
7449 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
7450
7451         * expr.c (store_constructor): Do not emit USE.
7452         * rtl.h (stupid_life_analysis): Remove.
7453
7454 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7455
7456         * function.c (number_blocks): Reset next_block_index based on
7457         what debugging format is used, not what is defined.
7458
7459         * lcm.c: Minor reformatting throughout.
7460         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
7461
7462         * toplev.c (rest_of_compilation): Account for time in
7463         optimize_mode_switching.
7464
7465         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
7466         if only marking labels.
7467
7468 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
7469
7470         * calls.c (expand_call): Attempt to combine stack adjustments with
7471         pending stack adjustments.
7472
7473 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7474
7475         * loop.c (reg_in_basic_block_p): Don't abort when falling through
7476         to the end of the function.
7477
7478 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
7479
7480         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
7481         blocks.
7482         * final.c (next_block_index): Remove.
7483         (max_block_depth): Likewise.
7484         (pending_blocks): Likewise.
7485         (init_final): Don't initialize them.
7486         (final_start_function): Don't set next_block_index.  Set up
7487         BLOCK_NUMBER.
7488         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
7489         * function.h (number_blocks): New function.
7490         * function.c (get_block_vector): New function.
7491         (identify_blocks): Use it.
7492         (reorder_blocks): Set NOTE_BLOCK.
7493         (number_blocks): New function.
7494         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
7495         * tree.h (BLOCK_NUMBER): New macro.
7496         (tree_block): Add block_num field.
7497         * dbxout.c (next_block_number): Remove.
7498         (dbxout_init): Don't set it.
7499         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
7500         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
7501         block numbers.
7502         * toplev.c (rest_of_compilation): Always call
7503         find_loop_tree_blocks.  Fix indentation.
7504         * dwarf2out.c (next_block_number): Remove.
7505         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
7506         to determine block numbers.
7507         (gen_inlined_subroutine_die): Likewise.
7508         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
7509         (decls_for_scope): Don't increment next_block_number.
7510         * dwarfout.c (next_block_number): Remove.
7511         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
7512         to determine block numbers.
7513         (output_inlined_subroutine_die): Likewise.
7514         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
7515         (output_decls_for_scope): Don't increment next_block_number.
7516         * sdbout.c (next_block_number): Remove.
7517         (sdbout_block): Use BLOCK_NUMBER.
7518         (sdbout_begin_block): Simplify.
7519         * xcoffout.c (next_block_number): Remove.
7520         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
7521         (xcoffout_begin_block): Don't set next_block_number.
7522         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
7523         next_block_number.
7524
7525 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7526
7527         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
7528         (expand_builtin_strcpy): Pass correct type to size_binop.
7529         (expand_builtin_strcmp): Likewise.
7530         Clean up conditional structure.
7531         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
7532         (complete_array_type): Don't use size_binop for MAXINDEX.
7533         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
7534         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
7535         (c_alignof): Use size_one_node.
7536         (build_unary_op): Pass arg of proper type to size_binop.
7537         (really_start_incremental_init, push_init_level): Use sizetype for
7538         constructor{,_bit,_unfilled}_index.
7539         (pop_init_label, output_init_element): Likewise.
7540         (output_pending_init_elements, process_init_element): Likewise.
7541         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
7542         * expr.c (store_expr): Use size_int.
7543         (store_constructor): Use proper types for size_binop args.
7544         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
7545         (expand_expr_unaligned): Likewise.
7546         (string_contant): Return object of sizetype.
7547         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
7548         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
7549         (ARGS_SIZE_TREE): Pass proper types to size_binop.
7550         * fold-const.c (int_const_binop): Refine when size_int is called.
7551         (fold_convert): Likewise.
7552         (size_int_wide): Rework to take KIND as arg, only take low order
7553         bits, handle new sizetype_tab datatype, and chain entries in
7554         size_table.
7555         (size_int_type_wide): New function.
7556         (size_binop): Validate types of arguments.
7557         (ssize_binop): Deleted.
7558         (size_diffop): New function.
7559         (extract_muldiv): Only fold division into multiplication for sizetypes.
7560         * function.c (assign_parms): Use size_diffop and make sure
7561         VAR field is of ssizetype; also pass proper type to size_binop.
7562         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
7563         (round_down): Deleted from here.
7564         * store-layout.c (sizetype_tab): Now an array.
7565         (sizetype_set, early_root_list): New variables.
7566         (variable_size): Use size_one_node.
7567         (round_up): Pass proper type to size_binop.
7568         (round_down): Moved to here and corrected as above.
7569         (layout_record): Pass proper arg types to size_binop.
7570         (layout_type): Likewise.
7571         If sizetype_set is zero, record the type just laid out.
7572         (make_unsigned_type): Don't call set_sizetype;
7573         (make_signed_type): Likewise; also, call fixup_signed_type.
7574         (initialize_sizetypes): New function.
7575         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
7576         set name of bitsizetype to "bit_size_type".
7577         Fix up type of sizes of all types made before call.
7578         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
7579         * tree.c (fix_sizetype): Deleted.
7580         (build_common_tree_nodes): Call initialize_sizetypes.
7581         (build_common_tree_nodes_2): Don't call fix_sizetype.
7582         * tree.h (TYPE_IS_SIZETYPE): New macro.
7583         (initialize_sizetype): New declaration.
7584         (enum size_type_kind): New type.
7585         (struct sizetype_tab): Deleted.
7586         (sizetype_tab): Now array; adjust sizetype macros.
7587         (size_diffop, size_int_type_wide): New functions.
7588         (size_int_wide): Change number of args and type; access macros changed.
7589         (ssize_int, sbitsize_int): New macros.
7590         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
7591         (ROUND_TYPE_SIZE_UNIT): New macro.
7592
7593 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
7594
7595         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
7596
7597 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7598
7599         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
7600         Mark as possibly unused.
7601
7602         * cse.c (cse_insn): Delete dead code involving tablejump.
7603         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
7604
7605         * Makefile.in (libcpp.a): Start by deleting it.
7606
7607 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7608
7609         * cpplib.h (enum file_change_code): Added rename_file.
7610         * cpplib.c (do_line): If a filename is given, set file_change to
7611         rename_file.
7612         (output_line_command): If file_change is rename_file, always
7613         output a # directive with the file name.
7614
7615         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
7616
7617 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
7618
7619         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
7620         when copying a PARM_DECL or RESULT_DECL.
7621
7622 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7623
7624         * fix-header.c (recognized_function): Also fix prototypes for
7625         functions taking "void".
7626
7627 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
7628
7629         * reload1.c (do_output_reload): Check reg_reloaded_valid before
7630         looking at reg_reloaded_contents.
7631
7632 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
7633
7634         * Makefile.in (STMP_FIXINC): New toggle.
7635         (LIBGCC2_DEPS): Delete all references.
7636         (stmp-headers): Delete target.  All references either deleted
7637         or changed to stmp-int-headers.
7638         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
7639         (LIBCPP_OBJS): Take out cppalloc.o.
7640         (cppalloc.o): Delete target.
7641         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
7642         (gen-protos, fix-header): Link with libiberty.a.
7643         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
7644         to empty.
7645
7646         * configure.in: Remove refs to strerror.
7647         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
7648         * system.h: Take out strerror stanza.
7649
7650         * cpperror.c (my_strerror): Delete function.
7651         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
7652         * cppmain.c (main): Call xmalloc_set_program_name first thing.
7653         * cppalloc.c: Delete file.
7654         * gen-protos.c: Don't provide xrealloc.
7655
7656         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
7657         xstrerror throughout.
7658
7659 2000-02-26  Bruce Korb  <bkorb@gnu.org>
7660
7661         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
7662         match for DOS headers, too.
7663         * fixinc/inclhack.sh,fixincl.x: Regenerate.
7664
7665 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
7666
7667         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
7668         is right for most ELF targets.
7669         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
7670         Let the default file use %U properly.
7671         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
7672         default.
7673
7674         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
7675         numbers.
7676
7677 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7678
7679         * toplev.c (documented_lang_options): Correct spelling error.
7680         (decode_d_option, decode_f_option, main): Likewise.
7681
7682         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
7683
7684         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
7685         to tell assembler it is permitted to expand large constants.
7686
7687 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
7688
7689         * protoize.c: (AUX_INFO_SUFFIX): New macro.
7690         (aux_info_suffix): Use.
7691         (SAVE_SUFFIX): New macro.
7692         (save_suffix): Use.
7693         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
7694         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
7695         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
7696
7697         * invoke.texi (Running Protoize): Update documentation.
7698
7699 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
7700
7701         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
7702
7703 2000-02-25  John Wehle  (john@feith.com)
7704
7705         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
7706
7707 2000-02-25  Anthony Green  <green@cygnus.com>
7708
7709         * toplev.c (rest_of_compilation): Rebuild jump labels if
7710         combine_instructions has created a new direct jump.
7711         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
7712         when appropriate.
7713         (combine_instructions): Call try_combine with new argument.
7714         Return non-null value when new direct jump instruction is created.
7715         * rtl.h: combine_instructions returns an int.
7716
7717 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
7718
7719         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
7720         jump when changing a computed jump into a jump to a known
7721         target.
7722
7723 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
7724
7725         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
7726         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
7727
7728         * i386.md (define_expand "clrstrsi"): Fix typo.
7729
7730 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
7731
7732         * rtl.texi: Fix typo.
7733
7734 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7735
7736         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
7737         UNITS_PER_WORD.  Change caller initial_elimination_offset.
7738         (rounded_frame_size): Take into account that argument pushed has
7739         changed.  Fix TARGET_ALIGN_DOUBLE problem.
7740
7741 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
7742
7743         * haifa-sched.c (schedule_block): Explain the real reason
7744         we delete REG_SAVE_NOTEs on the first insn of a block.
7745         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
7746
7747 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
7748
7749         * input.h (push_srcloc): New function.
7750         (pop_srcloc): Likewise.
7751         * toplev.c (push_srcloc): Define it.
7752         (pop_srcloc): Likewise.
7753
7754 2000-02-24  Richard Henderson  <rth@cygnus.com>
7755
7756         * flow.c (life_analysis): When collecting reg info, clear
7757         regs_ever_live.
7758
7759 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7760
7761         Fix bug exposed by reload.c no longer rounding the frame
7762         size to BIGGEST_ALIGNMENT:
7763         * sh.c (rounded_frame_size): New function.
7764         (sh_expand_prologue, sh_expand_epilogue): Use it.
7765         (initial_elimination_offset): Likewise.
7766
7767 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7768
7769         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
7770         * sh-protos.h (sh_need_epilogue): Declare.
7771         * sh.c (sh_need_epilogue_known): New static variable.
7772         (sh_need_epilogue): New function.
7773         (function_epilogue): Clear need_epilogue_known.
7774         * sh.md (return): Split into expander / insn pattern.
7775         Make the expander conditional on ! sh_need_epilogue ().
7776
7777 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
7778
7779         * machmode.h (get_mode_alignment): Declare.
7780         (GET_MODE_ALIGNMENT): Call it.
7781         * stor-layout.c (get_mode_alignment): New function. Make
7782         sure alignment is always power of 2.
7783
7784 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
7785
7786         * i386.h: Remove useless definition of "I386" and misleading
7787         comment above it.
7788
7789 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
7790
7791         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
7792         under which TREE_PERMANENT will be set.
7793         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
7794         build1): Use TREE_SET_PERMANENT.
7795         * print-tree.c (print_node): Don't report value of
7796         TREE_PERMANENT if ggc_p is true.
7797
7798         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
7799         decide whether to give a type a new alias set.
7800         * objc/objc-act.c (build_objc_string_object): Never copy the string.
7801         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
7802         of value of 'obstack'.
7803
7804
7805 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7806
7807         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
7808
7809 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7810
7811         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
7812         * cpplib.c (cpp_get_token): Produce them.
7813         * cppexp.c (cpp_lex): Handle them.
7814
7815 2000-02-23  Nick Clifton  <nickc@cygnus.com>
7816
7817         * config/arm/arm.c (arm_comp_type_attributes): Simply and
7818         comment tests on type attributes.
7819
7820 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7821
7822         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
7823         conform to documentation.
7824         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
7825         to check for special cases.
7826         * sh-protos.h (sh_loop_align): Declare.
7827         * sh.c (sh_loop_align): Define.
7828
7829 2000-02-22  Andrew Haley  <aph@cygnus.com>
7830
7831         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
7832         (SIZE_TYPE): Is 32 bits when using -mgp32.
7833         (PTRDIFF_TYPE): Ditto.
7834
7835 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7836
7837         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
7838
7839 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
7840
7841         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
7842         BIGGEST_FIELD_ALIGNMENT a constant.
7843
7844 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
7845
7846         * dwarf2out.c (output_line_info): Put the marker for the end of
7847         the line number info at the actual end.
7848         (gen_struct_or_union_type_die): Use decl_function_context
7849         to check for local classes.
7850         * dwarfout.c (output_type): Likewise.
7851
7852 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
7853
7854         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
7855         for arguments with a mode, but no type.
7856         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
7857         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
7858         * pa/long_double.h: New file.
7859         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
7860         both have 128bit wide long doubles.
7861         * configure: Rebuilt.
7862
7863 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7864
7865         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
7866
7867         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
7868         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
7869         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
7870
7871         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
7872
7873         * integrate.c (compare_blocks, find_block): Likewise.
7874
7875         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
7876
7877         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
7878
7879         * stmt.c (stmt_status, set_file_and_line_for_stmt,
7880         expand_asm_operands): Likewise.
7881
7882 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
7883
7884         * predict.c (estimate_probability): Added the pointer heuristic to
7885         the collection of static branch predictors.
7886
7887 2000-02-21  Catherine Moore  <clm@cygnus.com>
7888
7889         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
7890         * invoke.texi (-mfix7000): Document.
7891
7892 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
7893
7894         * diagnostic.c (init_output_buffer): Make it possible to output at
7895         least 32 characters if we're given a too long prefix.
7896
7897 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
7898
7899         * varasm.c (initializer_constant_valid_p): Call
7900         lang_expand_constant to simplify the constant.
7901
7902 2000-02-20  Bruce Korb  <bkorb@gnu.org>
7903
7904         * fixinc/inclhack.def(stdio_va_list):
7905         typedef needs to be disabled.
7906         * fixinc/inclhack.sh: regen
7907         * fixinc/fixincl.x: regen
7908
7909 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
7910
7911         * print-rtl.c (print_rtx): Don't print addresses when
7912         flag_dump_unnumbered.
7913
7914 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7915
7916         * sparc.c (sparc_output_scratch_registers): Mark parameter with
7917         ATTRIBUTE_UNUSED.
7918         (sparc_va_arg, sparc_flat_output_function_prologue,
7919         sparc_flat_output_function_epilogue): Cast value to unsigned in
7920         comparison.
7921         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
7922
7923         * sparc.md: Add default case in switch.
7924
7925 2000-02-19  Richard Henderson  <rth@cygnus.com>
7926
7927         * c-typeck.c (add_pending_init): Don't abort for multiple
7928         fields at the same offset.
7929         (pending_init_member): Test the correct member.
7930
7931 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7932
7933         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
7934         instead of SImode.
7935         (start_catch_handler) : Same.
7936
7937 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
7938
7939         * Makefile.in: Have flow.o depend on $(EXPR_H)
7940
7941 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7942
7943         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
7944         * c-decl.c (duplicate_decls, finish_enum): Likewise.
7945         (finish_decl): Remove -Wlarger-than code from here.
7946         * flags.h (id_clash_len): Now int.
7947         (larger_than_size): Now HOST_WIDE_INT.
7948         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
7949         Clean up checking to see if in table.
7950         (make_bit_field_ref): Remove extra parm to bitsize_int.
7951         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
7952         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
7953         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
7954         and for computing size of decl.
7955         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
7956         Move -Wlarger-than code to here.
7957         (layout_record): Remove extra arg to bitsize_int.
7958         Set TYPE_BINFO_SIZE_UNIT.
7959         (layout_union): Remove extra arg to bitsize_int.
7960         Use proper type for size of QUAL_UNION.
7961         (layout_type): Remove extra arg to bitsize_int.
7962         * toplev.c (id_clash_len): Now int.
7963         (larger_than_size): Now HOST_WIDE_INT.
7964         (decode_W_option): Clean up id-clash and larger-than- cases.
7965         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
7966         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
7967         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
7968         (struct tree_decl): New field size_unit.
7969         (size_int_wide): No HIGH operand; NUMBER is now signed.
7970         (size_int_2): Deleted.
7971         (size_int, bitsize_int): Don't use it and rework args.
7972         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
7973
7974 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
7975
7976         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
7977
7978 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
7979
7980         * invoke.texi (Warning Options): Add an explanation of why
7981         you might want the -Wfloat-equal flag.
7982
7983 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7984
7985         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
7986         * cppinit.c (new_pending_define): Add cast to avoid warning.
7987         * expmed.c (extract_bit_field): Likewise.
7988         * flow.c (enum reorder_skip_type): New type.
7989         (skip_insns_between_blcok): New it.
7990         Rework to avoid warning about possibly undefined variable.
7991         * function.c (assign_parms): Make thisparm_boundary unsigned.
7992         * genrecog.c (write_switch): Cast XWINT result to int.
7993         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
7994         * mips-tfile.c (init_file): Make two versions of FDR intializer:
7995         one for MIPS and one for Alpha.
7996         (get_tag, copy_object): Add casts to avoid warnings.
7997         * optabs.c (init_one_libfunc): Cast NAME to (char *).
7998         * reload.c (find_reloads): Make TYPE enum reload_type.
7999         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
8000         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
8001         * varasm.c (compare_constant_1): Add cast to avoid warning.
8002         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
8003         to (char *).
8004         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
8005         Cast switch operand of size to int.
8006         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
8007         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
8008         in unhandled case.
8009
8010 2000-02-18  Nick Clifton  <nickc@cygnus.com>
8011
8012         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
8013         anything for an alignment of zero.
8014
8015         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
8016         anything for an alignment of zero.
8017
8018 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
8019
8020         * gcc.texi (Bug Reporting): Refer to bugs.html.
8021         (Bug Lists): Likewise.
8022         * system.h (GCCBUGURL): New preprocessor define.
8023         * rtl.c (fancy_abort): Use it.
8024         * gcc.c (main): Likewise.
8025
8026 2000-02-18  Richard Henderson  <rth@cygnus.com>
8027
8028         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
8029         (life_analysis_1): Subsume into ...
8030         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
8031         Use update_life_info for the relaxation.
8032         (update_life_info): Update REG_BASIC_BLOCK for registers live on
8033         entry and regs_live_at_setjmp.
8034         (set_noop_p): Simplify.
8035         (notice_stack_pointer_modification_1): Renamed from s/_1//.
8036         (record_volatile_insns): Split into ...
8037         (delete_noop_moves): ... here,
8038         (notice_stack_pointer_modification): ... here,
8039         (insn_dead_p): ... and here.
8040         (propagate_block): Don't query INSN_VOLATILE.
8041         (mark_used_regs): Mind !PROP_REG_INFO.
8042         * toplev.c (rest_of_compilation): Call mark_constant_function here,
8043         not in life_analysis.
8044
8045 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
8046
8047         * loop.c (canonicalize_condition): New function,
8048         broken out of get_condition.
8049         (get_condition): Use it.
8050         * expr.h (canonicalize_condition): Prototype it.
8051
8052         * tree.h (tree_int_cst_msb): Declare.
8053         * tree.c (tree_int_cst_msb): New function.
8054
8055 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
8056
8057         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
8058         isn't set.
8059
8060         * invoke.texi (-fmessage-length=n): Document.
8061
8062 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
8063
8064         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
8065
8066 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
8067
8068         * function.c (thread_prologue_and_epilogue_insns): Put a line note
8069         after the prologue.
8070
8071 2000-02-17  Nick Clifton  <nickc@cygnus.com>
8072
8073         * config/arm/thumb.c: Replace includes of system headers with
8074         #include "system.h".
8075
8076 2000-02-16  Richard Henderson  <rth@cygnus.com>
8077
8078         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
8079         Add crtbeginS.o and crtendS.o.
8080         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
8081         (ENDFILE_SPEC): Use crtendS.o.
8082         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
8083
8084         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
8085         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
8086         shared and present.
8087         (__dso_handle): New variable.
8088         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
8089         bias to __CTOR_END__.
8090
8091 2000-02-16  Richard Henderson  <rth@cygnus.com>
8092
8093         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
8094
8095 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8096
8097         * longlong.h (__clz_tab): Declare as static to match definition.
8098
8099 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
8100         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
8101         (XREF_FILE_NAME): Define.
8102
8103         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
8104         (EH_FRAME_SECTION_ASM_OP): Define.
8105         (IDENT_ASM_OP): Define.
8106         (TEXT_SECTION_ASM_OP): Define.
8107         (CPP_SPEC): Define.
8108         (CTORS_SECTION_ASM_OP): Define.
8109         (CTOR_SECTION_FUNCTION): Use it.
8110         (DTORS_SECTION_ASM_OP): Define.
8111         (DTOR_SECTION_FUNCTION): Use it.
8112
8113 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
8114
8115         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
8116         NOTE_BASIC_BLOCK.
8117
8118         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
8119         debug_bb_n): New functions.
8120         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
8121         * basic-block.h: Prototype new functions.
8122
8123 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
8124
8125         * configure.in: Add support for avr target.
8126         * configure: Rebuilt.
8127
8128         * invoke.texi: Add AVR invocation docs.
8129         * install.texi: Add information about AVR.
8130         * md.texi: Add AVR constraint letters description.
8131         * extend.texi: Add description for AVR specific attributes.
8132
8133 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
8134
8135         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
8136
8137 2000-02-16  Nick Clifton  <nickc@cygnus.com>
8138
8139         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
8140         (make_insn_raw): Move RTL check here.
8141
8142 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8143
8144         * version.c: Include gansidecl.h and version.h.
8145
8146         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
8147
8148         * configure.in (gcc_version): When setting, narrow search to
8149         lines containing `version_string'.
8150
8151         * Makefile.in (mainversion): Likewise.
8152         (GCC_H): New variable.
8153         (gcc.h): Delete target.
8154         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
8155         (version.o): Depend on version.h.
8156         (dbxout.o): Don't depend on gcc.h.
8157
8158 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8159                           Michael Meissner  <meissner@cygnus.com>
8160
8161         * md.texi (Simple Constraints): Add item about whitespace.
8162         * genoutput.c (strip_whitespace): New.
8163         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
8164         strip_whitespace for constraints.
8165         Test pointer using NULL, not 0.
8166
8167 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8168
8169         * cpplib.c (do_line): Pedwarn for #line > 32767.
8170
8171         * c-lex.c (readescape): Warn about '\x', but do not reject it.
8172
8173 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
8174
8175         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
8176         to default cpp spec.
8177         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
8178         * cpp.texi: Document __GNUC_PATCHLEVEL__.
8179         * cpp.1: Likewise.
8180
8181         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
8182         default spec.
8183
8184 2000-02-15  Denis Chertykov  <denisc@overta.ru>
8185
8186         * configure.in: Add support for avr target.
8187
8188 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8189
8190         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
8191         (sh_addr_diff_vec_mode): Don't declare.
8192         * sh.c (sh_addr_diff_vec_mode): Delete.
8193
8194 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8195
8196         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
8197
8198 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8199
8200         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
8201         (smulsi3_highpart_i): Name.
8202         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
8203         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
8204         (smulsi3_highpart, umulsi3_highpart): Likewise.
8205
8206         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
8207         correctly independent of endianness.
8208         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
8209         confuse the optimizers.
8210         (mulsidi3+1, umulsidi3+1): New define_split.
8211
8212 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
8213
8214         * config/sh/sh.md: Guard insn splits against illegal registers.
8215         * config/sh/sh.h: Correct comment about macros.
8216
8217 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8218                           Andrew MacLeod  <amacleod@cygnus.com>
8219
8220         * Makefile.in (lcm.o): Depend on insn-attr.h.
8221         * basic-block.h (optimize_mode_switching): Declare.
8222         * lcm.c (tm_p.h, insn-attr.h): #include.
8223         (seginfo, bb_info): New structs.
8224         (antic, transp, comp, delete, insert) : New file-scope static variables.
8225         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
8226         (reg_becomes_live, optimize_mode_switching): Likewise.
8227         * tm.texi: Add description of mode switching macros.
8228         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
8229
8230         * sh-protos.h (remove_dead_before_cse): Remove prototype.
8231         (fldi_ok, fpscr_set_from_mem): New prototypes.
8232         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
8233         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
8234         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
8235         (sh_flag_remove_dead_before_cse): Remove declaration.
8236         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
8237         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
8238         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
8239         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
8240         (barrier_align): Allow for JUMP_INSNS containing a parallel.
8241         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
8242         (fldi_ok): New function.
8243         (get_fpscr_rtx): Add fpscr_rtx as GC root.
8244         (emit_sf_insn): Only generate fpu switches when optimize < 1.
8245         (emit_df_insn): Likewise.
8246         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
8247         (sh_flag_remove_dead_before_cse): Delete.
8248         (get_free_reg, fpscr_set_from_mem): New functions.
8249         * sh.md (movdf, movsf): Remove no_new_pseudos code.
8250         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
8251
8252 2000-02-15  Loren Rittle  <ljrittle@acm.org>
8253
8254         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
8255
8256 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8257
8258         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
8259         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
8260
8261         * cccp.c: Include version.h and/or don't declare `version_string'.
8262         * collect2.c: Likewise.
8263         * alpha.c: Likewise.
8264         * arm/aof.h: Likewise.
8265         * arm/coff.h: Likewise.
8266         * arm/elf.h: Likewise.
8267         * arm/pe.h: Likewise.
8268         * arm/tcoff.h: Likewise.
8269         * arm/telf.h: Likewise.
8270         * arm/tpe.h: Likewise.
8271         * arm/vxarm.h: Likewise.
8272         * convex/convex.c: Likewise.
8273         * i386/dgux.c: Likewise.
8274         * i386/sun386.h: Likewise.
8275         * m88k/m88k.c: Likewise.
8276         * mcore/mcore-pe.h: Likewise.
8277         * mips/mips.h: Likewise.
8278         * romp/romp.h: Likewise.
8279         * sh/sh.c: Likewise.
8280         * cpphash.c: Likewise.
8281         * cppinit.c: Likewise.
8282         * dwarf2out.c: Likewise.
8283         * dwarfout.c: Likewise.
8284         * gcc.c: Likewise.
8285         * gcc.h: Likewise.
8286         * mips-tfile.c: Likewise.
8287         * protoize.c: Likewise.
8288         * toplev.c: Likewise.
8289         * tree.h: Likewise.
8290
8291         * version.c (version_string): Constify a char*.
8292
8293         * version.h: New file.
8294
8295 2000-02-14  Nick Clifton  <nickc@cygnus.com>
8296
8297         * configure.in: Add mcore-elf and mcore-pe targets.
8298         * configure: Regenerate.
8299
8300         * NEWS: Add note that MCore port has been contributed.
8301
8302         * invoke.texi: Document command line switches for MCore port.
8303         * install.texi: Add MCore to list of supported targets.
8304
8305 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
8306
8307         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
8308         then we will need to import the frame handling functions.
8309         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
8310         to import the frames themselves.
8311
8312 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
8313                           Jason Eckhardt  <jle@cygnus.com>
8314
8315         * basic_block.h: Added prototype for reorder_basic_blocks.
8316         * toplev.c: Changes to add -freorder-blocks and graph dump after
8317         block reordering is done.
8318         * flow.c (reorder_block_def): New structure for use during block
8319         reordering.
8320         (REORDER_BLOCK_*): New macros to access members of above structure.
8321         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
8322         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
8323         functions for block reordering.
8324
8325 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8326
8327         * gcc.texi (Passes): Fix typo.
8328         * md.texi (Standard Names): Ditto.
8329         * tm.texi (Storage Layout): Ditto.
8330
8331 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
8332
8333         * cpplib.c (do_define): Only free the old definition if it
8334         actually had one.
8335
8336 2000-02-13   Neil Booth  <NeilB@earthling.net>
8337
8338         * cppfiles.c (read_and_prescan): When emitting deferred
8339         newlines, test speccase[] again instead of checking each
8340         possible whitespace character in turn.  When we encounter \r,
8341         look behind for \n first, then ahead.
8342
8343 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
8344
8345         * cse.c (cse_altered): New internal flag.
8346         (cse_insn): Set it if we changed an insn.
8347         (cse_main): Clear cse_altered before each basic block.
8348         Only garbage collect if cse_altered is true afterward.
8349
8350 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8351
8352         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
8353
8354 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
8355
8356         * combine.c (simplify_comparison): Fix typo.
8357
8358 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
8359
8360         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
8361         consistently.
8362
8363 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8364
8365         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
8366         previously inserted node instead of root node.  Caller changed.
8367
8368 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8369
8370         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
8371
8372 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8373
8374         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
8375         __dereg_frame_dtor): Add prototype argument.
8376
8377         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
8378
8379         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
8380
8381         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
8382
8383         * gthr-vxworks.h (__gthread_once): Likewise.
8384
8385         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
8386
8387 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
8388
8389         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
8390         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
8391         stack pointer in functions w/o saved registers, output LEAVE more often
8392         on TARGET_USE_LEAVE machines.
8393
8394 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
8395
8396         * config/arm/arm.c (arm_init_cumulative_args); New function:
8397         Initlaise the CUMULATIE_ARGS strcuture for a function
8398         defintion.
8399         (arm_function_arg): New function: Determine where to place a
8400         function's argument.  Also handles deciding the function's
8401         call cookie.
8402         (current_file_function_operand): New function: Return true if
8403         the symbol is a function which has already been compiled.
8404         (arm_is_long_call_p): New function: Return true if the
8405         indicated function should be called via a long call.
8406         (arm_valid_type_attribute_p): New function: Return true if the
8407         attribute is a valid, arm specific, attribute.
8408         (arm_comp_type_attribute): New function: Return true if the
8409         two types have compatable, arm specific, attributes.
8410
8411         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
8412         structure.
8413         (FUNCTION_ARG): Redefine to call arm_function_arg.
8414         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
8415         structure field.
8416         (INIT_CUMULATIVE_ARGS): Redefine to call
8417         arm_init_cumulative_args.
8418         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
8419         field.
8420         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
8421         field.
8422         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
8423         functions.
8424         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
8425         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
8426         (COMP_TYPE_ATTRIBUTES): Define.
8427
8428         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
8429         if a long call is needed.
8430         (call_value): Call arm_is_long_call_p to decide if a long call
8431         is needed.
8432         (call_symbol): Call arm_is_long_call_p to decide if a long call
8433         is needed.
8434
8435         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
8436
8437 2000-02-11  Denis Chertykov  <denisc@overta.ru>
8438
8439         * README.AVR: New file with information about the avr ports.
8440         * config/avr: New directory with avr port files.
8441
8442 2000-02-11  Andreas Jaeger  <aj@suse.de>
8443
8444         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
8445
8446 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
8447
8448         * cpphash.c: Fix formatting, update commentary.
8449         (dump_definition): Take three separate arguments instead of a
8450         MACRODEF structure argument.
8451         * cpphash.h: Update prototype of dump_definition.
8452         * cppinit.c (cpp_finish): Update call of dump_definition.
8453
8454         * cpplib.c (do_define): Always create new hash entry with
8455         T_MACRO type.  Remove redundant check for redefinition of
8456         poisoned identifier.  Update call of dump_definition.
8457         (do_undef): Don't call check_macro_name.  Rename sym_length to
8458         len.
8459         (do_error, do_warning): Don't use copy_rest_of_line or
8460         SKIP_WHITE_SPACE.
8461         (do_warning): Don't use pedwarn for the actual warning,
8462         only the notice about its not being in the standard.  (Fixes
8463         bug with #warning in system headers.)
8464         (do_ident): Stricter argument checking - accept only a single
8465         string after #ident.  Also, macro-expand the line.
8466         (do_xifdef): Use cpp_defined.  De-obfuscate.
8467
8468         (do_pragma): Split out specific pragma handling to separate
8469         functions.  Use get_directive_token.  Update commentary.  Do
8470         not pass on #pragma once or #pragma poison to the front end.
8471         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
8472         do_pragma_default): New.
8473
8474 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
8475
8476         * jump.c (jump_optimize_1): The first operand in a relational
8477         can be a CONST_INT.
8478         * optabs.c (emit_conditional_move): Handle relationals which
8479         have a known true/false result.
8480
8481 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
8482
8483         * function.c (thread_prologue_and_epilogue_insns): Don't insert
8484         a RETURN insn into a block which already ends with a jump.
8485
8486 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
8487
8488         * haifa-sched.c (BUF_LEN): Increase a lot.
8489
8490 2000-02-11  Nick Clifton  <nickc@cygnus.com>
8491
8492         * configure.in: Add tm_p_file specification for thumb targets.
8493         * configure: Regenerate.
8494
8495         * config/arm/thumb-protos.h: New file: Prototypes for exported
8496         functions defined in thumb.c.
8497
8498 2000-02-11  Robert Lipe  <robertl@sco.com>
8499
8500         * Makefile.in (bootstrap-lean): Remove additional files.
8501         (bootstrap2-lean): Likewise.
8502         (VOL_FILES): List of files for above.
8503
8504 2000-02-11  Nathan Sidwell  <nathan@acm.org>
8505
8506         * cpphash.c (special_symbol): Remove spurious argument to
8507         cpp_lookup.
8508
8509 2000-02-11  Joel Sherrill (joel@OARcorp.com>
8510
8511         * configure.in: (i*86-*-rtems*): Swapped elf and coff
8512         stanzas.
8513         * configure: Rebuilt.
8514
8515 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
8516
8517         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
8518
8519 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
8520
8521         * pa.c, pa.h: Remove trigraph sequences within comments.
8522
8523 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
8524
8525         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
8526
8527 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
8528
8529         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
8530
8531 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8532
8533         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
8534
8535 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8536
8537         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
8538         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
8539         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
8540         (ASM_FILE_END): Use c4x_file_end.
8541         * config/c4x/c4x.c (c4x_global_label): New function.
8542         (c4x_external_ref, c4x_file_end): Likewise.
8543
8544         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
8545         (c4x_external_ref, c4x_end_file): Likewise.
8546
8547 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
8548
8549         * cppexp.c: Don't include cpphash.h.
8550         (parse_charconst, cpp_lex): Use cpp_defined.
8551         (cpp_lex): Use get_directive_token throughout.  Remove
8552         unnecessary cases from switch.  Move assertion-handling code
8553         down to OTHER case.
8554         (cpp_parse_expr): If we see '+' or '-', check the context to
8555         determine if they are unary or binary operators.  Streamline
8556         the jumps a bit.  Do not call skip_rest_of_line.
8557
8558         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
8559         static.  Export get_directive_token.  Update commentary.
8560         (cpp_defined): New function.
8561         (do_define): Remove reference to T_PCSTRING.  Call
8562         free_definition to release memory for old definition, when
8563         redefining a macro.
8564         (eval_if_expression): Set only_seen_white to 0 before calling
8565         cpp_parse_expr.  Call skip_rest_of_line after it returns.
8566         (cpp_read_check_assertion): Don't preserve a pointer into the
8567         token buffer across a call to cpp_get_token.
8568
8569         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
8570         * cppfiles.c (redundant_include_p): Use cpp_defined.
8571         * cpphash.c (free_definition): New function.
8572         (delete_macro): Use it.  Update commentary.
8573         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
8574         free_definition.
8575         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
8576         from enum node_type.  Prototype cpp_defined and get_directive_token.
8577         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
8578
8579         * fix-header.c (check_macro_names): Use cpp_defined.
8580         (read_scan_file): Set inhibit_warnings and inhibit_errors in
8581         the options structure.
8582
8583 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8584
8585         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
8586
8587 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
8588
8589         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
8590         rather than die->die_tag.
8591
8592 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8593
8594         * combine.c (make_extraction, force_to_mode): Avoid warning on
8595         mixed-signedness conditionals.
8596         (make_field_assignment, nonzero_bits): Likewise.
8597         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
8598         (store_split_bit_field, extract_split_bit_field): Likewise.
8599         (extract_fixed_bit_field, store_bit_field,
8600         * expr.c: Change alignment to be unsigned everywhere.
8601         (move_by_pieces, store_constructor_field, store_constructor):
8602         Alignment parm is unsigned.
8603         (emit_block_move, emit_group_load, emit_group_store): Likewise.
8604         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
8605         (do_compare_rtx_and_jump): Likewise.
8606         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
8607         Compare align with GET_MODE_ALIGNMENT.
8608         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
8609         (get_inner_reference): Likewise.
8610         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
8611         (expand_assignment): Local vars for alignment now unsigned.
8612         (store_constructor, store_field, expand_expr, do_jump): Likewise.
8613         (do_compare_and_jump): Likewise.
8614         (store_field): Call new function expr_align.
8615         * expr.h (emit_block_move, emit_group_load, emit_group_store):
8616         Alignment arg now unsigned.
8617         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
8618         (do_compare_rtx_and_jump, store_bit_field): Likewise.
8619         (extract_bit_field): Likewise.
8620         * fold-const.c (add_double): Add cast to eliminate signedness warning.
8621         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
8622         (get_best_mode): Alignment arg is unsigned.
8623         * rtl.h (move_by_pieces): Likewise.
8624         * store-layout.c (maximum_field_alignment, set_alignment):
8625         Now unsigned.
8626         (layout_decl): Alignment arg is now unsigned.
8627         Remove unneeded casts.
8628         (layout_record, layout_union, layout_type): Remove unneeded casts.
8629         Local alignment variables now unsigned.
8630         (get_best_mode): Alignment arg now unsigned.
8631         * tree.c (expr_align): New function.
8632         * tree.h (expr_align): Likewise.
8633         (maximum_field_alignment, set_alignment): Now unsigned.
8634         (get_inner_reference): Alignment argument is now pointer to unsigned.
8635         * varasm.c (assemble_variable): Add cast to eliminate warning.
8636
8637 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
8638
8639         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
8640         then store directly into op0.
8641
8642         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
8643         the CALL_INSN, and emit the note immediately after it.
8644
8645 2000-02-10  Nick Clifton  <nickc@cygnus.com>
8646
8647         * config/arm/thumb.md (epilogue): Include a (return) in the
8648         generated insn, and emit it using emit_jump_insn not
8649         emit_insn.
8650
8651 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
8652
8653         * function.c (assign_temp): Change zero-sized arrays to size 1.
8654         * integrate.c (expand_inline_function): Do not update
8655         stack_alignment_needed
8656         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
8657         add some sanity checking, remove optimization for function with
8658         zero frame size.
8659
8660 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8661
8662         * flow.c (mark_regs_live_at_end): Delete unused variables.
8663
8664         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
8665
8666         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
8667         in macro FRAME_GROWS_DOWNWARD.
8668
8669         * stmt.c (expand_end_bindings): Delete unused variable.
8670
8671         * unroll.c (iteration_info): Mark parameter `loop' with
8672         ATTRIBUTE_UNUSED.
8673
8674 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8675
8676         * fixinc/server.c (load_data): Return NULL if the marker line is
8677         not found.
8678         (run_shell): If load_data returns NULL, retry the command once, in
8679         a new shell.
8680
8681         * configure: Rebuilt.
8682
8683 2000-02-09  Bruce Korb  <bkorb@gnu.org>
8684
8685         * gcc/fixincludes:  ** DELETED **
8686         * gcc/fixcpp:  ** DELETED **
8687         * gcc/fixinc-nt.sed:  ** DELETED **
8688         * gcc/just-fixinc:  ** DELETED **
8689         * gcc/Makefile.in:  Removed out-dated commentary
8690         * gcc/configure.in: Removed fast-fixincludes disablement.
8691         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
8692
8693 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
8694         * function.c (thread_prologue_and_epilogue_insns): Uncomment
8695         last change.
8696
8697 2000-02-09  Richard Henderson  <rth@cygnus.com>
8698
8699         * jump.c (delete_insn): Don't delete user labels at -O0.
8700
8701 2000-02-09  Robert Lipe  <robertl@sco.com>
8702
8703         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
8704         Don't link with HOST_LIBS.
8705
8706 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
8707
8708         * configure.in: Correct --help text for --with-dwarf2.
8709         Put tm-dwarf2.h after other tm files, if it's requested.
8710         * configure: Regenerate.
8711         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
8712         defining it.
8713
8714 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
8715
8716         * cpplib.h: Provide HASHNODE typedef and forward decl of
8717         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
8718         DEFINITION, struct hashnode, struct macrodef, struct
8719         definition, scan_decls prototype, default defn of
8720         INCLUDE_LEN_FUDGE moved elsewhere.
8721
8722         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
8723         definition, and struct hashnode moved here. Remove the unused
8724         'predefined' field from struct definition.  Replace the 'args'
8725         union with its sole member.  All users updated (cpphash.c).
8726         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
8727         multiple include guard.
8728
8729         * cpphash.c (hashf): Make static; use better algorithm; drop
8730         HASHSIZE parameter; return an unsigned int.
8731         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
8732         used. Calculate HASHSIZE modulus here.
8733         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
8734         here.
8735         (create_definition): Drop PREDEFINITION parameter.
8736         * cpplib.c (do_define): Don't calculate a hash value here.
8737         Don't pass (keyword == NULL) to create_definition.
8738
8739         * scan.h: Prototype scan_decls here.
8740         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
8741         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
8742         callers of cpp_lookup and cpp_install updated.
8743
8744         * cpphash.c (macarg): Hoist all the flag diddling out of the
8745         function...
8746         (macroexpand): ... and out of the loop that calls macarg.
8747         Skip over the initial paren before macro arguments with
8748         cpp_get_non_space_token; point may be some distance before
8749         that paren.  Abort if it's not there.
8750
8751         * cpplib.c (parse_clear_mark): Delete function.
8752         (parse_set_mark, parse_goto_mark): Make static.
8753         (ACTIVE_MARK_P): New macro.
8754         (skip_block_comment, skip_line_comment): Do not bump the line
8755         if ACTIVE_MARK_P is true.
8756         (cpp_pop_buffer): The buffer to be popped may not have an
8757         active mark.
8758         (cpp_get_token): When looking for the initial paren before
8759         macro arguments, only set a mark in a file buffer, Always
8760         return to that mark before proceeding to call macroexpand or
8761         return a NAME token.
8762
8763         * cpplib.h: Remove prototypes of parse_set_mark,
8764         parse_clear_mark, parse_goto_mark.
8765         (struct cpp_options): Rename 'put_out_comments' to
8766         'discard_comments' and invert its sense.
8767         * cppinit.c, cpphash.c, cpplib.c: All users of
8768         put_out_comments changed to use discard_comments, with
8769         opposite sense.
8770
8771 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
8772
8773         * function.c (thread_prologue_and_epilogue_insns): Don't delete
8774         the edge from a block that both jumps and falls through to the
8775         fallthru block.
8776
8777 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
8778
8779         * config/arm/arm.md (movsi): In PIC mode, make sure that a
8780         constant source address is legitimate.
8781
8782 2000-02-09  Philip Blundell  <pb@futuretv.com>
8783
8784         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
8785         correctly.
8786
8787         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
8788         generating PIC.
8789         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
8790
8791 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
8792
8793         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
8794         ends with a newline and a NUL.  Don't be so clever manipulating
8795         strings.
8796
8797 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
8798
8799         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
8800         not to BIGGEST_ALIGNMENT.
8801
8802 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
8803
8804         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
8805         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
8806         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
8807         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
8808         * frame.c (execute_cfa_insn): Handle
8809         DW_CFA_GNU_negative_offset_extended.
8810
8811 2000-02-08  Richard Henderson  <rth@cygnus.com>
8812
8813         * flow.c (tidy_fallthru_edges): Split out from ...
8814         (delete_unreachable_blocks): ... here.
8815         (find_basic_blocks): Use it.
8816
8817 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8818
8819         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
8820
8821 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
8822
8823         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
8824         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
8825         (fix-header.o): Don't depend on cpphash.h.
8826
8827         * scan.c (hashstr): New function.
8828         * scan.h: Prototype it.
8829         * fix-header.c: Don't include cpphash.h.  Use hashstr.
8830         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
8831         hashstr.  Report hash table statistics.  Add private
8832         definition of xrealloc.
8833
8834 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8835
8836         * i386.h (TARGET_SWITCHES): Fix typo in option name.
8837
8838 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
8839
8840         * function.c (thread_prologue_and_epilogue_insns): Don't replace
8841         jumps with returns unless they are jumps to the fallthru block.
8842
8843 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
8844
8845         * i386.md (addqi3_cc): Fix contraints.
8846
8847 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
8848
8849         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
8850
8851 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
8852
8853         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
8854         carriage return after a macro name.
8855
8856 2000-02-07  Fred Fish  <fnf@be.com>
8857
8858         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
8859         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
8860
8861 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
8862
8863         * cppfiles.c (deps_output): Count spacers in deps_column.
8864
8865 2000-02-07  Neil Booth  <NeilB@earthling.net>
8866
8867         * cppinit.c (initialize_dependency_output): If there is no
8868         suffix, don't try to look for known suffixes.  Use strrchr.
8869         (cpp_start_read): Remove duplicate initialization.
8870
8871 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
8872
8873         * calls.c (compute_argument_block_size): New argument
8874         preferred_stack_boundary.
8875         (expand_call): update cfun->preferred_stack_boundary, update call of
8876         compute_argument_block_size
8877         (emit_library_call): Increate cfun->preferred_stack_boundary
8878         to PREFERRED_STACK_BOUNDARY
8879         (emit_library_call_value): Likewise.
8880         * explow.c (allocate_dynamic_stack_spave): Likewise.
8881         * function.c (prepare_function_start): Set
8882         cfun->preferred_stack_boundary
8883         * function.h (struct function): Add preferred_stack_boundary field.
8884         * integrate.c (expand_inline_function): Update
8885         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
8886         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
8887         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
8888
8889 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
8890
8891         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
8892         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
8893         cpp_pedwarn, cpp_pedwarn_with_line,
8894         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
8895         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
8896         v_cpp_error_with_line, v_cpp_warning_with_line,
8897         cpp_message_from_errno, cpp_perror_with_name): Delete.
8898
8899         * cpperror.c (cpp_print_containing_files): Take starting
8900         buffer as argument.
8901         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
8902         (v_cpp_message): Now called directly by all entry points.
8903         Remove -1 case.
8904         (cpp_pfatal_with_name, cpp_message): Delete.
8905         (cpp_notice_from_errno, cpp_ice): New functions.
8906         (cpp_notice): Is now for reporting error conditions, just
8907         without an associated file.
8908         (cpp_error, cpp_error_with_line): Don't do anything if
8909         opts->inhibit_errors is on.
8910         (cpp_pedwarn_with_file_and_line): Take column argument also.
8911
8912         * cpplib.h: Update prototypes of exported functions.
8913         (struct cpp_options): Add inhibit_errors.
8914
8915         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
8916         non-error messages.  Include intl.h.
8917
8918         * cppinit.c, cppmain.c: Likewise.  Also, use
8919         cpp_notice_from_errno instead of cpp_perror_with_name or
8920         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
8921
8922         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
8923         report internal errors.
8924
8925         * cpplib.c (do_define): Switch bcopy to memcpy.
8926         Give cpp_pedwarn_with_file_and_line a dummy column argument.
8927
8928         * cpplib.c (copy_rest_of_line): Revert previous change: don't
8929         bail out early if we hit a line comment.
8930
8931 2000-02-06  Richard Henderson  <rth@cygnus.com>
8932
8933         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
8934         * basic-block.h: Declare them.
8935         * emit-rtl.h (active_insn_p): New.
8936         (next_active_insn, prev_active_insn): Use it.
8937         * rtl.h: Declare it.
8938         * function.c (emit_return_into_block): New.
8939         (thread_prologue_and_epilogue_insns): Insert return insns instead
8940         of epilogues when possible.
8941         * jump.c (jump_optimize_1): Remove code to insert a return insn
8942         on the fallthru to the exit block.
8943
8944         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
8945         and for non-empty stack frames.
8946         * i386.md (return): Expand to return-pop as needed.
8947
8948 2000-02-06  Richard Henderson  <rth@cygnus.com>
8949
8950         * simplify-rtx.c (simplify_relational_operation): Canonicalize
8951         constant to op1 for testing.
8952
8953 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8954
8955         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
8956         (fixuns_truncqfqi2): Use it.
8957
8958 2000-02-06  Richard Henderson  <rth@cygnus.com>
8959
8960         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
8961         as a TYPE_LEA insn.
8962
8963         * i386.md (widening and peepholes): Mask the constant instead of
8964         using gen_lowpart.
8965
8966 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
8967
8968         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
8969         input pointer before possibly branching off to the backslash
8970         code.
8971         * cpphash.c (macroexpand): Correctly delete \r escapes when
8972         stringifying parameters.
8973         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
8974         if we can; bail out early if we hit a line comment.
8975         (handle_directive): Treat '# 123' in an .S file just like
8976         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
8977         Return 1 for '# not_a_directive'.
8978         (get_directive_token): Pop macro buffers here, so that
8979         cpp_get_token can't sneakily move past a newline.
8980         Add sanity checks.
8981         (cpp_get_token): goto randomchar if handle_directive returns 0.
8982
8983         * cppalloc.c: Update copyright.
8984         * cpplib.c: Merge all the static function prototypes into one
8985         block.
8986         * cpplib.h: Remove #if 0 block.
8987
8988         * cpperror.c: Remove #ifdef EMACS block.
8989         * cppmain.c: Likewise.
8990         * cpphash.c: Remove #if 0 blocks.
8991         * cppinit.c: Remove #if 0 blocks, and the -lint option.
8992         * cpplib.c: Remove #if 0 blocks and code referencing
8993         pcp_inside_if or for_lint.  Remove duplicate error message.
8994         Fix error messages for #else after #else or #elif.  Reformat.
8995         Remove archaic TODO list.
8996         * cpplib.h: Remove pcp_inside_if and for_lint flags.
8997
8998 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
8999
9000         * i386/osf1elf.h: Add missing backslash to multiline string.
9001
9002 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9003
9004         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
9005
9006 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9007
9008         * Makefile.in (c-common.o): Depend on $(EXPR_H).
9009
9010         * c-common.c: Include expr.h.
9011
9012         * c-pragma.c (mark_align_stack): Add prototype.
9013
9014         * caller-save.c (add_stored_regs): Likewise.
9015
9016         * combine.c (record_promoted_value): Likewise.
9017
9018         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
9019         Likewise.
9020
9021         * cppinit.c (new_pending_define): Likewise.
9022
9023         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
9024
9025         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
9026         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
9027         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
9028         class_scope_p): Likewise.
9029
9030         * dwarf2out.h (dwarf2out_set_demangle_name_func,
9031         dwarf2out_add_library_unit_info): Likewise.
9032
9033         * ggc.h (ggc_page_print_statistics): Likewise.
9034
9035         * haifa-sched.c (propagate_deps): Likewise.
9036
9037         * reg-stack.c (next_flags_user, record_label_references): Likewise.
9038
9039         * rtl.h (set_stack_check_libfunc): Likewise.
9040
9041         * toplev.h (set_fatal_function): Likewise.
9042
9043         * toplev.c (set_fatal_function): Delete prototype.
9044
9045         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
9046
9047 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
9048
9049         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
9050         (FUNC_END): Likewise.
9051
9052 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9053
9054         * caller-save.c: Include tm_p.h.
9055
9056 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9057
9058         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
9059
9060 2000-02-04  Neil Booth  <NeilB@earthling.net>
9061
9062         * cccp.c (main): Check 'dir' for a NULL pointer before passing
9063         it to strcmp.
9064
9065 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
9066
9067         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
9068         * genflags.c: Use the max_operand_1 logic from genemit.c to
9069         calculate how many arguments gen_insn prototypes have.  Remove
9070         NO_MD_PROTOTYPES ifdefs from the generated file.
9071         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
9072         file.  Cast gen_insn initializers to insn_gen_fn.
9073         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
9074         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
9075
9076 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9077
9078         * fixinc/Makefile.in (HDR): Add machname.h.
9079         (clean): Likewise.
9080
9081 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9082
9083         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
9084         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
9085         (c4x_cpu_version): Ditto.
9086         * config/c4x/c4x-protos.h: ... here.
9087
9088 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
9089
9090         * dwarf2out.c (add_abstract_origin_attribute): Don't call
9091         gen_abstract_function on our context if we're a nested function.
9092
9093 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9094
9095         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
9096         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
9097
9098 2000-02-04  Bruce Korb  <bkorb@gnu.org>
9099
9100         * fixinc/genfixes(machname.h):
9101         Move the functionality from gen-machine.h into this file.
9102         UNdef MN_NAME_PAT if there are no names to change.
9103         Also, be a little kinder when AutoGen is not present.
9104
9105         * fixinc/Makefile.in(machname.h):
9106         Change the generation rule to use genfixes.
9107
9108         * fixinc/fixfixes.c(machine_name):
9109         machine_name_fix's functionality now dependent upon whether
9110         MN_NAME_PAT is defined.
9111
9112         * fixinc/fixtests.c(machine_name):
9113         ditto.
9114
9115         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
9116         of MN_NAME_PAT.
9117
9118         * fixinc/fixlib.h(mn_get_regexps):
9119         ditto
9120
9121         * fixinc/gen-machine.h: DELETED
9122
9123 2000-02-04  Jan Hubicka  <jh@suse.cz>
9124             Richard Henderson  <rth@cygnus.com>
9125
9126         * i386.c (SAVE_REGS_FIRST): Remove.
9127         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
9128         (ix86_compute_frame_size): Likewise.
9129         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
9130         (ix86_emit_restore_regs): Remove.
9131         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
9132         when a frame pointer is in use.
9133         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
9134         instead of pop to restore a register when profitable; emit leave
9135         when profitable.
9136         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
9137         as a TYPE_LEA insn.
9138         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
9139         * i386.md (prologue_allocate_stack): Remove.
9140         (epilogue_deallocate_stack): Remove.
9141         (pro_epilogue_adjust_stack): New.
9142
9143 2000-02-04  Richard Henderson  <rth@cygnus.com>
9144
9145         * function.c (diddle_return_value): Rework to use a callback function.
9146         Use current_function_return_rtx if it's been set up.
9147         (do_clobber_return_reg, clobber_return_register): New.
9148         (do_use_return_reg, use_return_register): New.
9149         (expand_function_end): Use them.
9150         * stmt.c (expand_null_return): Likewise.
9151         * function.h: Declare them.
9152         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
9153         (mark_reg): Change arguments as appropriate for callback.
9154         * integrate.c (expand_inline_function): Revert 19 Jan change.
9155
9156 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
9157
9158         * tm.texi (Values in Registers): Fix typo: "fo" "for".
9159         (Misc): Say the scheduler, not the Haifa scheduler.
9160
9161 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
9162
9163         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
9164         when in_mem is set.  Update all callers.
9165
9166 2000-02-04  Richard Henderson  <rth@cygnus.com>
9167
9168         * i386/openbsd.h (INT_ASM_OP): Define.
9169
9170 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
9171
9172         * tm.texi: Fix various typos.
9173
9174 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
9175
9176         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
9177         (MD_STARTFILE_PREFIX_1): New macro.
9178
9179 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
9180
9181         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
9182         destination when needed.
9183         (strmovsi, strsetsi): New expander.
9184         (strmovsi_1, strsetsi_1): New pattern.
9185         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
9186         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
9187         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
9188         * invoke.texi (align-stringops, inline-all-stringops): Document.
9189
9190 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
9191
9192         * i386/netbsd.h (INT_ASM_OP): Define.
9193
9194 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
9195
9196         * cpplib.h (cpp_reader): Add new flag, no_directives.
9197         * cpphash.c (macarg): Set it.
9198         * cpplib.c (handle_directive): If no_directives is on and we
9199         find a directive, issue an error and discard the line.
9200
9201 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
9202
9203         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
9204         FP constants.  Add ! TARGET_FPU check for FP constants.
9205
9206 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
9207
9208         * flow.c (find_basic_blocks): Don't kill label_value_list
9209         here.
9210         (cleanup_cfg): Kill it here.
9211
9212 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9213
9214         * expr.c (store_field): Ensure ALIGN is no stricter than the
9215         alignment of EXP.
9216
9217 2000-02-02  Richard Henderson  <rth@cygnus.com>
9218
9219         * jump.c (delete_insn): Partially revert 19 Jan change;
9220         don't convert unused code labels to notes at -O0.
9221
9222 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9223
9224         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
9225         split_all_insns to recreate REG_LABEL notes for flow2 pass.
9226
9227 2000-02-01  Richard Henderson  <rth@cygnus.com>
9228
9229         * i386.c (general_no_elim_operand): New.
9230         (nonmemory_no_elim_operand): New.
9231         (ix86_expand_move): Copy eliminable operands before a push.
9232         * i386-protos.h: Declare new functions.
9233         * i386.h (CAN_ELIMINATE): Simplify.
9234         (PREDICATE_CODES): Update.
9235         * i386.md (push insns): Don't allow eliminable register operands.
9236
9237 2000-02-01  Richard Henderson  <rth@cygnus.com>
9238
9239         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
9240         replace BLKmode with DECL_RTL's mode.
9241
9242 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
9243
9244         * frame.c (find_fde): Convert for loop to do-while so compiler
9245         sees it's always executed at least once.
9246         * libgcc2.c (BBINBUFSIZE): Kill.
9247         (__bb_init_prg): Use fgets.
9248         (__bb_exit_trace_func): Don't paste strings.
9249         * unroll.c (unroll_loop): Initialize unroll_type, not
9250         unroll_number, and tweak logic to match.
9251
9252         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
9253         all failure paths.
9254         (ix86_flags_dependant): Likewise.  Disentangle control flow.
9255         (ix86_sched_reorder): Break guts out to
9256         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
9257         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
9258         any possible use.
9259
9260         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
9261         use string concatenation.  Don't save and restore esi.
9262
9263         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
9264         (machname.h): Remove script to separate file.  Use two-step
9265         sequence so target is not created if script fails.
9266         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
9267         identifiers are defined.
9268         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
9269         an empty string, machine_name doesn't need to do anything at
9270         all.
9271         (is_cxx_header): Add more cases to regexp.
9272         * fixinc/fixlib.h: Update prototype.
9273         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
9274         mn_get_regexps.
9275         * fixinc/fixincl.c: Define NO_BOGOSITY.
9276
9277         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
9278         (hp_sysfile): Add missing comma.
9279         (math_exception): Put the wrapper ifdefs at the beginning and
9280         the end of the file.
9281         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
9282
9283 2000-02-01  Richard Henderson  <rth@cygnus.com>
9284
9285         * sparc.c (fp_zero_operand): Turn into a normal predicate.
9286         Use CONST0_RTX.  Update all callers.
9287         * sparc.h, sparc-protos.h: Update accordingly.
9288         * sparc.md (fp mov insns): Use fp_zero_operand directly
9289         where applicable.
9290
9291 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
9292
9293         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
9294         example.
9295
9296 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9297
9298         * Makefile.in (specs.ready): New target.
9299         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
9300
9301 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9302
9303         * fixinc.irix: Use unique filenames for writing into /tmp,
9304         * fixinc.ptx: Likewise.
9305         * fixinc.sco: Likewise.
9306         * fixinc.svr4: Likewise.
9307         * fixinc.winnt: Likewise.
9308
9309 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9310
9311         * tsystem.h: New file.
9312
9313         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
9314         s-crtS): Depend on tsystem.h.
9315
9316         * crtstuff.c: Include tsystem.h.
9317         * frame.c: Likewise.
9318         * libgcc2.c: Likewise.
9319
9320 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
9321
9322         * builtins.c (expand_builtin_memset): Expand for variable sized
9323         lengths too.
9324
9325 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
9326
9327         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
9328         on ABI.
9329
9330 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
9331
9332         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
9333
9334         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
9335
9336 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
9337
9338         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
9339         case 3->2 combining (combining with splitting) in which 2 is CC0
9340         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
9341         checked at the begining of the function with the aid of calling
9342         function 'can_combine_p'.
9343
9344 2000-01-31  Dave Brolley  <brolley@redhat.com>
9345
9346         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
9347
9348 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
9349
9350         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
9351         new label.
9352
9353 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9354
9355         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
9356
9357         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
9358         PROTO -> PARAMS.
9359
9360 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
9361
9362         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
9363         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
9364         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
9365         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
9366         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
9367         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
9368         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
9369         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
9370         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
9371         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
9372
9373         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
9374         Add %(cpp_cpu) to CPP_SPEC.
9375
9376         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
9377         Add %(cc1_cpu) to CC1_SPEC.
9378
9379 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
9380
9381         * c-decl.c (c_decode_option): Accept optional numeric argument to
9382         -Wformat and set warn_format.
9383         * c-common.c: Don't emit warning about non-constant printf format
9384         string unless warn_format > 1.
9385
9386 2000-01-30  Richard Henderson  <rth@cygnus.com>
9387
9388         * alpha.md (return_internal): Allow after reload only.
9389
9390 2000-01-30  Richard Henderson  <rth@cygnus.com>
9391
9392         * i386.c (ix86_compute_frame_size): Omit padding1 if the
9393         local frame size is zero.
9394
9395 2000-01-30  Richard Henderson  <rth@cygnus.com>
9396
9397         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
9398         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
9399         * alpha.md (return): Turn into an expander.
9400         (return_internal): Don't use $26.
9401         (epilogue): Emit the return insn.
9402
9403 2000-01-30  Richard Henderson  <rth@cygnus.com>
9404
9405         * alpha.md (negtf2, abstf2): Fix word order thinko.
9406         (extendsftf2): New.
9407         (trunctfsf2): Avoid intermediate rounding errors.
9408
9409 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
9410
9411         * cppfiles.c (find_position): Drop 'colp' argument, return the
9412         new line base.
9413         (read_and_prescan): Adjust to match.  Don't ever manipulate
9414         line or line_base except via find_position.
9415
9416 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
9417
9418         * c-parse.in: Apply Ulrich's changes from c-parse.y.
9419         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
9420         Regenerate.
9421
9422 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
9423
9424         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
9425         just print "<command line>".  If 'filename' is null or an
9426         empty string, print "<stdin>" for the filename.
9427         * cpplib.c (do_define): Don't print the 'location of the
9428         previous definition' message if we're still parsing the
9429         command line.
9430         (cpp_pedwarn_with_file_and_line): Always call
9431         cpp_file_line_for_message.
9432
9433 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
9434
9435         * flow.c (mark_regs_live_at_end): Fix typo.
9436
9437 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
9438
9439         * c-common.c: Adjust variable names, comments, help strings to c99.
9440         * c-lex.c: Likewise.
9441         * c-parse.y: Likewise.
9442         * c-tree.h: Likewise.
9443         * cccp.c: Likewise.
9444         * cpplib.h: Likewise.
9445         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
9446         * cppinit.c: Likewise.
9447
9448 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9449
9450         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
9451         * c4x.c: Define the optab rtx values.
9452         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
9453         (c4x_emit_libcall): Use new optab rtx values.
9454         (c4x_emit_libcall3): Likewise.
9455         (c4x_emit_libcall_mulhi): Likewise.
9456         * c4x-protos.h: Add prototypes for optab rtx values and change
9457         prototypes for above c4x_emit_libcall functions.
9458
9459 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9460
9461         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
9462         syntax is used.
9463         (c4x_function_prologue): Use regnames intead of float_reg_names when
9464         TI syntax is used.
9465         (c4x_function_epilogue): Likewise.
9466         (c4x_print_operand): Likewise.
9467         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
9468         * c4x.md (set_high): Disable for TARGET_TI.
9469
9470 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9471
9472         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
9473         of framepointer + constant to ADDR_REGS class.
9474         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
9475         * c4x.c (std_or_reg_operand): New function.
9476         * c4x-protos.h (std_or_reg_operand): Prototype it.
9477
9478 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9479
9480         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
9481                 object names as libgcc2.c.
9482         * libgcc.S: Use newly defined names.
9483
9484 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
9485         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
9486         function.
9487         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
9488         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
9489         (FLOW_LOOP_LAST_BLOCK): Likewise.
9490
9491 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9492
9493         * basic-block.h (struct loop): New fields 'first' and 'last'.
9494         * flow.c (flow_loops_find): Compute loop->first and loop->last.
9495         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
9496         and loop->last to check for NOTE_INSN_LOOP_END.
9497
9498 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
9499
9500         * predict.c (estimate_probability): Use the new FIRST and LAST fields
9501         of the loop descriptor rather than HEADER and LATCH. Also added
9502         missing break statements as well making some coding style modifications
9503         as suggested by Michael Hayes.
9504
9505 2000-01-28  Richard Henderson  <rth@cygnus.com>
9506
9507         * flow.c (find_basic_blocks): Remove do_cleanup argument.
9508         Break out that code ...
9509         (cleanup_cfg): ... here.
9510         (commit_one_edge_insertion): Detect a return instruction being
9511         emitted to an edge.  Emit a barrier following; clear fallthru.
9512         (commit_edge_insertions): Verify CFG consistency.
9513         * function.c (expand_function_start): Kill unused variable.
9514         (expand_function_end): Likewise.
9515         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
9516         to insert the epilogue.
9517
9518         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
9519         (delete_null_pointer_checks): Likewise.
9520         * output.h: Likewise.
9521         * reg-stack.c (reg_to_stack): Likewise.
9522         * toplev.c (rest_of_compilation): Likewise.  Run
9523         thread_prologue_and_epilogue_insns after rebuilding the CFG.
9524
9525 2000-01-28  Richard Henderson  <rth@cygnus.com>
9526
9527         * Makefile.in (flow.o): Revert 24 Jan change.
9528         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
9529         FUNCTION_VALUE result to DECL_RESULT's mode.
9530
9531         * haifa-sched.c (schedule_insns): Don't recompute reg info
9532         after reload.
9533
9534 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
9535
9536         * configure.in: Make --enable-cpplib the default.
9537         * configure: Regenerate.
9538         * gcc.dg/990119-1.c: No longer expected to fail.
9539
9540 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
9541
9542         * jump.c (jump_optimize_1): Delete an optimization that is also done
9543         by merge_blocks in flow.
9544
9545 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9546
9547         * diagnostic.c (build_message_string, output_printf,
9548         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
9549         (build_location_prefix): Fix non-literal format string.
9550
9551 2000-01-27  Richard Henderson  <rth@cygnus.com>
9552
9553         * alpha.md (trunctfsf2): New.
9554
9555 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
9556
9557         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
9558
9559 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
9560
9561         * cppinit.c (cpp_handle_option): Recognize C++ comments under
9562         -std=gnu89.
9563         * cpplib.c (skip_block_comment, skip_line_comment): Split code
9564         out of...
9565         (skip_comment) ... here.  Permit C++ comments in system
9566         headers always.  Warn about C++ comments in user code under
9567         -std=gnu89 -pedantic.
9568         (copy_comment): Use skip_comment.
9569         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
9570         return EOF.
9571         (consider_directive_while_skipping, do_else, do_endif): Call
9572         validate_else unconditionally.
9573         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
9574         text after the conditional in a system header.
9575         * cpplib.h (struct cpp_buffer): Add flag
9576         warned_cplusplus_comments.
9577
9578 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
9579
9580         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
9581         Use unshare_all_rtl_1.
9582         (unshare_all_rtl_again): New function.
9583         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
9584
9585         * function.c (purge_addressof_1): Use unshare_all_rtl_again
9586         rather than resetting the 'used' flags ourself.
9587
9588         * toplev.c (rest_of_compilation): Add current_function_decl
9589         to the unshare_all_rtl call.
9590         * tree.h: Prototype unshare_all_rtl.
9591         * rtl.h: Prototype unshare_all_rtl_again here.
9592
9593 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
9594
9595         * genoutput.c (output_prologue): Include ggc.h in generated
9596         files.
9597         * Makefile.in (insn-output.o): Depends on ggc.h.
9598
9599 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
9600             Hans-Peter Nilsson  <hp@bitrange.com>
9601
9602         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
9603         Remove redundant include of xm-ns32k.h.
9604         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
9605         Remove redundant include of xm-ns32k.h.
9606         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
9607         Remove redundant include of xm-ns32k.h.
9608         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
9609
9610         * ns32k/ns32k.h: Update comment on multiply-add instructions.
9611         (TARGET_SWITCHES): Add documentation strings.
9612         (DWARF_FRAME_REGNUM): Override default definition.
9613         (REG_CLASS_CONTENTS): Add comments.
9614         (SUBSET_P): Format to reduce line length.
9615         (SMALL_REGISTER_CLASSES): Make a run time option.
9616         (GO_IF_NONINDEXED_ADDRESS): Reformat.
9617         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
9618         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
9619         (regclass_map): fix typo in comment.
9620         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
9621         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
9622         (trace, reg_or_mem_operand): Delete, unused function.
9623         (calc_address_cost): Small offsets are cheaper than large ones.
9624         (expand_block_move): Generate more efficient code when bytes is a
9625         known at compile time.
9626         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
9627         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
9628         instead of reg_or_mem_operand.
9629
9630         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
9631         not general_operand.  Similarly use "=rm" or stricter, not "=g".
9632         For input operands, use stricter constraints than "g" if not
9633         general_operand.  Similarly use stricter predicate than
9634         "general_operand" when stricter constraints than "g" are present,
9635         except for matching constraints.
9636         (movstrsi): Use "memory_operand" for operands 0 and 1.
9637         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
9638         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
9639         not reg_or_mem_operand.
9640         (udivmoddisi4): Ditto.
9641         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
9642         Use nonimmediate_operand for operand 3, not register_operand.
9643         (udivmoddiqi4_internal): Use register_operand for operand 1, not
9644         reg_or_mem_operand.
9645
9646 2000-01-27  Fred Fish  <fnf@be.com>
9647
9648         * gthr-posix.h: Fix typo; compatibily -> compatibility.
9649         * gthr-single.h: Likewise.
9650         * gthr-solaris.h: Likewise.
9651         * gthr-vxworks.h: Likewise.
9652         * gthr-win32.h: Likewise.
9653         * gthr.h: Likewise.
9654
9655 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
9656
9657         * cppinit.c: Add " (cpplib)" to end of string printed by
9658         -v / --version.
9659
9660 2000-01-27  Richard Henderson  <rth@cygnus.com>
9661
9662         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
9663         testing for a signed comparison.
9664         (alpha_emit_floatuns): New.
9665         * alpha-protos.h: Declare it.
9666         * alpha.md (floatunsdisf2, floatunsdidf2): New.
9667         (extendsfdf2): Tidy.
9668
9669 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
9670
9671         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
9672         no -g option specifying debugging format, default to -gstabs+.
9673
9674 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
9675
9676         * calls.c (special_function_p): New argument fork_or_exec.
9677         (expand_call): When profile_arc_flag is set and the function
9678         is in the fork_or_exec group, call __bb_fork_func first.
9679         * libgcc2.c, _bb module (__bb_fork_func): New function.
9680         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
9681         output file.
9682         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
9683         * tree.h (special_function_p): Update prototype.
9684
9685 2000-01-26  Richard Henderson  <rth@cygnus.com>
9686
9687         * alpha.c (alpha_split_tfmode_pair): New.
9688         * alpha-protos.h: Declare it.
9689         * alpha.md (abstf2, negtf2): New.
9690         (movtf insn): Add input G constraint.
9691         (movtf splitter): Use alpha_split_tfmode_pair.
9692
9693 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9694
9695         * i386/cygwin.h: PROTO -> PARAMS.
9696
9697 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
9698
9699         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
9700         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
9701         using _Qp_cmp/_Q_cmp and testing the return value.
9702         (print_operand): Call reverse_condition_maybe_unordered if
9703         we are handling CCFPmode or CCFPEmode.
9704         Handle ORDERED, UN* and LTGT comparisons.
9705         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
9706         if not TARGET_HARD_QUAD.
9707         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
9708         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
9709         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
9710         Adjust gen_b* calls so that they reflect return comparison of
9711         sparc_emit_float_lib_cmp.
9712
9713 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9714
9715         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
9716         incoming operands array is large enough for one more operand.
9717         (alpha_emit_xfloating_arith): Likewise.
9718
9719 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
9720
9721         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
9722         file with one line and no trailing newline.
9723         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
9724         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
9725         checking if the match is on the line.
9726         * fixinc/gnu-regex.c: Provide regerror not __regerror.
9727
9728 2000-01-25  Richard Henderson  <rth@cygnus.com>
9729
9730         * sparc.c (output_cbranch): Fix accidental squashing of the
9731         fp branch pre-delay nop.
9732
9733 2000-01-25  Richard Henderson  <rth@cygnus.com>
9734
9735         * tree.def (UNNE_EXPR): Remove.
9736         * c-typeck.c (build_binary_op): Don't handle it.
9737         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
9738
9739         * rtl.def (UNNE): Remove.
9740         (LTGT): Add.
9741         * jump.c (reverse_condition): Update accordingly.
9742         (swap_condition): Likewise.
9743         (comparison_dominates_p): Handle unordered comparisons.
9744         (reverse_condition_maybe_unordered): New.
9745         * rtl.h (reverse_condition_maybe_unordered): Declare.
9746
9747         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
9748         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
9749         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
9750         * sparc.md (bltgt): New.
9751
9752 2000-01-25  Nick Clifton  <nickc@redhat.com>
9753
9754         * emit-rtl.c (emit_insn): Only check machine class insns for
9755         improper emission of a RETURN.
9756
9757 2000-01-25  Richard Henderson  <rth@cygnus.com>
9758
9759         * Makefile.in (flow.o): Depend on $(EXPR_H).
9760         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
9761         duplicate the structure of diddle_return_value for keeping regs live.
9762
9763 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9764
9765         * loop.c (current_loop_info): Delete.
9766         (consec_sets_invariant_p): Add loop argument, update callers.
9767         (get_condition_for_loop): Likewise.
9768         (count_nonfixed_reads, update_giv_derive): Likewise.
9769         (simplify_giv_expr, general_induction_var): Likewise.
9770         (consec_sets_giv, recombine_givs): Likewise.
9771         (move_movables): Delete loop_start and loop_end arguments,
9772         add loop argument, and update callers.
9773         (find_mem_givs, check_final_value): Likewise.
9774         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
9775         (loop_invariant_p): Rename from invariant_p, add loop argument, and
9776         update callers.
9777         (basic_induction_var): Add loop argument, delete loop_level argument,
9778         and update callers.
9779         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
9780         add loop argument, and update callers.
9781         (find_splittable_regs, find_splittable_givs): Likewise.
9782         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
9783         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
9784         (biv_total_increment): Delete loop_start and loop_end arguments;
9785         update callers.
9786         (precondition_loop_p): Delete loop_start and loop_info arguments;
9787         update callers.
9788         * loop.h (get_condition_for_loop): Add loop argument.
9789         (biv_total_increment): Delete loop_start and loop_end arguments.
9790         (precondition_loop_p): Delete loop_start and loop_info arguments;
9791         add loop argument.
9792         (final_biv_value): Delete loop_start and loop_end arguments;
9793         add loop argument.
9794         (final_giv_value, back_branch_in_range_p): Likewise.
9795
9796 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
9797
9798         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
9799
9800 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
9801
9802         * Makefile.in (c-gperf.h) : Change the "See" pointer to
9803         point to the new "generated_files" doc.
9804
9805 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
9806
9807         * config/fp-bit.c (_unord_f2): Fix typo.
9808
9809 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
9810
9811         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
9812         c-typeck.c, objc/objc-act.c: Remove all references to obstack
9813         functions obsoleted by GC, such as push_obstacks_nochange,
9814         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
9815         and code which existed only to decide whether or not to call
9816         them.  Remove now-unused NESTED argument from start_function;
9817         all callers changed.  Do not change behavior based on ggc_p.
9818         The use of the ixp_obstack in c-iterate.c and the util_obstack
9819         in objc/objc-act.c remain; these are not obsoleted by garbage
9820         collection.
9821         * c-tree.h: Update prototype for start_function.
9822
9823         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
9824
9825 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
9826
9827         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
9828         mips16.
9829
9830 2000-01-25  Richard Henderson  <rth@cygnus.com>
9831
9832         * sparc-protos.h (select_cc_mode): Declare.
9833         * sparc.c (select_cc_mode): New.  Handle unordered compares.
9834         (output_cbranch): Always reverse via code change.  Handle
9835         unordered compares.  Factor tests and string updates.
9836         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
9837         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
9838         * sparc.md (bunordered, bordered): New.
9839         (bungt, bunlt, buneq, bunge, bunle): New.
9840
9841 2000-01-25  Richard Henderson  <rth@cygnus.com>
9842
9843         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
9844         * ggc-common.c (ggc_add_rtx_varray_root): New.
9845         (ggc_mark_rtx_varray): New.
9846         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
9847         functions down below ggc_mark_foo.
9848         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
9849
9850 2000-01-25  Richard Henderson  <rth@cygnus.com>
9851
9852         * alpha.c (secondary_reload_class): Don't allocate a secondary
9853         for integral mode memories into FLOAT_REGS.  Rearrange the more
9854         complicated memory expression inward.
9855
9856 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
9857
9858         * inclhack.def: Fixes to play nicer with FreeBSD, and
9859         corrections to comments.
9860         (cxx_unready): Add select expression.
9861         (irix_sockaddr): Add bypass expression.
9862         (machine_ansi_h_va_list): New fix.
9863         (stdio_va_list): No need to edit _BSD_VA_LIST_.
9864         Split out addition of "#include <stdarg.h>" to...
9865         (stdio_stdarg_h): ... here.
9866         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
9867         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
9868         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
9869         size_t.
9870         (ultrix_ifdef): Tighten up select expression.
9871
9872         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
9873         re_ct and max_mach to avoid use of shell.  Make printed names
9874         match names in inclhack.def.  Use static copyright date.
9875         Don't count c_test and test expressions as requiring regex_t
9876         slots.  Add some commentary.
9877         * inclhack.tpl: Do not include the 'This script contains N
9878         fixup scripts' line if PROGRAM is defined.  Use static
9879         copyright date.
9880
9881 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
9882
9883         * dwarf2out.c: include "varray.h", not dyn-string.h.
9884         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
9885         (addr_const_to_string, addr_to_string): Lose.
9886         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
9887         (struct dw_val_struct): val_addr is now an rtx.
9888         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
9889         (used_rtx_varray): New varray.
9890         (dwarf2out_init): Initialize it.
9891         (save_rtx): New fn.
9892         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
9893         addr_to_string.
9894         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
9895         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
9896         * Makefile.in (dwarf2out.o): Update dependencies.
9897
9898 2000-01-24  Richard Henderson  <rth@cygnus.com>
9899
9900         * i386.c (i386_dwarf_output_addr_const): New.
9901         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
9902
9903         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
9904         if defined.
9905         * dwarfout.c (output_mem_loc_descriptor): Likewise.
9906         * i386.c (i386_simplify_dwarf_addr): New.
9907         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
9908
9909 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
9910
9911         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
9912         TYPE_STUB_DECL is NULL.
9913
9914 2000-01-24  Richard Henderson  <rth@cygnus.com>
9915
9916         * builtins.c (expand_tree_builtin): Move ...
9917         * c-common.c (expand_tree_builtin): ... here.
9918
9919 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9920
9921         * loop.h (LOOP_INFO): New accessor macro.
9922         * basic-block.h (struct loop): Rename field `info' to `aux'.
9923         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
9924         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
9925         * unroll.c (loop_iterations, unroll_loop): Likewise.
9926
9927 2000-01-24  Christopher Faylor <cgf@cygnus.com>
9928
9929         * config/i386/t-cygwin: Accomodate new winsup directory layout
9930         when searching for include files.
9931
9932 2000-01-24  Richard Henderson  <rth@cygnus.com>
9933
9934         * rtl.def: Add unordered fp comparisions.
9935         * tree.def: Likewise.
9936         * tree.h: Add ISO C 9x unordered fp comparision builtins.
9937
9938         * builtins.c (expand_tree_builtin): New function.
9939         * c-typeck.c (build_function_call): Use it.
9940         (build_binary_op): Support unordered compares.
9941         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
9942
9943         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
9944         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
9945         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
9946         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
9947         * jump.c (reverse_condition): Don't abort for UNLE etc, but
9948         return UNKNOWN.
9949         (swap_condition): Handle unordered compares.
9950         (thread_jumps): Check can_reverse before reversing.
9951         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
9952         reversed for FP.
9953
9954         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
9955         setcc is present before acking for cmp_optab.  Update all callers.
9956         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
9957         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
9958         * expr.c (expand_expr): Likewise.  Support unordered compares.
9959         (do_jump, do_store_flag): Likewise.
9960         * expr.h (enum libfunc_index): Add unordered compares.
9961
9962         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
9963         (DPBIT_FUNCS): Add _unord_df.
9964         * config/fp-bit.c (_unord_f2): New.
9965         * fp-test.c (main): Try unordered compare builtins.
9966
9967         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
9968         * alpha.c (alpha_comparison_operator): Check mode properly.
9969         (alpha_swapped_comparison_operator): Likewise.
9970         (signed_comparison_operator): Likewise.
9971         (alpha_fp_comparison_operator): New.
9972         (alpha_emit_conditional_branch): Handle unordered compares.
9973         * alpha.h (PREDICATE_CODES): Update.
9974         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
9975         (bunordered, bordered): New.
9976
9977 2000-01-24  Richard Henderson  <rth@cygnus.com>
9978
9979         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
9980         * alpha.md (movtf): New expander, insn, and splitter.
9981
9982 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
9983
9984         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
9985         dead registers.
9986
9987 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
9988
9989         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
9990         (FIXED_REGISTERS, CALL_USED_REGISTERS,
9991          REG_ALLOC_ORDER): Add frame pointer
9992         (FRAME_POINTER_REGNUM): Set to 20
9993         (HARD_FRAME_POINTER_REGNUM): New macro.
9994         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
9995         to HARD_FRAME_POINTER.
9996         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
9997         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
9998         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
9999         (HI_REGISTER_NAMES): Add "frame".
10000         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
10001         (debug_reg): Handle FRAME_POINTER_REGNUM.
10002         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
10003         GENERAL_REGS and INDEX_REGS.
10004         * i386.c (SAVED_REGS_FIRST): new macro.
10005         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
10006         (ix86_decompose_address, memory_address_length): Likewise.
10007         (regclass_map): Add frame pointer.
10008         (call_insn_operand): Handle frame_pointer_rtx.
10009         (reg_no_sp_operand): Likewise.
10010         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
10011         (print_operand, legitimize_pic_address): Fix formating.
10012         (ix86_compute_frame_size): Make static, update prototype, new
10013         parameters padding1, padding2, use ix86_nsaved_regs, use
10014         stack_alignment_needed.
10015         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
10016         to HARD_FRAME_POINTER_REGNUM conversions.
10017         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
10018         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
10019         (print_reg): Abort on FRAME_POINTER_REGNUM
10020
10021 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
10022
10023         * i386.h (PREDICATE_CODES): Add aligned_operand.
10024         * i386.c (aligned_operand): New function.
10025         (ix86_aligned_p): Kill.
10026         * i386.md (movhi_1): Emit mov for aligned operands.
10027         (promoting peep2s): Use aligned_operand.
10028
10029 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
10030
10031         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
10032         expression to allow underscores in macro names.
10033         (fix_char_macro_defines): Increment scanning pointer.
10034
10035 2000-01-23  Richard Henderson  <rth@cygnus.com>
10036
10037         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
10038         * alpha/osf5.h: New file.
10039         * configure.in (alpha-*-osf5): Add it to tm_file.
10040
10041         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
10042
10043         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
10044         (alpha_emit_xfloating_cvt, function_arg): Declare.
10045         * alpha.c (alpha_emit_conditional_branch): Call
10046         alpha_emit_xfloating_compare for TFmode compares.
10047         (alpha_lookup_xfloating_lib_func): New.
10048         (alpha_compute_xfloating_mode_arg): New.
10049         (alpha_emit_xfloating_libcall): New.
10050         (alpha_emit_xfloating_arith): New.
10051         (alpha_emit_xfloating_compare): New.
10052         (alpha_emit_xfloating_cvt): New.
10053         (print_operand): Add default abort case.
10054         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
10055         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
10056         (BIGGEST_ALIGNMENT): Increase to 128 bits.
10057         (RETURN_IN_MEMORY): True for TF/TCmode.
10058         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
10059         (FUNCTION_ARG): Move to function_arg.
10060         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
10061         (ASM_OUTPUT_LONG_DOUBLE): New.
10062         (ASM_OUTPUT_DOUBLE): Always output bits.
10063         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
10064         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
10065         (extenddftf2, trunctfdf2): New.
10066
10067 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10068
10069         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
10070         * config/sparc/sol2.h: ... here.
10071
10072 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10073
10074         * basic-block.h (struct loops): New field `levels'.
10075         * flow.c (flow_loops_level_compute): Traverse all outer loops.
10076         (flow_loop_level_compute): Initialise level to 1.
10077         (flow_loops_find): Set loops->levels.
10078         (flow_loops_dump): Print loops->levels.
10079
10080 2000-01-23  Richard Henderson  <rth@cygnus.com>
10081
10082         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
10083         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
10084
10085 2000-01-23  Richard Henderson  <rth@cygnus.com>
10086
10087         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
10088         * i386.h (DBX_REGISTER_NUMBER): Use them.
10089         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
10090         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
10091         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
10092         * i386/sequent.h: Kill incorrect comment.
10093
10094 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
10095
10096         * ggc-page.c (struct page_entry): Make `context_depth' an
10097         `unsigned short'.
10098         (struct globals): Likewise.
10099
10100 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
10101
10102         * loop.c (check_dbra_loop): When checking a loop for
10103         reversability, check the source of any stores to ensure
10104         they don't depend on an initial value.
10105
10106 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10107
10108         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
10109
10110 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
10111
10112         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
10113         'pz_scan' into scope of entire function.  Only affects
10114         compiles with -DDEBUG.
10115
10116 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
10117
10118         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
10119         section naming to that prior to 2000-01-07 patch.
10120         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
10121         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
10122         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
10123         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
10124         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
10125
10126 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
10127
10128         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
10129         constant.
10130
10131 2000-01-21  Jim Wilson  <wilson@cygnus.com>
10132
10133         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
10134         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
10135
10136 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
10137
10138         * cpphash.c (change_newlines): Delete function.
10139         (struct argdata): Delete 'newlines' and 'use_count' fields.
10140         (macroexpand): Remove code referencing those fields.
10141
10142 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10143
10144         * loop.c (loops_info): New variable.
10145         (loop_optimize): Allocate loops->array and free it on exit.
10146         Allocate memory for loops_info and assign to each loop,
10147         replacing alloca.
10148         (find_and_verify_loops): Do not allocate loops->array.
10149
10150 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
10151
10152         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
10153
10154 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
10155
10156         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
10157         pseudos if expanded after first flow.
10158         (movdi_pic_label_ref): Likewise.
10159
10160 2000-01-20  Richard Henderson  <rth@cygnus.com>
10161
10162         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
10163
10164 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
10165
10166         * Makefile.in (fixinc.sh): Depend on specs.
10167         * fixinc/Makefile.in: Add rule to create machname.h.
10168         (fixlib.o): Depend on machname.h.
10169         * fixinc/fixtests.c (machine_name): New test.
10170         * fixinc/fixfixes.c (machine_name): New fix.
10171         * fixinc/fixlib.c (mn_get_regexps): New helper function for
10172         the machine_name test and fix.
10173         * fixinc/fixlib.h: Prototype it.
10174         * fixinc/inclhack.def (machine_name): Use the C test and fix.
10175         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
10176
10177         * gcc.c (do_spec_1) [case P]: Take care not to create
10178         identifiers with three leading or trailing underscores.
10179
10180         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
10181         (fixincl): Don't specify libraries twice on link line.
10182         (gnu-regex.o): Remove special rule.
10183         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
10184         defined by config.h.  Do not define _REGEX_RE_COMP.
10185         (regcomp): Allocate and initialize a fastmap.
10186         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
10187
10188 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
10189
10190         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
10191
10192 2000-01-19  Richard Henderson  <rth@cygnus.com>
10193
10194         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
10195         arguments with BB.  Update all callers.  Tidy line wrapping.
10196
10197 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
10198
10199         * emit-rtl.c (try_split): Return last_insn if we split the
10200         last_insn.
10201
10202 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
10203
10204         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
10205         (ix86_initial_elimination_offset): Declare.
10206         * i386.c (ix86_nsaved_regs): Break out from ...
10207         (ix86_can_use_return_insn_p): ... here.
10208         (ix86_emit_save_regs): Break out from ...
10209         (ix86_expand_prologue): ... here.
10210         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
10211         out from ...
10212         (ix86_expand_epilogue): ... here.
10213         (ix86_compute_frame_size): Make static, add prototype.
10214         (ix86_initial_elimination_offset): Break out from ...
10215         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
10216
10217 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10218
10219         * recog.h (OUT_FCN): Delete.
10220
10221         * vax.md: Call `get_insn_template' instead of OUT_FCN.
10222
10223 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10224
10225         * cppalloc.c: PROTO -> PARAMS.
10226         * cpperror.c: Likewise.
10227         * cppfiles.c: Likewise.
10228         * cpplib.c: Likewise.
10229         * cpplib.h: Likewise.
10230
10231         * config/arm/arm-protos.h: PROTO -> PARAMS.
10232         * config/arm/arm.c: Likewise.
10233         * config/c4x/c4x.c: Likewise.
10234         * config/fr30/fr30-protos.h: Likewise.
10235         * config/nextstep.c: Likewise.
10236         * config/pa/pa.c: Likewise.
10237         * config/pj/pj.c: Likewise.
10238         * config/rs6000/rs6000.c: Likewise.
10239         * config/v850/v850-protos.h: Likewise.
10240         * config/v850/v850.c: Likewise.
10241
10242 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10243
10244         * i370-protos.h: New file.
10245
10246         * i370.c: Include tm_p.h.  Fix compile time warnings.
10247
10248         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
10249         warnings.
10250
10251         * i370.md: Likewise.
10252
10253 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10254
10255         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
10256         (target_isinf, target_isnan, eisnan): Mark parameter with
10257         ATTRIBUTE_UNUSED.
10258         (eiisinf): Wrap in INFINITY.
10259         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
10260         (ibmtoe): Remove unused variable `rndsav'.
10261
10262 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10263
10264         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
10265         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
10266
10267 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
10268
10269         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
10270         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
10271         (fix_char_macro_defines, fix_char_macro_uses): New functions.
10272
10273         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
10274         Recognize Emacs mode markers also.
10275         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
10276         C++ comments in C++ headers.  Call is_cxx_header only if
10277         necessary.
10278
10279         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
10280         bypass for ncurses.
10281         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
10282         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
10283         ... these, which use the new C fixes.
10284         (math_exception): Escape literal '+' in bypass expression.
10285
10286         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
10287         Regenerate.
10288
10289 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
10290
10291         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
10292         inside the MEM.
10293
10294 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10295
10296         * loop.c (loop_optimize): Allocate loop_info structure for each loop
10297         prior to calling scan_loop.
10298
10299 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10300
10301         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
10302         (split_branches, calc_live_regs): Likewise.
10303
10304 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10305
10306         * sh.md (fpu_single, fp_mode): New attributes.
10307
10308 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10309
10310         * loop.c (current_loop_info): Renamed from loop_info_data
10311         and changed to a pointer.
10312         (loop_optimize): Allocate loop_info structure for each loop
10313         and initialise to zero.
10314         (scan_loop): Set current_loop_info.
10315
10316         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
10317         on iteration_var.
10318
10319 2000-01-19  Richard Henderson  <rth@cygnus.com>
10320
10321         * stupid.c: Die die die.
10322         * Makefile.in (OBJS): Remove stupid.o.
10323         (stupid.o): Likewise.
10324
10325         * except.c (emit_eh_context): Don't emit USEs for stupid.
10326         * explow.c (probe_stack_range): Likewise.
10327         * flags.h (obey_regdecls): Remove.
10328         * flow.c (find_basic_blocks): Don't run try_merge_blocks
10329         when not optimizing.
10330         (life_analysis): Limit data collection when not optimizing.
10331         (mark_regs_live_at_end): Always mark the return value registers.
10332         (mark_used_regs): Remove dummy RETURN case.
10333         (print_rtl_with_bb): Don't consult obey_regdecls.
10334         * function.c (use_variable, use_variable_after): Remove.
10335         (assign_parms): Consult optimize not obey_regdecls.
10336         (expand_function_start): Don't emit USEs for stupid.
10337         (expand_function_end): Likewise.
10338         * global.c (build_insn_chain): Export.
10339         * integrate.c (expand_inline_function): Kill return-value USE
10340         handling code.
10341         * jump.c (jump_optimize_1): Do simple jump optimizations and
10342         dead code elimination.
10343         (calculate_can_reach_end): Remove check_deleted argument.
10344         (delete_insn): Patch out insns even when not optimizing.
10345         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
10346         * rtl.h (use_variable, use_variable_after): Remove declarations.
10347         (build_insn_chain): Declare.
10348         * stmt.c (expand_value_return): Don't emit USEs for stupid.
10349         (expand_end_bindings): Likewise.
10350         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
10351         * toplev.c (obey_regdecls): Remove.
10352         (rest_of_compilation): Don't set it.  Kill stupid in favour of
10353         flow1, local-alloc, and reload.
10354         (main): Don't set obey_regdecls.
10355
10356         * config/nextstep.c (handle_pragma): Likewise.
10357
10358         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
10359
10360         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
10361
10362 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10363
10364         * alpha-protos.h: PROTO -> PARAMS.
10365         * alpha.c: Likewise.
10366         * elf.h: Likewise.
10367         * h8300.c: Likewise.
10368         * i386-protos.h: Likewise.
10369         * i386.c: Likewise.
10370         * m32r-protos.h: Likewise.
10371         * m32r.c: Likewise.
10372         * mips.c: Likewise.
10373         * mips.md: Likewise.
10374         * gmon-sol2.c: Likewise.
10375         * sparc.c: Likewise.
10376
10377 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10378
10379         * ns32k-protos.h: New file.
10380
10381         * ns32k.c: Fix compile time warnings.
10382
10383         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
10384         warnings.
10385
10386         * ns32k.md: Likewise.
10387
10388 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10389
10390         * vax-protos.h: New file.
10391
10392         * vax.c: Fix compile time warnings.
10393
10394         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
10395         warnings.
10396
10397         * vax.md: Likewise.
10398
10399         * vaxv.md: Likewise.
10400
10401 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10402
10403         * romp-protos.h: New file.
10404
10405         * romp.c: Fix compile time warnings.
10406
10407         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
10408         warnings.
10409
10410         * romp.md: Likewise.
10411
10412 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10413
10414         * we32k-protos.h: New file.
10415
10416         * we32k.c: Fix compile time warnings.
10417
10418         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
10419         warnings.
10420
10421 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10422
10423         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
10424
10425         * except.c (eh_regs): Likewise.
10426
10427         * final.c (output_operand): Likewise.
10428
10429         * fold-const.c (target_isinf, target_isnan): Likewise.
10430
10431 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
10432
10433         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
10434         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
10435
10436         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
10437         when optimize_size.
10438         (clrstrsi): Rewrite.
10439         (strsethi, strsetqi): New expanders.
10440         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
10441         (cmpstrsi): Emit compare insn before cmpstrsi_1
10442         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
10443         (strlensi_1): Likewise.
10444         (cmpstrsi_1): Likewise; do not output compare.
10445         (strlen expander): Do not unroll when optimizing for size.
10446         (*subsi3_carry): Rename to subsi3_carry
10447         (addqi3_cc): New pattern.
10448         * i386.h (processor_costs): Add move_ratio field.
10449         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
10450         * i386.c (*_cost): Set move_ratio.
10451         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
10452         (x86_expand_strlensi_1): Rewrite the main loop.
10453
10454 2000-01-17  Richard Henderson  <rth@cygnus.com>
10455
10456         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
10457         * cse.c (find_comparison_args, fold_rtx): Likewise.
10458         * integrate.c (subst_constants): Likewise.
10459         * loop.c (get_condition): Likewise.
10460
10461         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
10462
10463         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
10464
10465 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10466
10467         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
10468         (RESTORE_WARN_FLAGS): Unpack it.
10469         Change semantic type of extension to ttype.
10470         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
10471         * c-parse.y, c-parse.c, objc/objc-parse.y,
10472         objc/objc-parse.c: Regenerate.
10473
10474 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
10475
10476         * fixinc/fixlib.c: Add copyright notice.
10477         (compile_re): New function.
10478         * fixinc/fixlib.h: Prototype compile_re.
10479
10480         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
10481         Use compile_re to compile regular expressions.
10482
10483         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
10484         where the pattern matched.
10485
10486         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
10487         use 'replace'.
10488         (ultrix_ansi_compat): Likewise.
10489         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
10490         add egrep test.
10491         (interactv_add2, interactv_add3): Delete.
10492         (x11_sprintf): Don't use filename glob.
10493         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
10494         Regenerate.
10495
10496 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10497
10498         * print-rtl.c: PROTO -> PARAMS.
10499         * real.c: Likewise.
10500         * reg-stack.c: Likewise.
10501         * resource.c: Likewise.
10502         * sdbout.h: Likewise.
10503         * simplify-rtx.c: Likewise.
10504         * stor-layout.c: Likewise.
10505         * stupid.c: Likewise.
10506         * xcoffout.c: Likewise.
10507         * xcoffout.h: Likewise.
10508
10509 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10510
10511         * toplev.c: PROTO -> PARAMS.
10512         * toplev.h: Likewise.
10513         * tree.c: Likewise.
10514         * tree.h: Likewise.
10515         * unroll.c: Likewise.
10516         * varasm.c: Likewise.
10517         * varray.c: Likewise.
10518         * varray.h: Likewise.
10519
10520 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10521
10522         * reload.c: PROTO -> PARAMS.
10523         * reload.h: Likewise.
10524         * reload1.c: Likewise.
10525         * reorg.c: Likewise.
10526         * resource.h: Likewise.
10527         * rtl.c: Likewise.
10528         * rtl.h: Likewise.
10529         * rtlanal.c: Likewise.
10530         * sbitmap.h: Likewise.
10531         * sdbout.c: Likewise.
10532         * stack.h: Likewise.
10533         * stmt.c: Likewise.
10534         * system.h: Likewise.
10535
10536 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10537
10538         * machmode.h: PROTO -> PARAMS.
10539         * mbchar.h: Likewise.
10540         * mips-tdump.c: Likewise.
10541         * mips-tfile.c: Likewise.
10542         * optabs.c: Likewise.
10543         * output.h: Likewise.
10544         * prefix.c: Likewise.
10545         * profile.c: Likewise.
10546         * protoize.c: Likewise.
10547         * real.h: Likewise.
10548         * recog.c: Likewise.
10549         * recog.h: Likewise.
10550         * regclass.c: Likewise.
10551         * regmove.c: Likewise.
10552         * regs.h: Likewise.
10553
10554 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10555
10556         * ggc-common.c: PROTO -> PARAMS.
10557         * ggc-page.c: Likewise.
10558         * ggc-simple.c: Likewise.
10559         * ggc.h: Likewise.
10560         * global.c: Likewise.
10561         * graph.c: Likewise.
10562         * gthr-win32.h: Likewise.
10563         * haifa-sched.c: Likewise.
10564         * halfpic.h: Likewise.
10565         * integrate.c: Likewise.
10566         * integrate.h: Likewise.
10567         * jump.c: Likewise.
10568         * lcm.c: Likewise.
10569         * local-alloc.c: Likewise.
10570         * loop.c: Likewise.
10571         * loop.h: Likewise.
10572
10573 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10574
10575         * genattr.c: PROTO -> PARAMS.
10576         * genattrtab.c: Likewise.
10577         * gencheck.c: Likewise.
10578         * gencodes.c: Likewise.
10579         * genconfig.c: Likewise.
10580         * genemit.c: Likewise.
10581         * genextract.c: Likewise.
10582         * genflags.c: Likewise.
10583         * gengenrtl.c: Likewise.
10584         * genopinit.c: Likewise.
10585         * genoutput.c: Likewise.
10586         * genpeep.c: Likewise.
10587         * genrecog.c: Likewise.
10588
10589 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
10590
10591         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
10592
10593 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10594
10595         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
10596         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
10597         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
10598         * configure, config.in: Rebuilt.
10599
10600 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
10601
10602         * config/i386/i386.md: Add peephole to merge successive stack
10603         adjusts.
10604
10605 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
10606
10607         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
10608         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
10609         when walking backwards to find all the parameter loads when
10610         the basic block ends in a call.
10611
10612 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10613
10614         * loop.c (this_loop_info): Delete.
10615         (uid_loop): Add in place of uid_loop_num.  All uses updated.
10616         (loop_number_exit_count): Delete and replace with entry in loop
10617         structure.  All uses updated.
10618         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
10619         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
10620         (loop_outer_loop): Likewise.
10621         (loop_invalid, loop_number_exit_labels): Likewise.
10622         (loop_used_count_register): Delete and replace with entry in
10623         loop_info structure.
10624         (find_and_verify_loops): Add loops argument.
10625         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
10626         loop_end, etc. arguments with loop structure pointer.  All callers
10627         changed.
10628         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
10629         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
10630         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
10631         (insert_bct): Likewise.
10632         (basic_induction_var): New argument level.
10633         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
10634         vtop, and cont.  Add used_count_register.
10635         (uid_loop): Delete declaration.
10636         (loop_number_exit_count): Likewise.
10637         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
10638         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
10639         (loop_outer_loop, loop_used_count_register): Likewise.
10640         (loop_invalid, loop_number_exit_labels): Likewise.
10641         (unroll_loop): Replace loop_start and loop_end arguments
10642         with loop structure pointer.
10643         (loop_precondition_p, loop_iterations): Likewise.
10644         Include basic-block.h.
10645         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
10646         with loop structure pointer.
10647         (loop_precondition_p, loop_iterations): Likewise.
10648         * basic-block.h (struct loop): New entries vtop, cont,
10649         cont_dominator, start, end, top, scan_start, exit_labels,
10650         exit_count.
10651         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
10652
10653 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10654
10655         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
10656
10657 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
10658
10659         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
10660
10661 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10662
10663         * pdp11-protos.h: New file.
10664
10665         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
10666         time warnings.
10667
10668         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
10669         warnings.
10670
10671         * pdp11.md: Likewise.
10672
10673         * 2bsd.h: Likewise.
10674
10675 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10676
10677         * mn10300-protos.h: New file.
10678
10679         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
10680         time warnings.
10681
10682         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
10683         warnings.
10684
10685         * mn10300.md: Likewise.
10686
10687 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10688
10689         * mn10200-protos.h: New file.
10690
10691         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
10692         time warnings.
10693
10694         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
10695         warnings.
10696
10697         * mn10200.md: Likewise.
10698
10699 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10700
10701         * h8300-protos.h: New file.
10702
10703         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
10704         time warnings.
10705
10706         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
10707         warnings.
10708
10709         * h8300.md: Likewise.
10710
10711 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10712
10713         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
10714         (asm_emit_uninitialised): Likewise.
10715
10716 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
10717
10718         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
10719         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
10720
10721 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
10722
10723         * config/mips/mips.c (override_options): Don't turn on extra
10724         alignment for mips16.
10725
10726 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
10727
10728         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
10729         eabi, and make sure queued POSTINCREMENT rtl is emitted at
10730         the right point.
10731
10732 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
10733
10734         * builtins.c (PAD_VARARGS_DOWN): Define.
10735         (std_expand_builtin_va_arg): Use the above macro.
10736         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
10737         * tm.texi (Register Arguments): Document the above macro.
10738
10739 2000-01-14  Nick Clifton  <nickc@cygnus.com>
10740
10741         * emit-rtl.c (emit_insn): If checking is enabled, make sure
10742         that this function has not been used to emit a jump
10743         instruction.
10744
10745         * jump.c (return_jump_1): Cope with being passed a null rtx.
10746
10747 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10748
10749         * eh-common.h: PROTO -> PARAMS.
10750         * emit-rtl.c: Likewise.
10751         * errors.c: Likewise.
10752         * errors.h: Likewise.
10753         * except.c: Likewise.
10754         * except.h: Likewise.
10755         * explow.c: Likewise.
10756         * expmed.c: Likewise.
10757         * expr.c: Likewise.
10758         * expr.h: Likewise.
10759         * final.c: Likewise.
10760         * fix-header.c: Likewise.
10761         * flow.c: Likewise.
10762         * fold-const.c: Likewise.
10763         * function.c: Likewise.
10764         * function.h: Likewise.
10765         * gcc.c: Likewise.
10766         * gcov-io.h: Likewise.
10767         * gcov.c: Likewise.
10768         * gcse.c: Likewise.
10769
10770 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10771
10772         * sh-protos.h: New file.
10773
10774         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
10775         Add static prototypes.  Fix compile time warnings.
10776
10777         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
10778         * sh.md: Likewise.
10779         * elf.h: Likewise.
10780
10781 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10782
10783         * arc-protos.h: New file.
10784
10785         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
10786         time warnings.
10787
10788         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
10789         warnings.
10790
10791         * arc.md: Likewise.
10792
10793 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10794
10795         * dsp16xx-protos.h: New file.
10796
10797         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
10798         time warnings.
10799
10800         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
10801         warnings.
10802
10803         * dsp16xx.md: Likewise.
10804
10805 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10806
10807         * convex-protos.h: New file.
10808
10809         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
10810         time warnings.
10811
10812         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
10813         warnings.
10814
10815 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10816
10817         * elxsi-protos.h: New file.
10818
10819         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
10820         time warnings.
10821
10822         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
10823         warnings.
10824
10825         * elxsi.md: Likewise.
10826
10827 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
10828
10829         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
10830         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
10831         match the comment for MIPS16.
10832
10833 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
10834
10835         * flow.c (split_edge): Do not call set_block_for_insn if we
10836         do not have a basic_block_for_insn structure.
10837
10838         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
10839         and destination functions are 32bit aligned within the trampoline.
10840         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
10841         (TRAMPOLINE_ALIGNMENT): Define.
10842
10843         * cse.c (cse_insn): When changing (set (pc) (reg)) to
10844         (set (pc) (label_ref)), verify the change creates a valid insn.
10845
10846         * fr30.c (call_operand): Tighten and rework to match rules for
10847         call RTL expressions.
10848         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
10849         * fr30.md (call patterns): Improve constraints.
10850
10851 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
10852
10853         * fr30.c (fr30_expand_epilogue): Revert last change.
10854         Use emit_jump_insn for the return insn.
10855
10856 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
10857                           Stan Cox  <scox@cygnus.com>
10858
10859         * predict.c: New file. Preliminary infrastructure work for static
10860         branch prediction and basic block reordering.
10861         * basic-block.h: Add prototype for estimate_probability.
10862         * Makefile.in: Add rules for predict.o.
10863
10864 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
10865
10866         * fixincludes (va_list): Use __not_va_list__ for the dummy.
10867         * fixinc/*: Likewise.
10868
10869 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10870
10871         * cccp.c: PROTO -> PARAMS.
10872         * cexp.y: Likewise.
10873         * collect2.c: Likewise.
10874         * combine.c: Likewise.
10875         * convert.h: Likewise.
10876         * cse.c: Likewise.
10877         * dbxout.c: Likewise.
10878         * dbxout.h: Likewise.
10879         * diagnostic.c: Likewise.
10880         * doprint.c: Likewise.
10881         * dwarf2out.c: Likewise.
10882         * dwarf2out.h: Likewise.
10883         * dwarfout.c: Likewise.
10884         * dwarfout.h: Likewise.
10885         * dyn-string.h: Likewise.
10886
10887 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10888
10889         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
10890         macro conditionals guarding use.
10891
10892         * dwarf2out.c: Include "tm_p.h".
10893
10894         * function.c (locate_and_pad_parm): Mark parameter with
10895         ATTRIBUTE_UNUSED.
10896         (expand_function_end): Likewise for variable `context'.
10897
10898         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
10899
10900 2000-01-13  Nick Clifton  <nickc@cygnus.com>
10901
10902         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
10903         register to prevent compile time warnings.
10904
10905 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
10906
10907         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
10908         to avoid -Wtraditional warning.
10909
10910 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10911
10912         * 1750a-protos.h: New file.
10913
10914         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
10915         time warnings.
10916
10917         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
10918         warnings.
10919
10920         * 1750a.md: Likewise.
10921
10922 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10923
10924         * a29k-protos.h: New file.
10925
10926         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
10927         time warnings.
10928
10929         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
10930         warnings.
10931
10932 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10933
10934         * clipper-protos.h: New file.
10935
10936         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
10937         time warnings.
10938
10939         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
10940         warnings.
10941
10942 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10943
10944         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
10945
10946 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
10947
10948         * configure.in (--enable-new-gxx-abi): New option.
10949         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
10950         * Makefile.in (GXX_ABI_FLAG): New variable.
10951         * configure: Regenerate.
10952
10953 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10954
10955         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
10956         * tm.texi (FORCE_STRUCT_BLK): Document.
10957         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
10958
10959 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
10960
10961         * config/ns32k/ns32k.md: Revert Jan 9 change.
10962
10963         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
10964         to a mode-test, if the predicate is address_operand.
10965
10966 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
10967
10968         * combine.c (if_then_else_cond): Be careful about what kinds
10969         of RTL expressions are passed to operand_subword.
10970
10971         * flow.c (split_edge): If we have to insert a new jump, make
10972         sure to associate it with a basic block.
10973
10974         * flow.c (commit_one_edge_insertion): A block with one successor
10975         can end in a JUMP_INSN that is not a simplejump.
10976
10977 2000-01-12  Robert Lipe  <robertl@sco.com>
10978
10979         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
10980         (BUILD_VA_LIST_TYPE): Define.
10981         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
10982         with crtstuff.c.
10983
10984 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
10985
10986         * cccp.c (do_pragma): Add cast to (char *).
10987
10988 2000-01-12  Richard Henderson  <rth@cygnus.com>
10989             Fred Fish  <fnf@be.com>
10990             Jason Merrill  <jason@cygnus.com>
10991
10992         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
10993         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
10994         * i386/beos-elf.h, i386/beos-pe.h: New files.
10995
10996         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
10997         * cross-make (SYSTEM_HEADER_DIR): Define using
10998         CROSS_SYSTEM_HEADER_DIR.
10999
11000         * gcc.c (LIBRARY_PATH_ENV): Provide default.
11001         (process_command): Use it.
11002         (main): Likewise.  Kill trailing = from env vars.
11003         (build_search_list): Put it back.
11004         * collect2.c (main): Use LIBRARY_PATH_ENV.
11005
11006         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
11007         * toplev.c: Use NEED_DECLARATION_ENVIRON.
11008
11009         * tm.texi (Frame Layout): Document SMALL_STACK.
11010         * c-common.c (c_common_nodes_and_builtins): Check it.
11011
11012         * system.h: Undef alloca after including glibc's <stdlib.h>,
11013         if USE_C_ALLOCA is defined.
11014
11015         * gcc.c (set_input): New fn.
11016         (main): After all input files are compiled, reset the input file
11017         info to the first.
11018
11019         * aclocal.m4 (rindex, index): If already defined, don't attempt
11020         to redefine.
11021
11022         * ginclude/varargs.h: (__va_list__): Define ifndef.
11023         * ginclude/stdarg.h: Likewise.
11024
11025         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
11026         instead of unsigned char.
11027
11028         * hash.h (true, false, boolean): Undef before enum.
11029
11030         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
11031         proper type of "HOST_WIDE_INT *", rather than their natural type of
11032         "unsigned HOST_WIDE_INT *".
11033
11034 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11035
11036         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
11037
11038         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
11039
11040         * regclass.c (choose_hard_reg_mode): Likewise.
11041
11042         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
11043
11044         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
11045
11046 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11047
11048         * c-common.c: PROTO -> PARAMS.
11049         * c-common.h: Likewise.
11050         * c-decl.c: Likewise.
11051         * c-iterate.c: Likewise.
11052         * c-lang.c: Likewise.
11053         * c-lex.c: Likewise.
11054         * c-lex.h: Likewise.
11055         * c-parse.in: Likewise.
11056         * c-pragma.c: Likewise.
11057         * c-pragma.h: Likewise.
11058         * c-tree.h: Likewise.
11059         * c-typeck.c: Likewise.
11060         * objc/objc-act.c: Likewise.
11061         * objc/objc-act.h: Likewise.
11062
11063 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11064
11065         * m88k-protos.h: New file.
11066
11067         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
11068         time warnings.
11069
11070         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
11071
11072         * m88k.md: Likewise.
11073
11074         * tekXD88.h: Likewise.
11075
11076 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11077
11078         * m68k-protos.h: New file.
11079
11080         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
11081         time warnings.
11082
11083         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
11084
11085         * mot3300.h: Likewise.
11086
11087 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
11088
11089         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
11090         extract_bitlst.
11091         (extract_bitlist): Declare bitlen.
11092
11093 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
11094
11095         * cccp.c: Accept and ignore -lang-fortran.
11096
11097         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
11098         qualifiers don't match at any level of pointerness.
11099
11100 2000-01-12  Robert Lipe  <robertl@sco.com>
11101
11102         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
11103
11104 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
11105
11106         * reload1.c (reload_reg_unavailable): New static variable.
11107         (reload_reg_free_p): Test it.
11108         (reload_reg_free_for_value_p): Test it instead of
11109         reload_reg_used.
11110         (choose_reload_regs_init): Compute it.
11111
11112 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
11113
11114         * reorg.c (fill_slots_from_thread): Check modified_in_p
11115         before replacing.
11116
11117 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
11118
11119         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
11120         these nodes even if INTERNALS is not set.
11121
11122 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
11123
11124         * gcse.c (delete_null_pointer_checks_1): Cope when
11125         get_condition cannot determine the condition.
11126
11127 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
11128
11129         * toplev.h (set_message_length): Declare.
11130
11131         * diagnostic.c (obstack_chunk_alloc): Define macro.
11132         (obstack_chunk_free): Likewise.
11133         (struct output_buffer): New data structure.
11134         (vmessage): Remove.
11135         (output_maximum_width): New variable.
11136         (doing_line_wrapping, set_message_length, init_output_buffer,
11137         get_output_prefix, output_space_left, emit_output_prefix,
11138         output_newline, output_append, output_puts, dump_output,
11139         vbuild_message_string, build_message_string, build_location_prefix,
11140         voutput_notice, output_printf, line_wrapper_printf,
11141         vline_wrapper_message_with_location):  New functions. Implement
11142         automatic line wrapping.
11143         (v_message_with_decl): Make it handle automatic line wrapping.
11144         (v_error_with_file_and_line): Likewise.
11145         (v_warning_with_file_and_line): Likewise.
11146         (announce_function): Likewise.
11147         (default_print_error_function): Likewise.
11148
11149 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
11150
11151         * cpplib.h (struct cpp_options): Change lang_asm to char.
11152         Add lang_fortran.
11153         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
11154         done in cpp_handle_option now.
11155         (initialize_builtins): Take out special case code used only by
11156         __STDC_VERSION__.
11157         (cpp_handle_option): Turn off trigraphs and trigraph warnings
11158         if -traditional.  Recognize -lang-fortran and set
11159         lang_fortran, also turn off cplusplus_comments.
11160         (print_help): Document -lang-fortran.
11161         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
11162         lang_asm. Ignore all directives other than `# 123 "file"' if
11163         CPP_PREPROCESSED.
11164         (cpp_get_token): If -traditional, don't recognize directives
11165         unless the # is in column 1.
11166         (parse_string): If lang_fortran or lang_asm, silently
11167         terminate strings ('' or "") at end of line.
11168         Remove unnecessary braces.
11169
11170 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11171             Richard Henderson  <rth@cygnus.com>
11172
11173         * resource.c (mark_referenced_resources): Mark a set strict_low_part
11174         as used.
11175         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
11176         strict_low_part when possible.
11177
11178 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11179
11180         * alias.c: PROTO -> PARAMS.
11181         * basic-block.h: Likewise.
11182         * bitmap.c: Likewise.
11183         * bitmap.h: Likewise.
11184         * builtins.c: Likewise.
11185         * c-aux-info.c: Likewise.
11186         * caller-save.c: Likewise.
11187         * calls.c: Likewise.
11188
11189 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11190
11191         * Makefile.in (toplev.o): Depend on regs.h.
11192
11193         * output.h (tdesc_section): Prototype.
11194
11195         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
11196
11197         * sdbout.c: Include "tm_p.h".
11198
11199         * toplev.c: Include "regs.h".
11200
11201 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
11202
11203         * unroll.c (unroll_loop): Add EH support.
11204
11205 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11206
11207         * pa-protos.h: New file.
11208
11209         * pa.c: Include recog.h and tm_p.h.
11210         (compute_zdepwi_operands, compute_movstrsi_length,
11211         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
11212         find_addr_reg, import_milli): Add static prototypes.
11213         (pa_cpu_string, pa_arch_string): Constify a char*.
11214         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
11215         (read_only_operand): Add argument `mode'.
11216         (singlemove_string, output_move_double, output_fp_move_double,
11217         output_block_move, output_and, output_ior, output_ascii,
11218         remove_useless_addtr_insns, milli_names, output_mul_insn,
11219         output_div_insn, output_mod_insn, output_arg_descriptor,
11220         output_cbranch, output_bb, output_bvb, output_dbra, ,
11221         output_millicode_call, output_call, hppa_encode_label,
11222         output_parallel_movb, output_parallel_addb): Constify a char*.
11223         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
11224         (output_parallel_addb): Remove extra arg to `constrain_operands'
11225
11226         * pa.h:  Move all prototypes to pa-protos.h.
11227         (pa_cpu_string, pa_arch_string): Constify a char*.
11228         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
11229
11230         * pa.md: Call `function_label_operand' with mode argument.
11231         Likewise for `read_only_operand'.
11232         Fix nesting of parens in call to `symbolic_operand'.
11233
11234 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11235
11236         * i860-protos.h: New file.
11237
11238         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
11239         time warnings.
11240
11241         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
11242
11243         * i860.md: Likewise.
11244
11245 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
11246
11247         * i386.md (movstrsi expander): Rewrite.
11248         (movstrsi_1 insn): Deleted.
11249         (strmovhi, strmovqi expander): New expanders.
11250         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
11251         * i386.c (x86_single_stringop): New global variable.
11252         * i386.h (x86_single_stringop): Declare.
11253         (TARGET_SINGLE_STRINGOP): New macro.
11254
11255 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
11256
11257         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
11258         integer vararg POSTINCREMENT before the destination of the jump
11259         for the hard fp case.
11260         (function_arg_pass_by_reference): Pass a copy of CUM to
11261         FUNCTION_ARG.
11262
11263         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
11264         for CONSTANT_ADDRESS_P above while loop for subreg.
11265
11266 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
11267
11268         * flow.c (propagate_block): When a prologue/epilogue insn
11269         is marked dead, unconditionally clear libcall_is_dead and
11270         insn_is_dead, and only dump rtl if warnings aren't being
11271         suppressed.
11272
11273 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
11274
11275         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
11276         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
11277         (FIXED_REGISTERS): Set dirflag as fixed.
11278         (CALL_USED_REGISTERS): Set dirflag as used.
11279         (REG_ALLOC_ORDER): Set dirflag as last one.
11280         (DIRFLAG_REG): New macro.
11281         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
11282         (HI_REGISTER_NAMES): Add dirflag.
11283         (DEBUF_PRINT_REG): Handle dirflag.
11284         * i386.md (type attribute): New cld and str types.
11285         (length_opcode attribute): Set cld and str to 1.
11286         (memory attribute): Set str to unknown - it is not clear from the
11287         patterns.
11288         (pent_np function unit): Prefixed string operations takes 12 cycles
11289         minimally; cld takes 2 cycles.
11290         (ppro_uops attribute): Str is "many" and cld is "few".
11291         (ppro_p0 unit): Handle cld here.
11292         (k6_alux unit): Handle cld and str types.
11293         (k6_load unit): It is ocupied by str opcodes.
11294         (k6_store unit): It is ocupied by str opcodes.
11295         (athlon_decode): Str is vector decoded.
11296         (athlon_ieu): Handle str and cld.
11297         (cld pattern): New.
11298         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
11299         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
11300         cmpstrsi_nz_1 insn): Do not output cld instruction
11301
11302 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
11303
11304         * gcc.texi (G++ and GCC): Add Java and Chill.
11305         (Bug Critera): Don't list languages.
11306
11307         * gcc.texi (Incompatibilities): No longer claim most C compilers
11308         are K&R.
11309
11310         * gcc.texi (G++ and GCC): Update other front-ends list.
11311
11312 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
11313
11314         * i386.c (ix86_expand_setcc): Fix typo.
11315         (ix86_expand_movcc): Similarly.
11316
11317         * Band-aid until haifa's bitset implementation is nuked.
11318         * haifa-sched.c (extract_bitlst): New parameter for size of the
11319         bitset in bits.  All callers changed.  Avoid looking at undefined
11320         bits in the bitset.
11321         (edgeset_bitsize): New variable.
11322         (schedule_region): Initialize edgeset_bitsize.
11323
11324 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11325
11326         * Makefile.in (optabs.o): Depend on real.h
11327         (resource.o): Depend on insn-attr.h
11328
11329         * builtins.c (result_vector): Wrap prototype in macro conditions
11330         governing definition and use.
11331
11332         * c-common.c: Include tm_p.h.
11333
11334         * c-lex.c: Likewise.
11335
11336         * elfos.h: Constify a char*.
11337
11338         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
11339         (get_attr_length, shorten_branches, profile_after_prologue): Mark
11340         parameter with ATTRIBUTE_UNUSED.
11341
11342         * fold-const.c (exact_real_inverse): Wrap variable `i' in
11343         CHECK_FLOAT_VALUE.
11344
11345         * haifa-sched.c (schedule_insns): Mark parameter with
11346         ATTRIBUTE_UNUSED.
11347
11348         * optabs.c: Include real.h.
11349
11350         * real.h (ereal_atof): Add prototype arguments.
11351
11352         * resource.c: Include insn-attr.h.
11353
11354         * sdbout.c (sdbout_queue_anonymous_type,
11355         sdbout_dequeue_anonymous_types): Wrap in macro
11356         SDB_ALLOW_FORWARD_REFERENCES.
11357         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
11358         ATTRIBUTE_UNUSED.
11359
11360         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
11361
11362         * stupid.c: Include tm_p.h.
11363
11364         * tree.c (real_value_from_int_cst): Mark parameter with
11365         ATTRIBUTE_UNUSED.
11366
11367 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11368
11369         * i960-protos.h: New file.
11370
11371         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
11372         time warnings.
11373
11374         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
11375
11376 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11377
11378         * combine.c (expand_field_assignment): Do not discard SUBREGs
11379         while computing nonzero_bits.
11380
11381 2000-01-09  Nick Clifton  <nickc@cygnus.com>
11382
11383         * config/arm/arm.c: Fix compile time warnings about signed vs
11384         unsigned constants.
11385         * config/arm/arm.h: Fix compile time warnings about signed vs
11386         unsigned constants.
11387
11388 2000-01-09  Philip Blundell  <philb@gnu.org>
11389
11390         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
11391         than `ldm' with only one register.
11392         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
11393         only one register.
11394
11395         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
11396         clobbered.
11397
11398 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
11399
11400         * config/ns32k/ns32k.md (load or push effective address): Operand 1
11401         must have SImode.
11402
11403 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11404
11405         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
11406         assignment used as truth value.
11407
11408         * function.c (assign_temp): Mark parameter `dont_promote' with
11409         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
11410         PROMOTE_FOR_CALL_ONLY.
11411
11412         * genrecog.c (write_subroutine): Mark variable `operands' with
11413         ATTRIBUTE_UNUSED.
11414
11415         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
11416         ATTRIBUTE_UNUSED.
11417
11418         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
11419         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
11420
11421         * toplev.c (note_deferral_of_defined_inline_function): Likewise
11422         for `decl'.
11423
11424 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11425
11426         * config/c4x.h: Tidy up comments.
11427         * config/c4x.c: Likewise.
11428
11429 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
11430
11431         * fold-const.c (lshift_double, rshift_double): Handle
11432         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
11433
11434 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11435
11436         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
11437         in prepare_function_start().
11438
11439 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
11440
11441         * config/v850/v850.c (expand_epilogue): Interrupt functions no
11442         longer allocate extra stack for function calls.
11443
11444 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11445
11446         * config/c4x/c4x.md (*subqf3_set): Fix typo.
11447
11448 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11449
11450         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
11451
11452 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
11453
11454         * rs6000.c (processor_target_table): Add power3 as alias for 630.
11455         * aix43.h: Revert Aug 2 change.
11456         (HAS_INIT_SECTION): Define, not visible yet.
11457         (LD_INIT_SWITCH): Define, not visible yet.
11458         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
11459
11460         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
11461
11462         * collect2.c (main): Expand ld2 size further.
11463         (export_object_lst): Cast assignment to avoid warning.
11464         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
11465         (scan_prog_file, COFF): Do not collect initialization or
11466         finalization functions generated for entire shared object if
11467         init/fini support present.
11468
11469 2000-01-07  Nick Clifton  <nickc@cygnus.com>
11470
11471         * config/elfos.h: Tidy up formatting of marcos.  Make sure
11472         that .section directives are always prefixed by a tab.
11473
11474         * config/svr4.h: Add #include "elfos.h" and remove duplicate
11475         definitions.
11476
11477 2000-01-07  Matt Austern  <austern@sgi.com>
11478
11479         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
11480         expon.
11481
11482 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
11483
11484         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
11485         crtstuff.c.
11486         (crtbegin.o, s-crtS): Likewise.
11487
11488 2000-01-06  Richard Henderson  <rth@cygnus.com>
11489
11490         * alpha.md (adddi_2+1): Limit offset such that it will be
11491         loadable with a single ldah+lda pair.
11492         (adddi_2+2): Explicitly fail split if we can't make it work.
11493
11494 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
11495
11496         * protoize.c: Conditionally include unistd.h.
11497         (IS_SAME_PATH_CHAR): New macro.
11498         (IS_SAME_PATH): New macro.
11499         (CPLUS_FILE_SUFFIX): New macro.
11500         (cplus_suffix): New static variable.
11501         (is_abspath): New static function.
11502         (in_system_include_dir): Handle DOS style pathnames.
11503         (file_could_be_converted): Likewise.
11504         (file_normally_convertible): Likewise.
11505         (directory_specified_p): Likewise.
11506         (file_excluded_p): Likewise.
11507         (abspath): Likewise.
11508         (shortpath): Likewise.
11509         (referenced_file_is_newer): Likewise.
11510         (save_def_or_dec): Likewise.
11511         (do_processing): Likewise.
11512         (main): Likewise.
11513         (edit_file): Likewise. Use rename instead of link.
11514         (rename_c_file): Likewise. Don't rename syscalls file.
11515         (munge_compile_params): Define null device for DOS based systems.
11516         (process_aux_info_file): Use binary mode if appliable.
11517         (edit_file): Likewise.
11518         * invoke.texi (Running Protoize): Document C++ suffixes used.
11519
11520         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
11521         IS_DIR_SEPARATOR macros.
11522         * collect2.c: Likewise.
11523         * cppinit.c: Likewise.
11524         * dwarf2out.c: Likewise.
11525         * gcc.c: Likewise.
11526         * gcov.c: Likewise.
11527         * prefix.c: Likewise.
11528         * rtl.c: Likewise.
11529         * toplev.c: Likewise.
11530         * system.h: And move to here.
11531
11532         * prefix.c (update_path): Fix typo in variable name.
11533
11534 2000-01-06  Richard Henderson  <rth@cygnus.com>
11535
11536         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
11537         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
11538         (count_reg_sets_1, count_reg_references): Likewise.
11539         (flow_loops_level_compute): Start counting actual loop depth at 1.
11540         (flow_loops_find): Likewise.
11541         * local-alloc.c (update_equiv_regs): Likewise.
11542         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
11543
11544 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
11545
11546         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
11547         FIRST_PSEUDO_REGISTER
11548         * dwarf2out.c: Don't include frame.h
11549         * dwarfout.c: Likewise
11550         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
11551         frame.h
11552
11553 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
11554
11555         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
11556         dead registers.
11557
11558         * i386.c (movsf splitter): Fix typo in my last checkin.
11559
11560 2000-01-05  Nick Clifton  <nickc@cygnus.com>
11561
11562         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
11563         own definition of this macro.
11564         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
11565         flag_data_sections or UNIQUE_SECTION_P are true.
11566
11567         * tm.texi (UNIQUE_SECTION): Document that it can be called for
11568         unitialised data decls.
11569
11570         * config/i386/winnt.c (i386_pe_unique_section): Cope with
11571         being called for uninitialised data.
11572
11573         * config/i386/interix.c (i386_pe_unique_section): Cope with
11574         being called for uninitialised data.
11575
11576         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
11577         for uninitialised data.
11578
11579         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
11580         for uninitialised data.
11581
11582         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
11583         for uninitialised data.
11584
11585         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
11586         (UNIQUE_SECTION_P): Always generate a unique section if
11587         flag_data_sections is true.
11588         (UNIQUE_SECTION): Also generate unique sections for
11589         uninitialised data.
11590         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
11591         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
11592         named_section().
11593
11594 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11595
11596         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
11597         SI, or DI.
11598
11599 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11600
11601         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
11602         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
11603         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
11604         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
11605         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
11606
11607         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
11608
11609 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
11610
11611         * c-decl.c (finish_enum): Simplify code to determine minimum and
11612         maximum values of the enum, and calculate the type.  Remove check
11613         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
11614         the DECL_INITIAL of each enumeration constant with a copy converted
11615         to the enumeration type.  When updating variant types, don't bother
11616         updating the type itself.
11617
11618         * c-typeck.c (build_binary_op): Simplify conditional expressions
11619         when weeding out spurious signed-unsigned warnings.  Add new
11620         spurious warning category: if the unsigned quantity is an enum
11621         and its maximum value fits in signed_type(result_type).  Update
11622         commentary.
11623         (build_conditional_expr): Warn here if one alternative is signed
11624         and the other is unsigned.
11625
11626 2000-01-05  Nick Clifton  <nickc@cygnus.com>
11627
11628         * config/fr30/fr30.h: Remove extraneous comments.
11629
11630 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
11631
11632         * reload1.c (choose_reload_regs): When disabling a reload, also
11633         set reload_spill_index to -1.
11634
11635 2000-01-04  Joel Sherrill (joel@OARcorp.com>
11636
11637         * configure.in (m68*-*-rtemscoff*): New target, formal name for
11638         old m68*-*-rtems*.
11639         (m68*-*-rtemself*): New target.
11640         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
11641         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
11642         (sparc*-*-rtemself*): New target.
11643         (sparc*-*-rtems*): Now elf not a.out.
11644         * config/i386/rtems.h: Include config/rtems.h.
11645         * config/i386/rtemself.h: Include config/rtems.h.
11646         * config/i960/rtems.h: Include config/rtems.h.
11647         * config/m68k/rtems.h: Include config/rtems.h.
11648         * config/m68k/rtemself.h: Include config/rtems.h.
11649         * config/mips/rtems64.h: Include config/rtems.h.
11650         * config/pa/rtems.h: Include config/rtems.h.
11651         * config/rs6000/rtems.h: Include config/rtems.h.
11652         * config/sh/rtems.h: Include config/rtems.h.
11653         * config/sh/rtemself.h: Include config/rtems.h.
11654         * config/sparc/rtems.h: Include config/rtems.h.
11655         * config/sparc/rtemself.h: Include config/rtems.h
11656
11657 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
11658
11659         * final.c (shorten_branches): Correctly compute length of
11660         asms without operands.
11661
11662 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
11663
11664         * configure.in: Add pj target.
11665         * configure: Regenerate.
11666         * config/pj: New directory.
11667         * config/pj/lib1funcs.S: New file.
11668         * config/pj/linux.h: New file.
11669         * config/pj/pj.c: New file.
11670         * config/pj/pj.md: New file.
11671         * config/pj/pjl.h: New file.
11672         * config/pj/t-pj: New file.
11673         * config/pj/xm-pj.h: New file
11674
11675 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
11676
11677         * toplev.c (rest_of_compilation): Run shorten-branches before
11678         reg-stack for now.
11679
11680 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11681
11682         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
11683         macros so that they're consistent with their names.
11684         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
11685         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
11686
11687 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11688
11689         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
11690         modified inadvertently.
11691
11692 2000-01-04  Joel Sherrill <joel@OARcorp.com>
11693
11694         * configure.in (v850*-*-rtems*): New target.
11695         * configure: Regenerate.
11696         * config/v850/rtems.h: New file.
11697
11698 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
11699
11700         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
11701         (__gthread_key_create): Likewise.
11702         (__gthread_key_dtor):  Likewise.
11703         (__gthread_once): Fix logic.
11704         (__gthread_key_delete): Cast away constness.
11705
11706         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
11707         * invoke.texi: Document.
11708         * i386/mingw32.h (CPP_SPEC): Use.
11709         (LIBGCC_SPEC): Likewise.
11710         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
11711
11712 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
11713
11714         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
11715         (HANDLE_PRAGMA_PACK): Undefine.
11716         (SLOW_UNALIGNED_ACCESS): Define.
11717
11718 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
11719
11720         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
11721         to default definition.
11722         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
11723         (store_fixed_bit_field): Call macro with word_mode and alignment.
11724         (extract_bit_field): Call macro with relevant mode and alignment.
11725         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
11726         to default definition.
11727         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
11728         and alignment.
11729         (move_by_pieces_ninsns): Likewise.
11730         (clear_by_pieces): Likewise.
11731         (emit_push_insn): Likewise.
11732         (store_field): Call macro with relevant mode and alignment.
11733         (expand_expr): Likewise.
11734         (expand_expr_unaligned): Likewise.
11735
11736         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
11737         (SLOW_UNALIGNED_ACCESS): Define.
11738         (CASE_VECTOR_MODE): Always use 32-bit offsets.
11739         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
11740         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
11741         (toc_section): Likewise and .toc pseudo-op.
11742         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
11743         64-bit mode.
11744         (TEXT_SECTION_ASM_OP): Likewise.
11745         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
11746         32-bit offsets.
11747
11748         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
11749         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
11750         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
11751         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
11752         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
11753
11754 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
11755
11756         * regclass.c: Revert my Jan 4 change to loop cost computation.
11757
11758 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
11759
11760         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
11761         compilation.
11762
11763 2000-01-04  Stan Cox  <scox@cygnus.com>
11764
11765         * haifa-sched.c (build_control_flow): Change unreachable simple
11766         loop test to check if current block has only one predecessor.
11767         (find_rgns): Initialize degree.  Use dest as degree index, not src.
11768
11769 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11770
11771         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
11772
11773         * calls.c (expand_call): Likewise for
11774         `old_stack_arg_under_construction'.
11775
11776         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
11777
11778         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
11779         `save_constant'.
11780
11781         * gcc.c (execute): Likewise for `ut' and `st'.
11782
11783         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
11784
11785         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
11786
11787         * jump.c (jump_optimize_1): Likewise for `temp2'.
11788
11789         * local-alloc.c (block_alloc): Likewise for `r1'.
11790
11791         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
11792
11793         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
11794         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
11795
11796         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
11797         and `set2'.
11798
11799         * reload.c (find_reloads): Likewise for `goal_alternative_number'
11800         and `goal_earlyclobber'.
11801
11802         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
11803
11804         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
11805
11806         * stupid.c (stupid_life_analysis): Likewise for `chain'.
11807
11808         * unroll.c (copy_loop_body): Likewise for `copy'.
11809
11810         * varasm.c (output_constructor): Likewise for `byte'.
11811
11812 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
11813
11814         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
11815         all FP constants for constant->reg moves.
11816         (ix86_split_to_parts): Try to convert memory address into immediate
11817         when available in the constant pool.
11818         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
11819         moves.
11820         (LEGITIMATE_CONSTANT_P): Return 1.
11821         * i386.md (pushsf): New splitter to convert constant pool memory
11822         reference to immediate.
11823         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
11824         reload.
11825
11826 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
11827
11828         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
11829         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
11830         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
11831         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
11832         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
11833
11834 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
11835
11836         * ginclude/stdbool.h:  Support compilation as C++.
11837
11838 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11839
11840         * fold-const.c (make_range): Don't try to reverse an unbounded range.
11841
11842 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
11843
11844         * regclass.c (regclass): Properly compute loop_cost.  Adjust
11845         comments.
11846
11847         * regclass.c: Fix minor whitespace problems.
11848
11849 2000-01-03  Anthony Green  <green@cygnus.com>
11850
11851         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
11852         Restore the pic register if required.
11853
11854 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
11855
11856         * c-common.c (format_char_info): Update comment.
11857         (check_format_info): Recognize 'z' modifier in the same way 'Z'
11858         was recognized.  Emit warning for formats new in ISO C99 only
11859         if flag_isoc9x is not set.
11860
11861 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
11862
11863         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
11864
11865 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
11866
11867         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
11868         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
11869         (make_compound_operation): Choose cheaper alternative between
11870         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
11871
11872         * regclass.c (op_costs): Remove global variable.
11873         (record_reg_classes): New parameter "op_costs" and "reg_pref".
11874         (record_operand_costs): Break out from ...
11875         (scan_one_insn): ... here.
11876         (dump_regclass): Make dumps nicer.
11877         (regclass): Dump preferrences choosed and changes done during passes.
11878
11879 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
11880
11881         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
11882
11883 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
11884
11885         * config/sparc/sparc.c (gen_df_reg): New function.
11886         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
11887         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
11888         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
11889         movtf_cc_reg_sp64+1): Use it.
11890
11891 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
11892
11893         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
11894         copied LABEL_DECLs.
11895
11896 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11897
11898         * config/i386/i386.c (ix86_expand_unary_operator): Function
11899         definition made void.
11900         (ix86_expand_binary_operator): Update outdated preceding comment.
11901         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
11902         prototype.
11903
11904         * config/i386/i386.c (override_options): Fix option-name typo.
11905
11906 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
11907
11908         * system.h (CEIL): Define.
11909         * builtins.c (CEIL): Remove.
11910         * expmed.c (CEIL): Likewise.
11911         * expr.c (CEIL): Likewise.
11912         * stor-layout.c (CEIL): Likewise.
11913
11914 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11915
11916         * expr.c (store_constructor_field): Fix typo introduced with last
11917         gcc2 merge.
11918
11919 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
11920
11921         * tree.h (BINFO_N_BASETYPES): New macro.
11922
11923 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
11924
11925         * expmed.c (emit_store_flag): Prevent losing a pending stack
11926         adjust the same way we prevent losing queued increments.
11927
11928 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11929
11930         * function.c (update_temp_slot_address): Handle case where sum of
11931         temporary address plus offset in register is a valid address.
11932
11933 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
11934
11935         * genrecog.c (change_state) Corrected typo.
11936
11937 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11938
11939         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
11940         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
11941         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
11942
11943 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
11944
11945         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
11946         case, expand GT comparisons correctly.  Fix a comment before this
11947         part of the code.
11948
11949 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
11950
11951         * dwarfout.c: Include "frame.h"
11952         * dwarf2out.c: Likewise.
11953         * Makefile.in (dwarfout.o): Depend on frame.h
11954         (dwarf2out.o): Likewise.
11955
11956 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
11957
11958         Restore i386 binary compatibility in Dwarf EH info.
11959         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
11960         value of FIRST_PSEUDO_REGISTER.
11961         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
11962         (struct frame_state): Use DWARF_FRAME_REGISTERS.
11963         * dwarfout.c (output_reg_number): Ditto.
11964         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
11965         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
11966
11967 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
11968
11969         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
11970         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
11971         (<hack>_RE_CT): not needed
11972         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
11973         rewritten to scan the file text once only
11974         "template<..." test added
11975         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
11976         (is_cxx_header): declaration added
11977         * fixinc/fixtests.c(is_cxx_header): removed
11978         (apply_fix_p_t): removed
11979         (double_slash_test): is_cxx_header is only called once now
11980         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
11981         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
11982         within the templates.
11983         The borken spelling of "broken" was fixed.
11984         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
11985         The default level depends on FIXINC_DEBUG.
11986
11987 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11988
11989         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
11990         Otherwise provide a declaration for atexit.
11991         (init_dummy): Make sure dummy call to atexit is nevertheless
11992         called with correct number of args.
11993
11994         * frame.c: Update comments referring to other files.
11995
11996         * libgcc2.c: Likewise.
11997
11998 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11999
12000         * cse.c (free_element, get_element): Remove unused prototypes.
12001
12002         * fold-const.c (extract_muldiv): Initialize variables `op0' and
12003         `op1'.
12004
12005         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
12006         `else' clauses.
12007
12008 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
12009
12010         * configure.in,configure: case arm for mn10200-*-* now sets
12011         float_format=i32 so that float.h will correctly claim "double"
12012         to be 32 bits. Ran autoconf to generate configure from .in file.
12013
12014 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
12015
12016         * pa.md (conditional zero): If op1 is a register, force it into
12017         the same register as op0.
12018
12019 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
12020
12021         * tree.h (BINFO_BASETYPES): Improve documentation.
12022
12023 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12024
12025         * configure.in (--enable-checking): Use a more portable `for'
12026         loop syntax.
12027
12028 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12029
12030         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
12031         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
12032
12033         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
12034         Delete files.
12035
12036         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
12037         Delete descriptions.
12038
12039         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
12040         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
12041         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
12042         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
12043         xm-svr4.h: Remove all instances of sys_siglist handling.
12044
12045 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
12046
12047         * config/sparc/sparc.md (cmp_zero_qi,
12048         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
12049         cmp_zero_extendqidi2_andcc_set): New patterns.
12050
12051 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
12052
12053         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
12054         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
12055         (fpgnulib.c, xfgnulib.c): Add rules.
12056         * m68k/t-mot3300-gas: Likewise.
12057
12058 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
12059
12060         * configure.in: Avoid [[ by using test and changequote.  Add
12061         changequote required by 1999-12-14 change.
12062         * configure: Rebuild.
12063
12064 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
12065
12066         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
12067
12068 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
12069
12070         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
12071         * flow.c (find_use_as_address): Likewise.
12072         * function.c (fixup_var_refs_1): Likewise.
12073         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
12074         * jump.c (invert_exp, redirect_exp): Likewise.
12075         * loop.c (replace_call_address): Likewise.
12076         (count_nonfixed_reads): Likewise.
12077         * rtlanal.c (modified_between_p): Likewise.
12078         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
12079         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
12080         * unroll.c (remap_split_bivs): Likewise.
12081
12082 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12083
12084         * diagnostic.c (v_message_with_decl): Use .* format specifier
12085         instead of building the format specifier width manually.
12086
12087         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
12088         determining whether to provide a prototype.  Remove the
12089         sys_siglist clause in the conditional.
12090
12091 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12092
12093         * fold-const.c (operand_equal_p): Use memcmp to compare string
12094         constants.
12095         Suggested by D. J. Bernstein
12096
12097 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
12098
12099         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
12100         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
12101         compiling libgcc2.
12102         * config/mips/mips.h (TARGET_64BIT): Likewise.
12103         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
12104         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
12105         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
12106         dsps.  Give routines proper names if SI/DI modes are not used.
12107         * longlong.h: Use DWunion instead of DIunion.
12108
12109 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
12110
12111         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
12112         GC_CHECKING, GC_ALWAYS_COLLECT.
12113         * configure.in: Allow --enable-checking with an argument
12114         listing check modes to enable.
12115         * config.in, configure: Rebuilt.
12116         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
12117         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
12118         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
12119         ENABLE_GC_ALWAYS_COLLECT.
12120         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
12121         throughout.
12122         * tree.h, tree.c: Change ENABLE_CHECKING to
12123         ENABLE_TREE_CHECKING throughout.
12124
12125 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12126
12127         * fold-const.c (fold_truthop): Properly check for FP RHS.
12128
12129 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
12130
12131         * toplev.h (note_deferall_of_defined_inline_function): Declare.
12132         * toplev.c (note_deferral_of_defined_inline_function): New
12133         function, split out from ...
12134         (rest_of_compilation): ... here.  Use it.
12135
12136 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12137
12138         * expr.c (store_constructor): Don't call clear_storage if size is
12139         variable.
12140
12141 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12142
12143         * Makefile.in (toplev.o): Depend on loop.h.
12144
12145         * dwarfout.c: Include tm_p.h.
12146
12147         * emit-rtl.c (restore_emit_status): Mark parameter with
12148         ATTRIBUTE_UNUSED.
12149
12150         * final.c (final_scan_insn): Likewise.
12151
12152         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
12153         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
12154         flow_depth_first_order_compute, flow_loop_pre_header_find,
12155         flow_loop_tree_node_add, flow_loops_tree_build,
12156         flow_loop_level_compute, flow_loops_level_compute,
12157         flow_loop_outside_edge_p): Add prototypes.
12158         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
12159
12160         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
12161         Mark with ATTRIBUTE_NORETURN.
12162
12163         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
12164
12165         * local-alloc.c (no_conflict_p): Likewise.
12166
12167         * loop.c (insert_bct): Hide definitions of variables with hidden
12168         usage.
12169         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
12170
12171         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
12172         with ATTRIBUTE_UNUSED.
12173         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
12174         (reg_scan): Likewise.
12175
12176         * reload.c (find_reloads): Remove unused variables `changed'.
12177
12178         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
12179         away const-ness.
12180         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
12181         Remove unused variable `insn'.
12182
12183         * toplev.c: Include loop.h.
12184         (report_file_and_line): Remove unnecessary prototype.
12185
12186         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
12187
12188         * unroll.c (biv_total_increment): Likewise.
12189
12190 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12191
12192         * reload1.c (emit_input_reload_insns): Restore old behaviour
12193         wrt. 'special' reloads.
12194
12195 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
12196
12197         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
12198         hash.h.  (cse.c): Don't depend on hashtab.h.
12199
12200         * cse.c: Don't include hashtab.h.
12201         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
12202         of dead functions.
12203         * ggc-simple.c: Don't include hash.h.
12204
12205 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
12206
12207         * dwarf2out.c (add_abstract_origin_attribute): Call
12208         gen_abstract_function on our function context.
12209
12210 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
12211
12212         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
12213
12214 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12215
12216         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
12217         case in switch.
12218
12219 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12220
12221         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
12222         constraints to "a!r".
12223
12224 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
12225
12226         * Makefile.in (calls.o): Depend on function.h.
12227         (alias.o): Likewise.
12228
12229 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
12230
12231         * reload1.c (emit_reload_insns): Break out code and variables into...
12232         (input_reload_insns, other_input_address_reload_insns,
12233         other_input_reload_insns, input_address_reload_insns,
12234         inpaddr_address_reload_insns, output_reload_insns,
12235         output_address_reload_insns, outaddr_address_reload_insns,
12236         operand_reload_insns, other_operand_reload_insns,
12237         other_output_reload_insns): ... new static variables, and...
12238         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
12239         do_output_reload): ... new functions.
12240
12241 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12242
12243         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
12244
12245 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12246
12247         * md.texi: Add c4x constraints documentation.
12248
12249 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12250
12251         * config/i386/dgux.c (struct option): Rename to
12252         lang_independent_option.
12253         (struct m_options): Add description field.
12254         (output_options): Rename option type, add sep declaration, output
12255         ix86_cpu_string and ix86_arch_string only if set.
12256         (output_file_start): Rename option type.
12257
12258 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
12259
12260         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
12261         stmp-int-hdrs.
12262         (libgcc2.a): Similarly.
12263
12264 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
12265
12266         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
12267         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
12268         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
12269
12270 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
12271
12272         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
12273         Remove redundant initialization of "frexpon" and "expon".
12274
12275 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12276
12277         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
12278
12279         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
12280         (store_constructor_field, expand_expr): Pass new arg.
12281
12282 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
12283
12284         * Makefile.in (explow.o): Depend on function.h.
12285
12286         * stor-layout.c (set_sizetype): Fix typo.
12287
12288 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
12289
12290         * function.c (cfun): Renamed from current_function.  All users
12291         changed.
12292         * function.h (cfun): Rename declaration as well.
12293
12294         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
12295         to be of type regset_head, not regset.  All users changed by adding
12296         address operator.
12297         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
12298
12299 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12300
12301         * config/c4x/rtems.h: New file.
12302
12303 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
12304
12305         * reload1.c (spill_failure): Take class of failed reload as argument
12306         and print it.  Caller changed.
12307
12308 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12309
12310         * rs6000.h (SUBTARGET_DEFAULT): New macro.
12311         (TARGET_SWITCHES): Allow subtargets to default switches.
12312         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
12313
12314 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
12315
12316         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
12317         in a main program.
12318
12319 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
12320
12321         * cccp.c (main): Define __STDC_VERSION__ as necessary.
12322         * cppinit.c (cpp_handle_option): Likewise.
12323
12324         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
12325         determine when to define.
12326
12327 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
12328
12329         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
12330         cmove with mismatched test and data modes.
12331
12332 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
12333
12334         * c-typeck.c (c_expand_start_case): Don't warn for long switch
12335         in system headers.
12336
12337 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12338
12339         * alias.c: Minor reformatting.
12340         * flow.c: Likewise.
12341         * regs.h: Likewise.
12342         * stor-layout.c: Likewise.
12343         * fold-const.c: Likewise.
12344         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
12345         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
12346         not arg itself.
12347         (size_int_wide): Cache nodes even if garbage collecting.
12348         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
12349         of SAVE_EXPR has no side effects.
12350         * cse.c: Move a comment.
12351         * tree.c: Minor reformatting.
12352         (int_size_in_bytes): Return -1 if constant overflows.
12353
12354 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12355
12356         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
12357
12358 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
12359
12360         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
12361         after any change to c-parse.in, even if objc-parse.y didn't
12362         change.  Oops.
12363
12364 1999-12-18  David S. Miller  <davem@redhat.com>
12365
12366         * toplev.c (rest_of_compilation): Restore BLOCK tree
12367         reconstruction and branch shortening changes lost in
12368         December 18th change.
12369
12370 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
12371
12372         * config/arm/linux-elf.h: Change all instances of
12373         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
12374         * config/arm/uclinux-elf.h: Likewise.
12375
12376 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
12377
12378         * toplev.c (notice, vmessage, v_message_with_file_and_line,
12379         v_message_with_decl, file_and_line_for_asm,
12380         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
12381         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
12382         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
12383         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
12384         pfatal_with_name, fatal_io_error, need_error_newline,
12385         last_error_function, last_error_tick, announce_function,
12386         default_print_error_function, print_error_function,
12387         report_error_function, fnotice, error_with_file_and_line,
12388         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
12389         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
12390         warning_with_decl, warning_for_asm, warning, pedwarn,
12391         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
12392         diagnostic.c
12393         (compile_file): Use fnotice instead of notice.  Adjust call.
12394
12395         * diagnostic.c: New file.
12396
12397         * Makefile.in (OBJS): Include diagnostic.o
12398         (diagnostic.o): Define dependence.
12399
12400 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12401
12402         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
12403         Tweak formatting.
12404
12405 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12406
12407         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
12408
12409 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
12410
12411         * fixtests.c (is_cxx_header): New fn, split out of
12412         double_slash_test.
12413         (else_endif_label): Allow "#endif // comment" in C++ headers,
12414         as determined by is_cxx_header.
12415         * fixfixes.c (else_endif_label_fix): Update comment.
12416         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
12417         a tty.
12418         * genfixes: Correct double thinko in commandline parsing.
12419         * hackshell.tpl: Generate correct sh syntax for bypass
12420         entries.
12421
12422         * inclhack.def (all): Whenever an inserted preprocessor
12423         conditional is split over multiple lines, use double
12424         backslashes in this file so the fixed header will be readable.
12425
12426         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
12427         and add bypass entry for correct version of this header.
12428         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
12429         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
12430
12431         (hpux8_bogus_inlines): New fix, split from...
12432         (ultrix_atof_param) ... here.
12433         (math_expression): Add bypass entry keyed to glibc comment
12434         indicating the problem has been dealt with; disable
12435         unnecessary sed operations; update commentary.
12436         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
12437         add select and bypass entries, simplify shell operation.
12438         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
12439
12440         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
12441          ultrix_atof_param): Add select entry.
12442         (stdio_va_list, sunos_mather_decl): Add bypass entry.
12443         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
12444         comments with the fixes they describe.
12445
12446         * c-parse.in (string action): Do not warn about ANSI string
12447         concatenation in system headers.  Affects C parser only.
12448         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
12449
12450 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
12451
12452         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
12453         compiling libgcc2 the macro depends always on arch cpp defines.
12454
12455 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
12456
12457         * loop.c (insert_loop_mem): Don't record MEMs from inside
12458         EXPR_LISTs.
12459
12460 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
12461
12462         * regclass.c (regclass): Do not use flowgraph when not optimizing.
12463
12464         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
12465         notes too, create one when replacement failed, attempt to simplify
12466         resulting notes.
12467         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
12468         or REG_EQUIV notes.
12469
12470 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
12471
12472         * crtstuff.c (__dso_handle): Declare.
12473         (__cxa_finalize): Likewise.
12474         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
12475         non-NULL.
12476
12477         * invoke.texi: Document -fuse-cxa-atexit.
12478
12479         * tree.h (ptr_type_node): Document.
12480         (const_ptr_type_node): Likewise.
12481
12482 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12483
12484         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
12485         (optimize_reg_copy_2): Likewise.
12486         (optimize_reg_copy_3): Likewise.
12487         (fixup_match_2): Likewise.
12488         (regmove_optimize): Likewise.
12489         (fixup_match_1): Liekwise.
12490
12491         * i386.md (HI to SImode promoting splitters): Rewrite.
12492         (pushsf mem peep2): New.
12493         (testhi to andhi peep2): Remove.
12494         * i386.h (x86_promote_QImode): New.
12495         (TARGET_PROMOTE_QImode): New.
12496         (PREDICATE_CODES): Add promotable_binary_operator.
12497         * i386.c (x86_promote_QImode0: New.
12498         (promotable_binary_operator): New.
12499         * i386-protos.h (promotable_binary_operator): New.
12500
12501         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
12502         condition.
12503         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
12504
12505 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
12506
12507         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
12508         * function.c (insert_block_after_note): Remove.
12509         (retrofit_block): Likewise.
12510         (identify_blocks): Fix indentation.
12511         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
12512         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
12513         * function.h (insert_block_after_note): Remove prototype.
12514         (retrofit_block): Likewise.
12515         * integrate.c (expand_inline_function): Don't call
12516         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
12517         just expand_start_bindings.  Use the block_map to remap old
12518         NOTE_BLOCKs to new ones.
12519         (integrate_decl_tree): Keep track of remapped blocks.
12520         * integrate.h (struct inline_remap): Add block_map.
12521         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
12522         NOTE_BLOCK on the notes.
12523         (expand_start_bindings): Rename to ...
12524         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
12525         (expand_end_bindings): Set NOTE_BLOCK.
12526         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
12527         reconstruct the BLOCK tree.
12528         * tree.h (expand_start_bindings): Macroize.  Call ...
12529         (expand_start_bindings_and_block): New function.
12530
12531 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
12532
12533         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
12534         to match the format.
12535
12536 1999-12-16  David S. Miller  <davem@redhat.com>
12537
12538         * expr.c (emit_move_insn_1): Only emit clobbers if one of
12539         the outputs is a SUBREG.
12540         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
12541         change.
12542
12543         * config/sparc/sparc.c (epilogue_renumber): Add default case
12544         to switch stmt.
12545
12546 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12547
12548         * toplev.c (rest_of_compilation): Run branch shortening after
12549         reg-stack.
12550
12551         * regclass.c (loop_depth): Remove
12552         (scan_one_insn): Do not handle LOOP_NOTE insns.
12553         (regclass): Go through basic blocks and set loop_cost
12554
12555 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
12556
12557         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
12558
12559 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12560
12561         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
12562         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
12563         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
12564
12565 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
12566
12567         * loop.c (insert_loop_mem): Ignore memory clobbers.
12568
12569         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
12570         to (OP A B).
12571
12572 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
12573
12574         * profile.c: Remove redundant #include "output.h".
12575
12576         * h8300.md (HImode preinc peephole): Fix typo.
12577
12578 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
12579
12580         * function.c (retrofit_block): Abort if we don't find a suitable insn.
12581         (insert_block_after_note): Abort if we don't have a previous block.
12582         Remove FN parameter.
12583         * function.h: Adjust.
12584
12585 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
12586
12587         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
12588         argument more than once.
12589
12590 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
12591
12592         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
12593
12594 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
12595
12596         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
12597
12598 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12599
12600         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
12601         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
12602         update stack_alignment_needed.
12603         (prepare_function_start): Initialize stack_alignment_needed
12604         * function.h (struct function): Add field stack_alignment_needed.
12605
12606 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12607
12608         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
12609         Handle live_throughout / dead_or_set instead of live_before /
12610         live_after.
12611         (save_call_clobbered_regs): Get register livenessinformation from
12612         chain->live_throughout.
12613         (add_stored_regs): New function.
12614         (insert_restore, insert_save): Add restored / saved registers to
12615         dead_or_set.
12616         * global.c (reg_dies): New parameter chain.
12617         (reg_becomes_live): Third parameter is regs_set now.
12618         Changed all callers.
12619         (reg_dies): New parameter chain.  Changed all callers.
12620         (build_insn_chain): Set live_throughout instead of
12621         live_before / live_after.
12622         * reload.h (struct insn_chain): Replace members live_before /
12623         live_after with live_throughout / dead_or_set.
12624         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
12625         instead of live_before / live_after.
12626         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
12627         (order_regs_for_reload, find_reg, finish_spills): Likewise.
12628         (choose_reload_regs_init): Likewise.
12629         * stupid.c (current_chain, find_clobbered_regs): Delete.
12630         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
12631         instead of chain->live_before / chain->live_after.
12632         (mark_hard_ref): New function.
12633         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
12634
12635 1999-12-15  David S. Miller  <davem@redhat.com>
12636
12637         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
12638
12639 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12640
12641         * flow.c (calculate_loop_depth): Make global, remove prototype,
12642         rewrite to use new loop infrastructure.
12643         (find_basic_block): Remove calculate_loop_depth call.
12644         * toplev.c (rest_of_compilation): Call find_basic_block.
12645         * output.h (calculate_loop_depth): Declare.
12646
12647         * flow.c (dump_flow_info): Dump loop_depth.
12648         (flow_loops_nodes_find): Increase loop_depth for basic block in the
12649         body.
12650         (flow_loops_find): Initialize the loop_depth for each basic block.
12651
12652 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
12653
12654         * tree.c (decl_function_context): Handle virtual functions.
12655
12656         * tlink.c (scan_linker_output): Don't look in demangled name when
12657         looking for linker output keywords.
12658
12659         * dwarfout.c (output_type): We can defer namespace-scope classes.
12660
12661 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
12662
12663         * regclass.c (record_reg_classes): Update comment for merging
12664         register class preferences in reg->reg copies.  Tighten conditions
12665         for merging register class preferences in reg->reg copies.
12666
12667 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
12668
12669         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
12670
12671 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
12672
12673         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
12674         (INIT_SECTION_ASM_OP): Delete.
12675         (FINI_SECTION_ASM_OP): Delete.
12676         (STARTFILE_SPEC): Define to hold just crtbegin.o.
12677
12678 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
12679
12680         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
12681         the abstract origin wasn't emitted.
12682
12683         * dwarf2out.c (class_scope_p): New fn.
12684         (gen_subprogram_die): Use it.
12685         (gen_variable_die): Use it.  Tweak logic.
12686         (gen_struct_or_union_type_die): Check context_die to determine
12687         if we're function-local.
12688         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
12689
12690 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12691
12692         * loop.c (check_dbra_loop): Can't reverse a biv that has
12693         maybe_multiple set.
12694
12695 1999-12-14  Nick Clifton  <nickc@cygnus.com>
12696
12697         * config/arm/arm.c: Add support for -mcpu=arm720 command line
12698         switch.
12699
12700 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12701
12702         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
12703         for givs made from biv increments.
12704
12705 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
12706
12707         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
12708         * alpha.c (override_options): Recognize -mcpu=ev67.
12709         * alpha.h (CPP_CPU_EV67_SPEC): New.
12710         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
12711         (EXTRA_SPECS): Update.
12712
12713 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
12714
12715         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
12716         appropriate for -lang-c89 and -std=*.
12717         * cppinit.c (cpp_handle_option): Likewise.
12718         (new_pending_define): New, split out from cpp_handle_option.
12719         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
12720         or enable trigraphs for -ansi/-std=*.
12721
12722         * ginclude/stdarg.h (__va_copy): New.
12723         (va_copy): Don't define for C89.
12724
12725 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
12726
12727         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
12728         for long long multiply-accumulate.
12729
12730 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12731
12732         * regclass.c (scan_one_insn): Set loop_cost to 1 when
12733         optimizing for size.
12734
12735 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12736
12737         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
12738         if something changed.  Back out that part of yesterday's changes.
12739
12740         * loop.c (loop_max_reg): New static variable.
12741         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
12742         max_reg_num.
12743         (scan_loop): Call reg_scan_update whenever we may have added new
12744         registers, and update loop_max_reg.
12745
12746 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
12747
12748         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
12749         when source does not die.
12750
12751         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
12752
12753 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
12754
12755         * config/sparc/linux64.h (TARGET_LIVE_G0,
12756         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
12757         variants on Linux.
12758         * config/sparc/linux.h (TARGET_LIVE_G0,
12759         TARGET_BROKEN_SAVERESTORE): Likewise.
12760         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
12761         TARGET_BROKEN_SAVERESTORE): Likewise.
12762
12763         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
12764         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
12765         not %g2.
12766         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
12767         as sparc64 block profiling register.
12768         * config/sparc/sparc.c (sparc_override_options): Allow block
12769         profiling with -m32.
12770         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
12771         profiling register.
12772         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
12773         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
12774         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
12775
12776         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
12777         for sparc64.
12778         * config/sparc/sparc.h: Likewise.
12779         * config/sparc/xm-sysv4-64.h: Likewise.
12780         * config/float-sparc.h: Likewise.
12781         * glimits.h: Likewise.
12782         * longlong.h: Likewise.
12783
12784         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
12785         (ASM_IDENTIFY_GCC): Remove.
12786
12787 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12788
12789         * combine.c (combine_simplify_rtx): Don't make shared rtl.
12790         (simplify_logical): Likewise.
12791
12792 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
12793
12794         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
12795         * cppfiles.c (INO_T_EQ): Likewise.
12796
12797 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
12798
12799         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
12800         * i386/mingw32.h (LIB_SPEC): Likewise.
12801         (STARTFILE_SPEC): Likewise.
12802         * i386/uwin.h (LIB_SPEC): Likewise.
12803         (STARTFILE_SPEC): Likewise.
12804
12805         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
12806         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
12807
12808 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
12809
12810         * combine.c (combine_simplify_rtx): Fix order of checks for
12811         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
12812
12813 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
12814
12815         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
12816         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
12817
12818 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
12819
12820         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
12821         defined.
12822         * regclass.c (inv_reg_alloc_order): New array.
12823         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
12824
12825         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
12826         counted_for_groups, counted_for_nongroups.  Add fields rld and
12827         n_reloads.
12828         * reload.c (push_secondary_reload): Don't set nongroup field of
12829         new reloads.
12830         (push_reload): Likewise.
12831         (find_reloads): Delete code to compute nongroup fields.
12832         * reload1.c (reload_insn_firstobj): New static variable.
12833         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
12834         users changed.
12835         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
12836         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
12837         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
12838         functions.
12839         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
12840         functions.
12841         (struct hard_reg_n_uses): Deleted.
12842         (potential_reload_regs): Deleted.
12843         (init_reload): Initialize spilled_pseudos and pseudos_counted.
12844         (reload): Don't try to allocate reload registers if we already know
12845         we have to make another pass.  Call select_reload_regs.  Free memory
12846         starting with reload_firstobj when starting another pass.
12847         Don't allocate spilled_pseudos.
12848         (calculate_needs_all_insns): Call copy_reloads for an insn that
12849         needs reloads; don't call calculate_needs.
12850         (spill_cost): New static array.
12851         (used_spill_regs_local): New static variable.
12852         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
12853         to compute potential_reload_regs.
12854         (find_reload_regs): Completely rewritten to use find_reg.
12855         (allocate_reload_reg): Don't test counted_for_groups or
12856         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
12857         all cllers changed.
12858         (choose_reload_regs): Add fallback code that uses the existing
12859         register allocation from find_reload_regs.
12860
12861 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
12862
12863         * flow.c (create_edge_list): Cast xmalloc return value.
12864
12865 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
12866
12867         * doprnt.c: Remove incorrect comment closure.
12868
12869         * cse.c: Fix a few minor whitespace goofs.
12870
12871 1999-12-13  Don Bowman  <don@pixstream.com>
12872
12873         * mips/vxworks.h: Fix problem with comment termination.
12874         (EXTRA_SECTIONS): Add in_sbss.
12875         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
12876
12877 1999-12-12  David S. Miller  <davem@redhat.com>
12878
12879         * cse.c (struct cse_reg_info): Add hash_next member,
12880         reorder rest of struct for better packing on 64-bit
12881         hosts.
12882         (cse_reg_info_tree): Kill.
12883         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
12884         REGHASH_FN): New custom pow2 hash mechanism.
12885         (NBUCKETS): Kill.
12886         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
12887         use a pow2 hash table.
12888         (get_cse_reg_info): Rework to use new REGHASH.
12889         (new_basic_block): Likewise, use HASH_SIZE, and inline
12890         free_element call.
12891         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
12892         and inline free_element call.
12893         (lookup_as_function, insert, flush_hash_table, invalidate,
12894         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
12895         invalidate_for_call, use_related_value, find_comparison_args,
12896         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
12897         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
12898         get_element): Kill.
12899
12900 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
12901
12902         * cse.c (cse_basic_block): Free qty_table consistently.
12903
12904 1999-12-12  David S. Miller  <davem@redhat.com>
12905             Jakub Jelinek    <jakub@redhat.com>
12906
12907         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
12908         SUBREGs by hand, gen the appropriate hard reg directly.
12909         (movtf reg/mem split): Likewise and alter_subreg on destination
12910         if necessary.
12911         (movtf mem/reg split): Similarly.
12912         (movdf_cc_sp64): Rename from hidden pattern.
12913         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
12914         (movtf_cc_sp64, following split): New pattern and splitter.
12915         (movdf_cc_reg_sp64): Rename from hidden pattern.
12916         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
12917         TARGET_HARD_QUAD.
12918         (movtf_cc_reg_sp64, following split): New pattern and splitter.
12919
12920 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
12921
12922         * loop.c (load_mems): Don't hoist written floating point mem
12923         if -ffloat-store.
12924
12925 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
12926
12927         * except.h (struct eh_queue): Add `next' pointer.
12928         (struct eh_status): Make x_ehqueue a pointer.
12929         (push_ehqueue):  Declare.
12930         (pop_ehqueue): Likewise.
12931         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
12932         pointer.
12933         (expand_fixup_region_end): Likewise.
12934         (expand_leftover_cleanups): Likewise.
12935         (push_ehqueue): Define.
12936         (pop_ehqueue): Likewise.
12937         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
12938         than doing it inline.
12939         (expand_start_all_catch):  Adjust now that ehqueue is a
12940         pointer.
12941         (mark_eh_queue): Mark all level of the queue.
12942         (mark_eh_status):  Adjust now that ehqueue is a
12943         pointer.
12944         (init_eh_for_function): Allocate ehqueue.
12945         (free_eh_status): Free it.
12946         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
12947         expansion for a fixup.
12948
12949 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12950
12951         * gthr-single.h (__gthread_active_p): Add prototype arguments.
12952
12953         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
12954         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
12955         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
12956         function_ptr, getpagesize, __enable_execute_stack,
12957         __enable_execute_stack, __clear_insn_cache,
12958         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
12959         _cleanup, _exit, __default_terminate, __terminate_func,
12960         __terminate, __empty, __throw, new_eh_context,
12961         eh_context_initialize, eh_context_static, eh_context_specific,
12962         get_eh_context, __get_eh_context, __get_eh_info,
12963         init_reg_size_table, eh_threads_initialize,
12964         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
12965         __unwinding_cleanup, throw_helper, __throw, __rethrow,
12966         __pure_virtual): Add prototype arguments.
12967         (__bb_exit_func): Cast a sizeof to long when comparing against one.
12968         Cast a signed value to unsigned long when comparing against one.
12969         (new_eh_context): Wrap in _GTHREADS macro.
12970         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
12971         declaration.
12972         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
12973         (throw_helper): Initialize variables `handler_p' and `pc_p'.
12974
12975 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12976
12977         * combine.c (record_promoted_value): Remove unused variable
12978         `links2'.
12979
12980         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
12981
12982         * global.c (record_conflicts): Likewise for `j'.
12983
12984         * genoutput.c (output_insn_data): Don't unnecessarily cast away
12985         const-ness.
12986
12987 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12988
12989         * i386-protos.h (output_387_binary_op, output_fix_trunc,
12990         output_fp_compare): Constify a char*.
12991
12992         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
12993         static prototypes.
12994         (override_options, ix86_comp_type_attributes, print_operand,
12995         output_387_binary_op, output_fix_trunc, output_fp_compare):
12996         Constify a char*.
12997         (ix86_sched_reorder): Mark parameter `clock_var' with
12998         ATTRIBUTE_UNUSED.
12999
13000         * i386.h (DEBUG_PRINT_REG): Constify a char*.
13001
13002 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13003
13004         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
13005         operand, for use in the Java front-end.
13006
13007 1999-12-10  Ben Collins  <bcollins@debian.org>
13008
13009         * configure.in: Fix typo for "-64" in 64bit as check.
13010         * configure: Rebuilt.
13011
13012 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
13013
13014         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
13015         appropriate.
13016
13017 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13018
13019         * c-parse.in (string): With -Wtraditional, warn if ANSI string
13020         concatenation is utilized.
13021
13022         * invoke.texi (-Wtraditional): Document it.
13023
13024 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13025
13026         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
13027         Cast a ptrdiff_t to long and pass it to printf with %ld.
13028
13029 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
13030
13031         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
13032         68881, we have no 68881 registers at all.
13033         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
13034         value in a 68881 register if it is available.
13035
13036 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
13037
13038         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
13039         for long long multiply-accumulate.
13040
13041 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
13042
13043         * loop.c (insert_loop_mem): Undo last change.
13044
13045 1999-12-10  David S. Miller  <davem@redhat.com>
13046
13047         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
13048         New functions.
13049         * config/sparc/sparc-protos.h: Add them.
13050         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
13051         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
13052         constraints which use those helpers.
13053         (EXTRA_CONSTRAINT): Use this new macro.
13054         * md.texi: Update sparc target constraints documentation.
13055         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
13056         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
13057         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
13058         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
13059         (movsf high/lo_sum split): Rework for new patterns.
13060         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
13061
13062 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
13063
13064         * c-common.c (c_common_nodes_and_builtins):
13065         Create __builtin_ptrdiff_t and __builtin_size_t.
13066
13067 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
13068
13069         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
13070
13071 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13072
13073         * regclass.c (globalize_reg): Re-instate test that allows
13074         fixed registers to be declared as a variable even after functions
13075         are defined.
13076
13077 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13078
13079         * i386.md (cpu attribute): Add "athlon".
13080         (athlon_decode): New attribute.
13081         (Athlon scheduling units definitions): New.
13082         (fcmp and shld patterns): Set athlon_decode to "vector".
13083         * i386.c (athlon_cost): New.
13084         (m_ATHLON): New.
13085         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
13086         x86_use_sahf): Set for Athlon.
13087         (x86_use_fiop): Unset for Athlon.
13088         (override_options): Define Athlon alignments and "athlon" name.
13089         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
13090         * i386.h (TARGET_ATHLON): New.
13091         (enum processor_type): Add PROCESSOR_ATHLON.
13092         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
13093         for CPU_DEFAULT==5
13094         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
13095
13096 1999-12-09  Andreas Jaeger  <aj@suse.de>
13097
13098         * loop.c (record_biv): Declare parameter as int.
13099
13100         * config/i386/i386-protos.h: Declare long_memory_operand.
13101
13102 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
13103
13104         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
13105         EXPR_WITH_FILE_LOCATION.
13106
13107 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
13108
13109         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
13110         in expander.
13111
13112         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
13113
13114         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
13115         updating code.
13116
13117 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
13118
13119         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
13120         default on linux64 again.
13121         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
13122         models for multilibing.
13123         * genmultilib: Accept | as alternative separator within a set in
13124         MULTILIB_OPTIONS.
13125
13126         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
13127
13128         * calls.c (precompute_arguments): Make sure initial_value contains
13129         value pseudo which CSE expects.
13130         * cse.c (struct set): New entry orig_src.
13131         (cse_insn): Set it early on entry, use it for libcall EQUIV note
13132         replacement.
13133
13134 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
13135
13136         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
13137
13138 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
13139
13140         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
13141
13142 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
13143
13144         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
13145         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
13146
13147         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
13148         if TARGET_ARCH32.
13149
13150         * longlong.h: Merge in changes from glibc.
13151         Also don't clobber %g2 register in 32bit SPARC assembly, so that
13152         -mno-app-regs libgcc can be compiled.
13153         * libgcc2.c: Add defines so that the updated longlong.h
13154         can be used in libgcc2.a. Also, make sure on most architectures
13155         (at least on all which have optimized code in longlong.h defined
13156         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
13157
13158 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13159
13160         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
13161         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
13162         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
13163         is GNU ld.
13164         * configure: Rebuilt.
13165
13166 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
13167
13168         * alpha.c (secondary_reload_class): For !BWX, sub-simode
13169         outputs require a register.
13170
13171 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
13172
13173         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
13174         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
13175         functions like dptoul will be resolved.
13176         (libgcc2.a): Make sure that the object files from DPBIT are named
13177         differently (prefix `_dp') from those that would be coming from
13178         FPBIT.
13179
13180 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
13181
13182         * configure.in: When target is sparc* and tm_file contains 64,
13183         test for 64bit support in assembler.  If not supported, remove
13184         sparc/t-sol2-64 from target-dependent Makefile fragments.
13185         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
13186         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
13187         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
13188         * acconfig.h (AS_SPARC64_FLAG): Added.
13189         * configure, config.in: Rebuilt.
13190         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
13191         support.  Use AS_SPARC64_FLAG.
13192
13193 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
13194
13195         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
13196         suitable for holding OFmode values so that gcc works with complex
13197         quad long doubles.
13198         (hard_64bit_mode_classes): Likewise.
13199
13200         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
13201         so that it is actually matched.
13202         (sethi_di_medlow): Likewise.
13203
13204         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
13205         as legitimate constant if -mvis.
13206         * config/sparc/sparc.md (movtf): Likewise.
13207         (clear_sf): Use const_double_operand.
13208         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
13209
13210         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
13211         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
13212         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
13213         routines, _Qp_* cannot be handled like that now.
13214         (INIT_TARGET_OPTABS): Likewise.
13215         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
13216         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
13217         sparc_emit_float_lib_cmp if ARCH64 and soft float.
13218         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
13219         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
13220         divtf3, sqrttf3): New expanders.
13221         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
13222         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
13223         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
13224         non-_hq patterns.
13225
13226         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
13227         * configure: Rebuilt.
13228         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
13229         -mcpu is given and we're doing 64bit compiles.
13230
13231 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
13232
13233         * loop.h (struct induction): Add multi_insn_incr.
13234         * loop.c (basic_induction_var): New multi_insn_incr argument.
13235         Set it if we search back through previous insns for the biv.
13236         (record_biv): New multi_insn_incr argument; fill in struct induction.
13237         (strength_reduce): Discard an iv with multiple bivs, any of
13238         which require multiple insns to increment.
13239
13240 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
13241
13242         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
13243         documentation.
13244
13245 1999-12-06  David S. Miller  <davem@redhat.com>
13246
13247         * combine.c (check_promoted_subreg): Do not conditionalize this upon
13248         PROMOTE_FUNCTION_RETURN.
13249
13250 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
13251
13252         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
13253         and handle REG_UNUSED note on insn.
13254
13255         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
13256         inner_mask instead of mask.
13257
13258 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
13259
13260         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
13261         zero if there was an error.
13262
13263 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
13264
13265         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
13266         output string.
13267
13268         * longlong.h: Fix clobbers in SPARC asm statements.
13269
13270         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
13271         valid sethi operations when TARGET_ARCH64.
13272
13273         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
13274         always use move_by_pieces to avoid infinite recursion.
13275         (restore_fixed_argument_area): Likewise.
13276
13277         * combine.c (check_promoted_subreg, record_promoted_value): New
13278         functions.
13279         (combine_instructions): Use them to retain nonzero and sign bit
13280         information after SUBREGs are eliminated by optimizations in
13281         this pass if PROMOTE_FUNCTION_RETURN.
13282
13283         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
13284         .register declaration. Don't use variables with __ prefixes.
13285
13286 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13287
13288         * fold-const.c (optimize_bit_field_compare): Only use one mode
13289         for both RHS and LHS in non-constant case.
13290
13291 1999-12-06  Nathan Sidwell  <nathan@acm.org>
13292
13293         * frame.c (start_fde_sort): Only allocate erratic array, if
13294         linear one was allocated. Return allocated flag.
13295         (fde_insert): Only insert, if there's a valid array.
13296         (fde_end_sort): Split, sort and merge if linear and erratic
13297         arrays exist, else just sort linear one.
13298         (search_fdes): New function. Linear search through original fde
13299         structure.
13300         (frame_init): Permit multiple initializations. Cope with
13301         memory shortages.
13302         (find_fde): Fallback on linear search, if failed to sort array.
13303         (__deregister_frame_info): Only free sorted array, if we
13304         allocated it.
13305
13306 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
13307
13308         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
13309
13310 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
13311
13312         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
13313
13314 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
13315
13316         * tree.h (special_function_p): Declare.
13317         * calls.c (special_function_p): Make it global.  Don't take `name'
13318         as a parameter.  Fix typo in 1999-11-28 change.
13319         (expand_cal): Adjust.
13320
13321 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
13322
13323         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
13324         * tree.h (EXPR_WFL_FILENAME): Define in terms of
13325         EXPR_WFL_FILENAME_NODE.
13326         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
13327         the TREE_CHAIN.
13328         * print-tree.c (print_note): Print TREE_PRIVATE and
13329         TREE_PROTECTED.
13330
13331         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
13332         the original die cannot be found.
13333
13334         * varray.h (varray_head_tag): Add elements_used.
13335         (VARRAY_PUSH): New macro.
13336         (VARRAY_POP): Likewise.
13337         (VARRAY_TOP): Likewise.
13338         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
13339         types.
13340         * varray.c (varray_init): Initialize elements_used.
13341         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
13342         (INTEGRATE_H): New variable.
13343         (integrate.o): Depend on INTEGRATE_H.
13344         (unroll.o): Likewise.
13345
13346         * function.h (insert_block_after_note): Declare.
13347         * function.c (insert_block_after_note): Split out from ...
13348         (retrofit_block): ... here.
13349
13350         * stmt.c (expand_fixup): Fix typo in comment.
13351
13352 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13353
13354         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
13355         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
13356         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
13357         (regmove_optimize, fixup_match_1): Likewise.
13358
13359 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13360
13361         * flow.c (flow_loops_dump): Add missing argument when calling
13362         flow_loop_nested_p.
13363
13364 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
13365             Greg McGary  <gkm@gnu.org>
13366
13367         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
13368         (init_attributes): Add A_NO_LIMIT_STACK.
13369         (decl_attributes): Handle A_NO_LIMIT_STACK.
13370         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
13371         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
13372         Handle stack bounds checking.
13373         * flags.h (flag_stack_check): Use the word 'probe' rather than
13374         'check', because the flag doesn't actually cause any checking to
13375         be done.
13376         * function.c (expand_function_start): Set
13377         current_function_limit_stack.
13378         * function.h (struct function): Add limit_stack.
13379         (current_function_limit_stack): Define.
13380         * invoke.texi (Code Gen Options): Document new options.
13381         * rtl.h: Declare stack_limit_rtx.
13382         * toplev.c (stack_limit_rtx): New variable.
13383         (decode_f_option): Handle new options -fstack-limit-register=REG,
13384         -fstack-limit-symbol=IDENT, -fno-stack-limit.
13385         (main): Add stack_limit_rtx as GC root.
13386         * tree.h (DECL_NO_LIMIT_STACK): New macro.
13387         (struct tree_decl): New member no_limit_stack.
13388
13389         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
13390         stack_limit_rtx.
13391         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
13392         (conditional_trap+1): Get new mnemonic correct.
13393         (conditional_trap+2): New pattern for DImode traps.
13394
13395         * config/m68k/m68k.c (output_function_prologue): Handle
13396         stack_limit_rtx.
13397         * config/m68k/m68k.md (trap): New insn.
13398         (conditional_trap): New insn.
13399         * md.texi (Standard Names): Document `trap' and
13400         `conditional_trap'.
13401         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
13402         so a cc0 setter doesn't get emitted at some random place in the
13403         function.
13404
13405         * config/i960/i960.md (trap): New insn.
13406         (conditional_trap): New expander.
13407         (conditional_trap+1, conditional_trap+2): New insns for signed
13408         and unsigned cases.
13409         * config/i960/i960.c (i960_function_prologue): Use
13410         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
13411
13412 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
13413                           Geoffrey Keating  <geoffk@cygnus.com>
13414
13415         * flags.h (warn_padded, warn_packed): Add global var decls.
13416         * toplev.c (warn_padded, warn_packed): Add global var defns.
13417         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
13418         * stor-layout.c (layout_record): Add local variable `type'
13419         to hold often-used TREE_TYPE (field).  Add local variable
13420         `unpacked_align' to hold alignment that would be in force
13421         if no `packed' attribute were present.  Warn if `packed' attribute
13422         is unnecessary, or even harmful.  Warn when gcc inserts padding
13423         to satisfy alignment requirements of members.  Use NULL_TREE
13424         when checking whether var_size is set.
13425         * invoke.texi: Document new flags.
13426
13427 1999-12-03  Nathan Sidwell  <nathan@acm.org>
13428
13429         * frame.c (fde_split): Reimplement to avoid variable sized array.
13430
13431 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13432
13433         * combine.c (try_combine): Before fixing up LOG_LINKS for the
13434         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
13435
13436 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
13437
13438         * invoke.texi: Document the mips option -mno-crt0
13439
13440 1999-12-02  Mike Karr  <mkarr@mathworks.com>
13441
13442         * cccp.c (argdata): Added free_ptr member.
13443         (macroexpand): Initialize free_ptr of each argument. When an
13444         argument's buffers are freed, if the argument's free_ptr corresponds
13445         to a buffer on the input stack, then return the free_ptr to that stack
13446         frame, otherwise, free it.
13447         (macarg): If an argument begins and ends on the same input stack level,
13448         then transfer the free_ptr of that buffer to the argument in case
13449         the stack is popped during the processing of a subsequent argument.
13450
13451 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
13452
13453         * loop.c (note_reg_stored): New function.
13454         (struct note_reg_stored_arg): New structure.
13455         (try_copy_prop): Change to be more conservative; only replace within
13456         one extended basic block and stop replacing if a store to the
13457         replacement reg is seen.
13458
13459 1999-12-02  Nick Clifton  <nickc@cygnus.com>
13460
13461         * config/fp-bit.c: Initialise all fields of the NAN
13462         constants.
13463
13464         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
13465         to HANDLE_PRAGMA.
13466
13467 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
13468
13469         * i386.md (extend?f?f2): Force the input into a register, not
13470         the output.
13471
13472 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
13473
13474         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
13475         regclass' sake.
13476         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
13477         alternative because setting up 64bit constant is usually costly,
13478         especially when reload is in progress or completed.
13479         (movdf_const_intreg_sp64): Likewise.
13480         (movdf_const_intreg split): Fix building up constants when
13481         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
13482
13483 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
13484
13485         * combine.c (if_then_else_cond): Use const_true_rtx instead of
13486         const1_rtx for return values in EQ/NE comparison against (const_int 0)
13487         case.
13488
13489         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
13490         (asm_file_start): Emit .am33 into assembly file when compiling for
13491         the AM33.
13492         (print_operand_address): Handle POST_INC addresses.
13493         (can_use_return_insn, initial_offset): Check AM33 registers too.
13494         (expand_prologue): Check & save AM33 registers too.
13495         (expand_epilogue): Similarly.
13496         (secondary_reload_class): Handle AM33 specific secondary reloads.
13497         (output_tst): Emit efficient code for the AM33 too.
13498         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
13499         (TARGET_SWITCHES): Add -mam33 switch.
13500         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
13501         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
13502         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
13503         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
13504         (enum reg_class, REG_CLASS_NAMES): Likewise.
13505         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
13506         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
13507         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
13508         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
13509         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
13510         (HAVE_POST_INCREMENT): Define.
13511         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
13512         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
13513         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
13514         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
13515         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
13516         (zero_extend to SI from QI/HI): Likewise.
13517         (sign_extend to SI from QI/HI): Likewise.
13518         (mulsidi3, umulsidi3): New patterns for the AM33.
13519         (tstsi with zero extension from QI/HI): Add AM33 variants.
13520         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
13521         (return_internal_regs, store_movm): Handle new AM33 registers.
13522         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
13523         (LIBGCC, INSTALL_LIBGCC): Likewise.
13524         * invoke.texi: Document new flags.
13525
13526 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13527
13528         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
13529         (addsi3_carry): Likewise.
13530         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
13531         (sbbsi3_carry): Likewise.
13532         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
13533         (mulhi3): Likewise.
13534         (test?i_1): Ensure that only one operand is memory.
13535         (conditional move patterns): likewise.
13536         (shift and rotate patterns): Rewrite to expander, add
13537         "binary_operator_ok" to the condition.
13538
13539         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
13540         * i386.h (procesor_costs): Add movzbl_load field.
13541         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
13542         non-Q registers, accept DImode registers anywhere.
13543         (Q_CLASS_P): New.
13544         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
13545         * i386.c (*_cost): Set value for movxbl_load field.
13546
13547         * (addsi): New add to lea splitter.
13548         (ashlsi): Likewise.
13549         (lea to add/shift peep2): New.
13550
13551 1999-12-01  Mark Salter <msalter@cygnus.com>
13552
13553         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
13554         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
13555         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
13556
13557 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13558
13559         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
13560         * i386.md (movsi_xor): New.
13561         (movsi_or): New.
13562         (movsi_1, movhi_1, movqi_1): Remove.
13563         (movsi_2): Rename to movsi_1.
13564         (movhi_2): Rename to movhi_1.
13565         (movqi_2): Rename to movqi_1.
13566         (movdi_1): Remove; remove splitter.
13567         (movdi_2): Rename to movdi_1.
13568         (divmodsi4 splitter): Do not emit clobbers for move patterns.
13569         (long move peep2): Do not create QI or HI mode mov0s
13570         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
13571
13572         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
13573         rewrite splitters.
13574
13575         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
13576         (abs?f2_if): Likewise.
13577
13578 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
13579
13580         * ggc.h (ggc_test_and_set_mark): New macro.
13581         (ggc_mark_rtx): Use ggc_test_and_set_mark.
13582         (ggc_mark_tree): Likewise.
13583         (ggc_mark_rtvec): Likewise.
13584         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
13585
13586 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
13587
13588         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
13589         containing types.
13590         (decl_scope_table): Just an array of trees now.
13591         (push_decl_scope): Simplify.
13592         (dwarf2out_init): Adjust.
13593         (local_scope_p): New fn.
13594         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
13595         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
13596         (gen_typedef_die): Likewise.
13597         (gen_lexical_block_die): Don't call push/pop_decl_scope.
13598         (gen_inlined_subroutine_die): Likewise.
13599         (gen_abstract_function): Set current_function_decl temporarily.
13600         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
13601         Handle block extern declarations.  Don't call push/pop_decl_scope.
13602         (gen_decl_die): Fix logic for block externs.
13603
13604 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13605
13606         * calls.c (special_function_p): Remove `realloc' and add `strdup'
13607         to the list of functions which have attribute malloc by default.
13608
13609 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13610
13611         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
13612         integer constant does not match the traditional type, limit the
13613         warnings to cases where the base of the type is ten.
13614
13615         * invoke.texi (-Wtraditional): Document it.
13616
13617 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13618
13619         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
13620         * rs6000.md: Only access a CONST_INT with INTVAL
13621
13622 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
13623
13624         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
13625         (compute_nearerout): Likewise.
13626         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
13627         size_t to unsigned long for formatting.
13628
13629 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
13630
13631         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
13632         Allow the user to override call-used/fixed state of %g2-5
13633         registers from the command line (with the exception of %g4 for
13634         embedded model).
13635         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
13636         there is a higher chance of having a leaf function.
13637         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
13638         for ARCH64 which has %ccr register.
13639         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
13640         patterns.
13641         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
13642         insn accept into delay slot any insn which does not use %[ol]
13643         registers.  Accept some LO_SUM and shift left by 1 for the normal
13644         restore case.
13645         (output_function_epilogue): Likewise.
13646         (epilogue_renumber): Added argument which inhibits any renumbering
13647         and just tests if the rtx does not use any %[ol] registers.
13648         (output_return): Reflect above change.
13649
13650 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
13651
13652         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
13653         aggregate passing for sizes <= 16 bytes.
13654
13655 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
13656
13657         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
13658         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
13659         * reload.c (find_dummy_reload): Likewise.
13660         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
13661         * reload1.c (reload_as_needed): Likewise.
13662         * stupid.c (stupid_find_reg): Likewise.
13663         * tm.texi (Obsolete Register Macros): Delete section.
13664         * gmicro.h: Remove all traces of the two macros.
13665         * i386.h: Likewise.
13666         * m88k.h: Likewise.
13667         * mips.h: Likewise.
13668
13669 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
13670
13671         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
13672         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
13673         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
13674         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
13675         units for the sparclite86x chip.
13676         (flush): Revert October 14th change; add SImode specifically.
13677         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
13678         * invoke.texi: Document it.
13679
13680 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
13681
13682         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
13683         psimode_truncation_operand.
13684
13685         * config/mn10200/mn10200.c (psimode_truncation_operand): New
13686         function.  Return true if the operand is either a MEM valid
13687         for a PSImode address or not a MEM at all.
13688
13689         * config/mn10200/mn10200.md (truncsipsi2): Use
13690         psimode_truncation_operand.
13691
13692 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13693
13694         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
13695         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
13696         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
13697         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
13698         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
13699         (flow_loop_level_compute, low_loops_level_compute): Likewise.
13700         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
13701         * basic-block.h: Protect from multiple inclusion.
13702         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
13703         (struct loops, struct loop): Define structures.
13704         * sbitmap.c (sbitmap_a_subset_b_p): New function.
13705         * sbitmap.h: Protect from multiple inclusion.
13706         (sbitmap_a_subset_b_p): Add prototype.
13707         * Makefile.in (LOOP_H): New macro.
13708         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
13709
13710 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
13711
13712         * cppinit.c (CAT): The argument list of this macro may not contain
13713         spaces !
13714
13715 1999-11-29  David S. Miller  <davem@redhat.com>
13716
13717         Move quantity tables and register equivalence chains into
13718         per-qty and per-register structure arrays respectively.
13719         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
13720         qty_const_insn, qty_comparison_code, qty_comparison_const,
13721         qty_comparison_qty): Delete, replace with...
13722         (qty_table): this structure table.
13723         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
13724         (reg_eqv_table): this structure table.
13725         (make_new_qty): Add argument MODE.  Caller updated.
13726         Update to use qty_table and reg_eqv_table.
13727         (make_regs_eqv, delete_reg_equiv, insert_regs,
13728         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
13729         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
13730         cse_process_notes, cse_main, cse_basic_block): Likewise.
13731
13732 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13733
13734         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
13735         operation if C is negative.
13736         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
13737         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
13738         law for some divisions if constant is negative and change other
13739         divisions to the opposite rounding.
13740
13741         * expr.c (store_constructor_field): If bit position is not multiple
13742         of alignment of TARGET's mode, use BLKmode.
13743
13744         * expr.c (expand_expr_unaligned): Add more code from full case
13745         that is needed when OP0 is in a register.
13746
13747 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13748
13749         * dwarfout.c (field_byte_offset): Size can be zero if there was
13750         an error.
13751
13752 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
13753
13754         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
13755         (associate_trees): Delete unused var TEM.
13756         (extract_muldiv): Delete unused var CANCEL_P.
13757
13758         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
13759         (target_isinf, target_isnan, target_negative): Add return types to
13760         function definitions.
13761
13762 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
13763
13764         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
13765         * fixinc/hackshell.tpl: ditto
13766         * fixinc/fixtests.c(double_slash_test): more C++ header testing
13767         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
13768
13769 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
13770
13771         * reload.c (push_reload): When looking for a register to put into
13772         reg_rtx, make sure all hard regs in a multi-reg register are in the
13773         right class and nonfixed.
13774
13775         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
13776         pending_read_insns, pending_write_insns, pending_read_mems,
13777         pending_write_mems, pending_list_length, last_pending_memory_flush,
13778         last_function_call, sched_before_next_call): Move static variables
13779         into a structure.
13780         (bb_ prefixed versions): Replace with single array bb_deps.
13781         (struct deps): New structure.
13782         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
13783         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
13784         argument of type "struct deps *"; use that instead of global
13785         variables.  All callers changed.
13786         (init_rgn_data_dependencies): Delete function.
13787         (init_rtx_vector): Delete function.
13788         (init_deps): New function.
13789
13790         (free_pending_lists): Simplify, we always use the bb_deps array even
13791         if only one basic block.
13792         (compute_block_backward_dependences): Likewise.
13793         (schedule_region): Likewise.
13794
13795         (propagate_deps): New function, broken out of
13796         compute_block_backward_dependences.
13797         (compute_block_backward_dependences): Use it.
13798
13799         * alpha.md: Delete useless patterns that tried to work around
13800         register elimination problems.
13801
13802         * unroll.c (loop_iterations): Don't abort if iteration variable
13803         was made by loop.
13804
13805         From Joern Rennecke:
13806         * reload1.c (reloads_conflict): Reverse test comparing operand
13807         numbers when testing for conflict between output/outaddr reloads.
13808
13809 1999-11-29  David S. Miller  <davem@redhat.com>
13810
13811         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
13812         arg.
13813         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
13814
13815 1999-11-28  Robert Lipe  <robertl@cygnus.com>
13816
13817         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
13818         table from .fini into .dtor.
13819
13820 1999-11-28  Anthony Green  <green@cygnus.com>
13821
13822         * tree.h (struct tree_decl): Add malloc_flag.
13823         (DECL_IS_MALLOC): Define.
13824         * c-common.c (attrs): Add A_MALLOC attribute.
13825         (init_attributes): Add this attribute to the table.
13826         (decl_attributes): Handle malloc attribute.
13827         * calls.c (special_function_p): Check for the malloc attribute.
13828         * extend.texi (Function Attributes): Document malloc attribute.
13829
13830 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
13831
13832         * pa.md (reload shift-add patterns): Remove.
13833
13834 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13835
13836         * reorg.c (dbr_schedule) Print more statistics. Corrected
13837         problem when printing info when 3 delay slots are filled.
13838
13839 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
13840
13841         * combine.c (setup_incoming_promotions): Pass an outgoing
13842         regno to FUNCTION_ARG_REGNO_P which it expects.
13843
13844 1999-11-28  Andreas Jaeger  <aj@suse.de>
13845
13846         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
13847
13848 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
13849
13850         * cccp.c (do_include): Avoid initialization of automatic variable.
13851
13852         * integrate.c (mark_stores): Function definition made void, to match
13853         previous declaration.
13854         * regclass.c (dump_regclass): Ditto.
13855         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
13856
13857 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13858
13859         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
13860         known to be multiple of divisor.
13861
13862         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
13863
13864         * combine.c (try_combine): Add code to try to merge a set of a
13865         two-word pseudo to a constant with a setting of one of those words
13866         to a constant.
13867
13868         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
13869         (split_tree): Completely rework to make more general.
13870         (make_range, fold): Call negate_expr.
13871         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
13872         (fold, associate): Call new split_tree and associate_trees.
13873         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
13874
13875 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
13876
13877         * loop.c (try_copy_prop): Avoid GNU C extension.
13878
13879 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
13880
13881         * except.c (init_eh_for_function): Still zero eh_return_context,
13882         eh_return_stack_adjust, and eh_return_handler.
13883
13884         * except.h (eh_status): Adjust documentation for x_protect_list.
13885         (begin_protect_partials): New function.
13886         * except.c (enqueue_eh_entry): Fix formatting.
13887         (get_first_handler): Add consistency check.
13888         (add_partial_entry): Adjust usage of protect_list.
13889         (emit_cleanup_handler): Save and restore ehqueue.
13890         (expand_start_all_catch): Add comment.
13891         (begin_protect_partials): New function.
13892         (end_protect_partials): Adjust usage of protect_list.
13893         (init_eh_for_function): Use xcalloc.
13894
13895 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13896
13897         * c-common.c (check_format_info): Don't call a variadic function
13898         with a non-literal format string.
13899
13900         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
13901
13902         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
13903         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
13904         Likewise.
13905
13906         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
13907         Likewise.
13908
13909         * collect2.c (collect_wait): Likewise.
13910
13911         * dbxout.c (dbxout_type): Likewise.
13912
13913         * gcc.c (do_spec_1): Likewise.
13914
13915         * genemit.c (gen_insn, gen_expand): Likewise.
13916
13917         * genrecog.c (write_switch, write_subroutine): Likewise.
13918
13919         * mips-tfile.c (catch_signal, botch): Likewise.
13920
13921         * print-rtl.c (print_rtx): Likewise.
13922
13923         * toplev.c (default_print_error_function, report_error_function,
13924         _fatal_insn): Likewise.
13925
13926 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
13927
13928         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
13929
13930 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
13931
13932         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
13933         operations when needed.
13934         * i386.md (fop_?f_comm): New.
13935         (fop_?f_1): Do not accept commutative operands.
13936
13937 1999-11-25  Andreas Jaeger  <aj@suse.de>
13938
13939         * config/mips/mips.md (casesi_internal): Add missing brace.
13940
13941 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
13942
13943         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
13944         (splice_child_die): Handle moving a child DIE from the declaration
13945         DIE of a class to its specification.
13946         (gen_struct_or_union_type_die): Use 'complete' consistently.
13947         (gen_decl_die): Generate the virtual context DIE first.
13948         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
13949
13950 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
13951
13952         * config/mips/mips.md (call_value_multiple_interanal1): New.
13953
13954 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
13955
13956         * dwarf2out.c (free_AT, free_die): New fns.
13957         (remove_children): Call them.
13958         (output_line_info): Disable removal of duplicate notes.
13959
13960         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
13961         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
13962         means pretend the type isn't defined.
13963         Don't defer emitting types.
13964         (gen_type_die_for_member): New fn.
13965         (gen_decl_die): Call it.
13966         (splice_child_die): New fn.
13967         (gen_member_die): Call it rather than generate duplicate dies.
13968
13969         Defer emitting information for the abstract instance of an inline
13970         until we either inline it or emit an out-of-line copy.
13971         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
13972         from output_inline_function if DECL_ABSTRACT is also set.
13973         (block_ultimate_origin): Likewise.
13974         (gen_abstract_function): New fn.
13975         (gen_decl_die, gen_inlined_subroutine_die): Call it.
13976         (gen_subprogram_die):  An abstract instance is not a declaration
13977         just because it doesn't match current_function_decl.  Don't abort
13978         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
13979         has an abstract origin.
13980         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
13981         abstract instance here.
13982
13983 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
13984
13985         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
13986         where we need to reload fpul from a system register.
13987
13988 1999-11-24  Andreas Jaeger  <aj@suse.de>
13989
13990         * config/mips/linux.h (CPP_PREDEFINES): Added.
13991         (LINK_SPEC): Remove -Y since this is only needed on sparc.
13992
13993 1999-11-24  Andreas Jaeger  <aj@suse.de>
13994
13995         * config/mips/linux.h (TARGET_VERSION): Added.
13996         (HANDLE_SYSV_PRAGMA): Added.
13997         (DEFAULT_VTABLE_THUNKS): Added.
13998
13999 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14000
14001         * local-alloc.c (qty): New structure and static variable.
14002         (qty_phys_reg): Remove, all references changed to qty.
14003         (qty_n_refs): Likewise.
14004         (qty_min_class): Likewise.
14005         (qty_birth): Likewise.
14006         (qty_death): Likewise.
14007         (qty_size): Likewise.
14008         (qty_mode): Likewise.
14009         (qty_n_calls_crossed): Likewise.
14010         (qty_alternate_class): Likewise.
14011         (qty_changes_size): Likewise.
14012         (qty_first_reg): Likewise.
14013         (alloc_qty): Rename variable QTY to QTYNO.
14014         (finf_free_reg): Likewise.
14015         (local_alloc): Allocate qty, do not allocate the removed variables.
14016
14017 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
14018
14019         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
14020         when -membedded-pic is passed.
14021
14022         * config/mips/mips.md (casesi): Handle 64-bit case too.
14023         (casesi_internal_di): New insn.
14024
14025         * config/mips/mips.c (embedded_pic_offset): Always make the
14026         embedded-pic subtractions relative to the name of the current
14027         function by use of the magic string "..CURRENT_FUNCTION".
14028         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
14029
14030 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
14031
14032         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
14033         of (const_int 0), when what we really care about is
14034         whether it's a zero constant anyway.
14035         (div_trap_mips16): Likewise.
14036
14037 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
14038
14039         * loop.c (loop_optimize): Always find_loop_tree_blocks and
14040         unroll_block_trees when generating debuggable code.
14041
14042         * tree.h (unsave_expr_1): New function.
14043         (lang_unsave): New variable.
14044         (get_callee_fndecl): New function.
14045         * tree.c (unsave_expr_now_r): New function.
14046         (lang_unsave): Define.
14047         (unsave_expr_1): Likewise.
14048         (unsave_expr_now_r): Split out from unsave_expr_now.
14049         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
14050         call unsave_expr_now_r.
14051         (get_callee_fndecl): Define.
14052
14053         * Makefile.in (gencheck): Don't depend on lang_tree_files.
14054         (gencheck.o): Do depend on lang_tree_files.
14055
14056         * integrate.h (copy_decl_for_inlining): New declaration.
14057         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
14058         (copy_decl_for_inlining): New function.
14059         (integrate_parm_decls): Use it.
14060         (integrate_decl_tree): Likewise.
14061
14062 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
14063
14064         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
14065         the second two from the first.
14066         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
14067         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
14068         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
14069         ISA_HAS_FP4.
14070         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
14071         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
14072         ISA_HAS_FP4.
14073
14074 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
14075
14076         * pa.md (call_internal_symref, call_value_internal_symref): No mode
14077         needed on the address operand.
14078         * pa.c (call_operand_address): Check for the correct mode.
14079
14080 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
14081
14082         * loop.c: Include "basic-block.h".
14083         (try_copy_prop, replace_loop_reg): New functions.
14084         (load_mems): Detect registers that just hold copies of the hoisted
14085         mem, and call try_copy_prop to eliminate them.
14086         * Makefile.in (loop.o): Update dependencies.
14087
14088 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
14089
14090         * Makefile.in (gencheck.o): Depend on gencheck.h.
14091         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
14092         (insn-peep.o): Depend on except.h and function.h.
14093         (insn-attrtab.o): Depend on RECOG_H.
14094         (insn-output.o): Depend on toplev.h and flags.h.
14095         (gengenrtl.o): Depend on real.h.
14096         (gen-protos.o): Depend on cpplib.h and cpphash.h.
14097         Unify all dependencies to be on RECOG_H rather than recog.h.
14098
14099 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14100
14101         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
14102         * configure.in: Try building a bi-arch 32/64-bit compiler on
14103         sparc-*-solaris2.7 and higher.
14104         * configure: Rebuild.
14105
14106 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
14107
14108         * config/freebsd.h: New, FreeBSD architecture independent file.
14109         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
14110         independent pieces.
14111         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
14112         directly by i386/freebsd.h.
14113         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
14114         independent configuration file.
14115         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
14116         directly by i386/freebsd.h.
14117         * configure: Rebuilt.
14118
14119         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
14120         which is in the user's namespace.
14121         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
14122         `i386' which is not in our namespace.
14123
14124 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
14125
14126         * invoke.texi (ARM Options): Add in -mno-alignment-traps
14127
14128 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
14129
14130         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
14131         (add_dwarf_attr, add_child_die): Just push onto the front.
14132         (reverse_die_lists): New fn.
14133         (add_sibling_attributes): Use it.
14134         (push_decl_scope): Reorganize.
14135         (add_name_and_src_coords_attributes): Don't set file and line for
14136         an artificial decl.
14137         (gen_subprogram_die): An artificial function doesn't need to match
14138         file and line.
14139         (gen_compile_unit_die): Return the generated die.  Only add
14140         AT_comp_dir if the filename is relative.
14141         (remove_AT): Simplify loop.  Also free string values.
14142         (output_die): A DIE ref can't be null.
14143         (output_value_format, value_format): Take a dw_attr_ref.
14144         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
14145         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
14146         AT_addr, AT_lbl): New fns.
14147         (various): Use them.
14148         (various): Constify.
14149
14150 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14151
14152         * combine.c (combine_simplify_rtx): When handling a SUBREG,
14153         take SUBREG_WORD into account.
14154         (if_then_else_cond): Likewise.
14155
14156 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
14157
14158         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
14159         clause from BSD license, pursuant with
14160
14161           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
14162
14163 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
14164
14165         * loop.c (load_mems): Reformat slightly.
14166         * basic-block.h (regset_head): New typedef.
14167         (INIT_REG_SET): New macro.
14168
14169 1999-11-22  Bruce Korb  <autogen@linuxbox.com
14170
14171         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
14172         (mips-dec-bsd*): non-functional code
14173         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
14174
14175         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
14176         added three replacement fixes
14177         (no_double_slash): removed comments that are not (any longer) pertinent
14178         (bad_lval): this fix currently runs against many files.
14179         The comment seems to indicate that we should select for files
14180         containing 'pragma extern_prefix'.
14181
14182         * fixinc/fixinc.x86-linux-gnu: deleted
14183         * fixinc/inclhack.sh:  regen
14184         * fixinc/fixincl.x:  regen
14185         * fixinc/fixincl.sh:  regen
14186
14187 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
14188
14189         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
14190         its code is INSN and it has no notes.
14191
14192 1999-11-22  Andrew Haley  <aph@cygnus.com>
14193
14194         * varasm.c (function_defined): Remove.
14195         (make_function_rtl): Don't set function_defined.
14196         (make_decl_rtl): Remove global register warning.
14197         * regclass.c (no_global_reg_vars): New variable.
14198         (globalize_reg): Warn if function has already been defined.
14199         (regclass_init): Set no_global_reg_vars.
14200
14201 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14202
14203         * regclass.c (reg_pref): New structure and static variable
14204         (prefclass): Delete.
14205         (altclass): Delete.
14206         (all uses of prefclass and altclass): Use reg_pref instead.
14207
14208 1999-11-21  Nick Clifton  <nickc@cygnus.com>
14209
14210         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
14211         -malignment-traps.
14212         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
14213         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
14214         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
14215
14216 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
14217
14218         * varasm.c (output_constructor): Solve problem with long long
14219         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
14220
14221 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14222
14223         * global.c (allocno): New structure and static variable.
14224         (allocno_reg): Remove, all references replaced by allocno.
14225         (allocno_size): Likewise.
14226         (hard_reg_conflicts): Likewise.
14227         (hard_reg_preferences): Likewise.
14228         (hard_reg_copy_preferences): Likewise.
14229         (hard_reg_full_preferences): Likewise.
14230         (regs_someone_prefers): Likewise.
14231         (allocno_calls_crossed): Likewise.
14232         (allocno_n_refs): Likewise.
14233         (allocno_live_length): Likewise.
14234         (find_reg): Rename ALLOCNO to NUM.
14235
14236         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
14237         references updated.
14238         (may_move_out_cost): New variable.
14239         (init_reg_sets_1): Initialize may_move_out_cost.
14240         (record_reg_classes): Use may_move_out_cost.
14241
14242         * regclass.c (dump_regclass): New function.
14243         (regclass): New parameter DUMP, call DUMP_REGCLASS.
14244         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
14245         pass rtl_dump_file to regclass.
14246         * rtl.h (regclass): Update prototype.
14247
14248 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14249
14250         * i386.md (neg, not and abs patterns): Revmap to use
14251         ix86_expand_unary_operator and ix86_unary_operator_ok.
14252         (add?f and sub?f expanders): Force operand 1 to register.
14253         * i386.c (ix86_expand_unary_operator): Rewrite.
14254         (ix86_unary_operator_ok): Ensure that memory operands
14255         match real opcode.
14256         (ix86_binary_operator_ok): Do not allow operand 1 to
14257         come into memory and operand 0 not.
14258         (ix86_expand_binary_operator): Ensure that
14259         src1 is not non-matching memory.
14260
14261         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
14262         to support integer registers and memory.
14263         (abss?2_integer): Likewise.
14264
14265         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
14266         (REG_CLASS_NAMES): Likewise.
14267         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
14268         and GENERAL_REGS.
14269         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
14270         (movsf): Likewise; unify 4th and 5th alternative.
14271         (pushdf): Likewise.
14272         (movdf_1): Likewise; rename to movdf_integer.
14273         (pushxf): Likewise; rename to pushxf_integer; fix output template;
14274         remove redundant splitter.
14275         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
14276         (movdf_nointeger): New.
14277         (movxf_nointeger): New.
14278         (pushxf_nointeger): New.
14279
14280         * i386.md (extend?f?f): Split to expander and pattern, refuse two
14281         memory operands in patterns.
14282         (fop*): Refuse two memory operands.
14283
14284         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
14285         on !TARGET_USE_CLTD CPUs.
14286
14287 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
14288
14289         * extend.texi: Document C++ restricted pointers and references.
14290
14291 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
14292
14293         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
14294         (invalidate_skipped_set): Call it unconditionally.
14295         (cse_set_around_loop): Likewise.
14296
14297 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
14298
14299         * rtl.texi (mem): Add documentation for alias-set argument
14300         to RTX `mem'.
14301
14302 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14303
14304         * i386.h (struct_processor_costs): New fields int_load, int_store,
14305         fp_move, fp_load and fp_store
14306         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
14307         fp->int moves
14308         (MEMORY_MOVE_COST): New macro.
14309         * i386.c (386_cost): Define new fields.
14310         (i486_cost): Likewise.
14311         (pentium_cost): Likewise.
14312         (pentiumpro_cost): Likewise.
14313         (k6_cost): Likewise.
14314
14315 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
14316                           Geoffrey Keating  <geoffk@cygnus.com>
14317
14318         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
14319
14320         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
14321         MASK_ALIGN_INT.
14322
14323         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
14324         (TARGET_STRICT_ALIGNMENT): New macro.
14325         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
14326         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
14327         * invoke.texi (M680x0 Options): Document -mstrict-align.
14328
14329 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
14330                           Richard Henderson  <rth@cygnus.com>
14331
14332         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
14333         (ix86_split_long_move): Declare.
14334         * i386.c (split_xf, ix86_split_movdi): Remove.
14335         (ix86_split_to_parts, ix86_split_long_move): New.
14336         * i386.md (dimode move splitters): Use ix86_split_long_move.
14337         (dfmode move splitters): Likewise.
14338         (xfmode move splitters): Likewise.
14339         (movsf_1): Allow F->r.
14340         (movdf_1, movxf_1): Allow F->ro.
14341
14342 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
14343
14344         * except.h (struct eh_entry): Add goto_entry_p.
14345         (eh_region_from_symbol): Remove prototype.
14346         * except.c (find_func_region_from_symbol): New function.
14347         (emit_cleanup_handler): Likewise.
14348         (eh_region_from_symbol): Make it static.
14349         (add_new_handler): Verify the argument.
14350         (find_func_region): Update comment.
14351         (expand_eh_region_end): Expand handlers here, rater than waiting
14352         until expand_leftover_cleanups or start_all_catch.
14353         (expand_leftover_cleanups): Don't expand here.
14354         (expand_start_all_catch): Or here.
14355         (expand_rethrow): Check the return value from find_func_region.
14356         * function.c (expand_function_end): Emit the catch_clauses.
14357
14358 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
14359
14360         * integrate.c (expand_inline_function): Add necessary check for NULL.
14361
14362 1999-11-18  Nick Clifton  <nickc@cygnus.com>
14363
14364         * toplev.c (main): Correctly detect an unrecognised option.
14365
14366         * cppinit.c (cpp_handle_option): Do not claim to have consumed
14367         a -f option if it has not been recognised.
14368
14369 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
14370
14371         * basic-block.h (update_life_extent): Remove trailing comma on
14372         enumeration type list.
14373
14374 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14375
14376         * varasm.c (output_constructor) Solved problem with long long
14377         bitfields. Corrected calculating this_time and shift. Also
14378         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
14379
14380 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
14381
14382         * flow.c (split_edge): Take looping structure into account when
14383         determining where to put the new block note.
14384
14385 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
14386
14387         * Makefile.in (ggc-none.o): Provide host specific version if
14388         needed.
14389
14390 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
14391
14392         * cse.c (delete_trivially_dead_insns): Identify no-op insns
14393         containing subregs too.
14394
14395 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
14396
14397         * invoke.texi: Add documentation for -muninit-const-in-rodata.
14398         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
14399         (TARGET_UNINIT_CONST_IN_RODATA): Define.
14400         (text_section): Add switches -munint-const-in-rodata and
14401         -mno-uninit-const-in-rodata.
14402         (ASM_OUTPUT_COMMON): Remove.
14403         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
14404         const objects should be placed in read-only data. Otherwise declare
14405         them in common.
14406
14407 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
14408
14409         * jump.c (jump_optimize_1): Revert last change.
14410
14411 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
14412
14413         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
14414         test if optimizing for size.
14415
14416 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
14417
14418         * Makefile.in (toplev.o): Depend on except.h.
14419         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
14420
14421 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14422
14423         * i386.md (divmodsi4): Rewrite to expander.
14424         (*divmodsi4_nocltd): New.
14425         (*divmodsi4_cltd): New.
14426         (divmodsi4 splitter): Handle the case when input comes in edx.
14427         (udivmodhi4): Do not use constraints in exander.
14428         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
14429
14430 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
14431
14432         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
14433         for the common case.
14434
14435 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
14436
14437         * explow.c (hard_function_value): Add outgoing argument.
14438         * expr.h (hard_function_value): Declare it.
14439         * calls.c (expand_call, emit_library_call_value): Update callers.
14440         * function.c (aggregate_value_p): Ditto.
14441         (diddle_return_value): Must look at the outgoing registers
14442         on archs with register windows.
14443
14444 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
14445
14446         * alpha.c (alpha_build_va_list): Use make_lang_type and
14447         initialize TYPE_NAME for the va_list record.
14448
14449         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
14450
14451         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
14452         for printing.
14453         * ggc.h (struct ggc_statistics): Rearrange elements for better
14454         packing on 64-bit hosts.
14455         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
14456         (compute_nearerout): Likewise.
14457
14458 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
14459
14460         * config/rs6000/rs6000.c (first_reg_to_save): Save
14461         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
14462
14463 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
14464
14465         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
14466         notion of nesting to find the DIE for a type or function.
14467         DIEs can go in limbo even if we got a context_die.
14468         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
14469         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
14470         for local type.
14471         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
14472         (gen_type_die): Writing out the context doesn't cause member class
14473         template instantiations to be written out as well.
14474
14475 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
14476
14477         * rs6000.h (ASM_OUTPUT_DEF): New.
14478         Based on proposed addition from David Edelsohn.
14479
14480 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
14481             Bruce Korb  <autogen@linuxbox.com>
14482
14483         * fixinc/inclhack.def
14484         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
14485         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
14486                 in net/inet.h.
14487         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
14488         (svr4_endian): enabled with SVR5
14489         (svr4_mkdev): simplified syntax and enabled with SVR5
14490
14491 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
14492
14493         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
14494         * configure: Rebuilt.
14495         * config/t-freebsd-thread: New file.
14496
14497 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
14498
14499         * i386.c (ix86_decompose_address): Verify the base is a REG
14500         before trying to examine its register number.
14501
14502         * basic-block.h: Remove all #defines and prototypes related to
14503         integer lists.
14504         (free_bb_mem, compute_preds_succs): Remove prototype.
14505         * rtl.h (free_bb_mem): Remove prototype.
14506         * flow.c (alloc_int_list_node); Remove function.
14507         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
14508         (compute_preds_succs, free_bb_mem): Likewise.
14509         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
14510         * toplev.c (rest_of_compilation): Likewise.
14511         * haifa-sched.c (build_control_flow): Use flow generated edge
14512         list to build the haifa specific edge list.
14513         (find_rgns): Use new CFG data structures instead of pred/succ lists.
14514         (schedule_insns): Do not build pred/succ lists anymore.  Instead
14515         build the edge table.
14516
14517         * basic-block.h (dump_bb_data): Remove declaration.
14518         * flow.c (dump_bb_data): Remove function.
14519         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
14520         (sbitmap_union_of_predsucc): Likewise.
14521
14522         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
14523         argument.  All callers changed.
14524         (delete_null_pointer_checks_1): No longer need to compute the
14525         pred/succ lists.
14526
14527         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
14528         All callers changed.
14529         (pre_expr_reaches_here_p_work): Likewise.
14530         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
14531         * lcm.c (compute_laterin): Fix initialization of LATER.
14532         (compute_nearerout): Similarly for NEARER.
14533
14534 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14535
14536         * cse.c (set_nonvarying_address_components): Delete unused function.
14537         (refers_to_p): Likewise.
14538
14539 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
14540
14541         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
14542         needed.
14543
14544 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14545
14546         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
14547         definition in do while (0).
14548
14549 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
14550
14551         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
14552
14553 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
14554
14555         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
14556
14557 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
14558
14559         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
14560         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
14561         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
14562         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
14563
14564         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
14565         saved on the stack.  Output more accurate stack frame statistics
14566         into assembler file.
14567
14568 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
14569
14570         * genextract.c (record_insn_name): New function.
14571         (get_insn_name): No longer a stub.
14572         (main): Call record_insn_name for each insn.  After each label
14573         written, print the insn name in a comment.
14574
14575 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14576
14577         * output.h (const_section, init_section, fini_section): Add
14578         prototypes.
14579
14580         * alpha/elf.h (const_section): Delete declaration.
14581
14582         * svr4.h (const_section): Likewise.
14583
14584 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
14585
14586         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
14587         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
14588         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
14589         expressions.
14590         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
14591         variable-sized array bounds.
14592
14593 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
14594
14595         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
14596         ASM_OUTPUT_LABEL.
14597
14598 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14599
14600         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
14601         addresses the same way GO_IF_LEGITIMATE_INDEX does.
14602
14603 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14604
14605         * cse.c (hash_arg_in_struct): Delete.
14606         (struct table_elt): Delete elt in_struct.
14607         (struct set): Delete elt src_in_struct.
14608         (merge_equiv_classes): Don't set either hash_arg_in_struct or
14609         the corresponding in_struct elts.
14610         (canon_hash): Likewise.
14611         (safe_hash): Likewise.
14612         (find_best_addr): Likewise.
14613         (record_jump_cond): Likewise.
14614         (cse_insn): Likewise.
14615
14616 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
14617
14618         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
14619
14620         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
14621         unsigned types.
14622
14623 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
14624
14625         * function.c (diddle_return_value): Put back check that the DECL_RTL
14626         for the function is a register.
14627
14628         * function.c (diddle_return_value): Use hard_function_value to
14629         get an rtx suitable for use in the USE/CLOBBER insn.
14630
14631         * global.c (global_conflicts): Update comments.
14632         (record_conflicts): No need to record conflicts between pseudos here.
14633
14634 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
14635
14636         * fixinc/fixincl.c: Added verbose levels for status messages
14637
14638 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14639
14640         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
14641         operand as argument to expand_and or expand_binop.
14642
14643 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
14644
14645         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
14646         gcc_add_string_root.
14647
14648 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
14649
14650         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
14651
14652 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
14653
14654         * flow.c (compute_flow_dominators): Initially put all blocks on
14655         the worklist.
14656         * lcm.c (compute_antinout_edge, compute_available): Similarly.
14657         * gcse.c (compute_cprop_avinout): Remove.
14658         (compute_cprop_data): Use compute_available.
14659         (delete_null_pointer_checks_1): Use compute_available.
14660
14661         * basic-block.h (compute_available): Returns a void now.
14662         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
14663         to return a value anymore.
14664         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
14665         worklists.  Fix boundary cases. Compute maximal solutions.
14666         (compute_laterin, compute_nearerout): Similarly.
14667
14668         * dwarf2out.c (add_AT_location_description): Allow
14669         (mem (plus (pseudo) (...)) too.
14670
14671 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
14672
14673         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
14674
14675 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
14676                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14677
14678         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
14679
14680         * gansidecl.h: Likewise.
14681
14682         * rtl.c: Likewise.
14683
14684         * rtl.h: Likewise.
14685
14686         * toplev.h: Likewise.
14687
14688         * tree.c: Likewise.
14689
14690         * tree.h: Likewise.
14691
14692         * varray.c: Likewise.
14693
14694         * varray.h: Likewise.
14695
14696 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
14697
14698         * gcov.c (struct arcdata): Add hits and total, remove prob.
14699         (output_branch_counts): New.
14700         (process_args): Set output_branch_counts if -c.
14701         (calculate_branch_probs): Store hits and total instead of
14702         percentage.
14703         (output_data): Emit counts if output_branch_counts is true.
14704         * gcov.texi (Invoking Gcov): Document -c switch..
14705
14706 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
14707
14708         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
14709         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
14710
14711 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
14712
14713         * invoke.texi (C Dialect Options): Add missing builtins from
14714         c-common.c to list.
14715         * extend.texi (Other Builtins): Copy to this list.
14716
14717 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14718
14719         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
14720         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
14721         redundant bitmap.h.
14722
14723 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
14724
14725         * flow.c (compute_flow_dominators): No longer treat basic block 0
14726         or (n_basic_blocks - 1) specially.  Clear the AUX field before
14727         starting computation of doms/pdoms.  Fix initial state for pdoms.
14728
14729 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14730
14731         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
14732         match rtl.o's: added ggc.h and toplev.h
14733         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
14734         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
14735         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
14736
14737 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
14738
14739         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
14740         from HAVE_DOS_BASED_FILESYSTEM.
14741         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
14742         HAVE_DOS_BASED_FILESYSTEM.
14743         (main): Likewise.
14744         (split_directories): Only special-case DOS file names if
14745         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
14746         instead of explicit tests.  Conditionalize on !VMS.
14747         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
14748         tests.  Conditionalize on !VMS.
14749         (process_command): Only use make_relative_prefix if !VMS.
14750         (free_split_directories): Conditionalize on !VMS.
14751         (DIR_UP): Conditionalize on !VMS.
14752
14753 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
14754
14755         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
14756
14757 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
14758
14759         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
14760         case.
14761
14762 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
14763
14764         * invoke.texi (Environment Variables): Document relative path
14765         lookup.
14766         * gcc.c (DIR_UP): If not defined, define as "..".
14767         (standard_bindir_prefix): New static, holds target location to
14768         install binaries.
14769         (split_directories): New function to split a filename into
14770         component directories.
14771         (free_split_directories): New function, release memory allocated
14772         by split_directories.
14773         (make_relative_prefix): New function, make a relative pathname if
14774         the compiler is not in the expected location.
14775         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
14776         can figure out an appropriate prefix from argv[0].
14777         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
14778         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
14779         STANDARD_BINDIR_PREFIX.
14780
14781 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14782
14783         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
14784         in c4x.c.
14785         * config/c4x/c4x.h: Moved prototypes to c4x.h.
14786         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
14787         c4x_secondary_memory_needed) Delete.
14788         (fp_zero_operand): Add mode argument.
14789
14790 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
14791
14792         * reload1.c (reload_reg_free_for_value_p): Don't use a register
14793         that is in reload_reg_used.
14794
14795 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
14796
14797         * config/arm/arm-protos.h: New file: Prototypes for functions
14798         defined in arm.c and pe.c.
14799         * config/arm/arm.h: Fix compile time warnings.
14800         * config/arm/arm.c: Fix compile time warnings.
14801         * config/arm/pe.h: Fix compile time warnings.
14802         * config/arm/aout.h: Fix compile time warnings.
14803
14804 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
14805
14806         * config/m32r/m32r-protos.h: New file: Prototypes for functions
14807         defined in m32r.c
14808
14809         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
14810         Add support for subtargets.
14811         Add prototypes for new predicates.
14812         Add scheduling macros.
14813
14814         * config/m32r/m32r.c: Fix compile time warnings.
14815         (int8_operand): New predicate function.
14816         (reg_or_cmp_int16_operand): New predicate function.
14817         (extend_operand): New predicate function.
14818         (m32r_adjust_code): New scheduling function.
14819         (m32r_adjust_priorty): New scheduling function.
14820         (m32r_sched_init): New scheduling function.
14821         (m32r_sched_reorder): New scheduling function.
14822         (m32r_sched_variable_issue): New scheduling function.
14823         (direct_return): New codegen function.
14824         (m32r_not_same_reg): New rtl testsing function.
14825
14826         * config/m32r/m32r.md: Fix compile time warnings.
14827         Add support for pre decrement and post increment memory
14828         references.
14829         Add S<cc> patterns.
14830         Add fabs patterns.
14831
14832 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14833
14834         * global.c (EXECUTE_IF_CONFLICT): Don't define.
14835         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
14836         (find_reg): Likewise.
14837
14838 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
14839
14840         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
14841         to avoid assembler errors.
14842
14843 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
14844
14845         * config/v850/v850-protos.h: New file: Prototypes for functions
14846         defined in v850.c
14847         * config/v850/v850.h: Move prototypes to v850-protos.h
14848         * config/v850/v850.c: Move prototypes to v850-protos.h
14849         * config/v850/v850.md: Fix compile time warnings.
14850
14851         * config/fr30/fr30-protos.h: New file: Prototypes for functions
14852         defined in fr30.c
14853         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
14854         * config/fr30/fr30.c: Fix compile time warnings.
14855         * config/fr30/fr30.md: Fix compile time warnings.
14856
14857 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
14858
14859         * tree.h (get_containing_scope): Declare it.
14860         * tree.c (get_containing_scope): New fucntion.
14861         (decl_function_context): Use it.
14862         * toplev.c (rest_of_compilation): Use get_containing_scope.
14863
14864 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14865
14866         * Makefile.in (rtl.o): Depend on toplev.h.
14867
14868 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
14869
14870         * cse.c (delete_trivially_dead_insns): Replace alloca with
14871         xmalloc/xcalloc.
14872         * except.c (update_rethrow_references): Likewise.
14873         (init_eh_nesting_info): Likewise.
14874         * function.c (identify_blocks): Likewise.
14875         * gcse.c (dump_hash_table): Likewise.
14876         * graph.c (print_rtl_graph_with_bb): Likewise.
14877         * loop.c (combine_movables): Likewise.
14878         (move_movables): Likewise.
14879         (count_loop_regs_set): Likewise.
14880         (strength_reduce): Likewise.
14881         * profile.c (compute_branch_probabilities): New function, split
14882         out from ...
14883         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
14884         * regclass.c (regclass): Likewise.
14885         * regmove.c (regmove_optimize): Likewise.
14886         * toplev.c (compile_file): Likewise.
14887         (main): Don't mess with the stack rlimit.
14888
14889 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
14890
14891         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
14892         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
14893
14894 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
14895
14896         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
14897
14898 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
14899
14900         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
14901         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
14902         macro expansion.
14903
14904 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
14905
14906         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
14907
14908 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
14909
14910         * gcse.c (post_dominators): Kill.
14911         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
14912         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
14913         pass in a pdom array since we do not need pdoms.
14914         * haifa-sched.c (schedule_insns): Similarly.
14915         * flow.c (compute_dominators): Remove dead function.
14916         (compute_flow_dominators): Do not compute doms or pdoms if the
14917         caller does not request them.  Split up loop to build doms and
14918         pdoms.  Use a worklist to compute doms and pdoms.
14919         * basic-block.h (compute_dominators): Remove prototype.
14920
14921 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
14922
14923         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
14924         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
14925         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
14926         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
14927         (cant_move, fed_by_spec_load, is_load_insn): Remove.
14928         (schedule_region): Remove unused variable.
14929         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
14930
14931 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
14932
14933         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
14934         (update_equiv_regs): Likewise.
14935         (block_alloc): Likewise.
14936         * reg-stack.c (reg_to_stack): Likewise.
14937         (convert_regs_2): Likewise.
14938         * reload1.c (reload_as_needed): Likewise.
14939
14940 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
14941
14942         * Makefile.in (dbxout.o): Depend on ggc.h.
14943         (dwarf2out.o): Likewise.
14944         (xcoffout.o): Likewise.
14945         * dbxout.c: Include ggc.h.
14946         (dbxout_init): Register lastfile as a root.
14947         * dwarf2out.c: Include ggc.h.
14948         (dwarf2out_line): Register lastfile as a root.
14949         * xcoffout.c: Include ggc.h.
14950         (xcoffout_source_line): Register xcoff_lastfile as a root.
14951
14952 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
14953
14954         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
14955
14956 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
14957
14958         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
14959         defined.
14960         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
14961
14962 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14963
14964         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
14965         (EXECUTE_IF_CONFLICT): Likewise.
14966         (ALLOCNO_LIVE_P): Avoid signed division.
14967         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
14968         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
14969         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
14970
14971 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
14972
14973         * haifa-sched.c (schedule_block): Don't crash if there's no
14974         next insn for an interblock movement.
14975         (add_branch_dependences): Don't allow clobber insns to move either.
14976
14977 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
14978
14979         * i386.c (split_xf): New.
14980         * i386-protos.h: Declare it.
14981         * i386.md (movxf_1): Add general regs alternatives.
14982         (movxf_1+1): New splitter for same.
14983
14984 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
14985
14986         * function.c (purge_addressof_1): Add missing return values.
14987
14988 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
14989
14990         * function.c (is_addressof): New function.  Returns true if
14991         the given piece of RTL is an ADDRESSOF.
14992         (purge_addressof_1): Make boolean.  Return false if the
14993         ADDRESSOFs could not be purged.
14994         (purge_addressof): If ADDRESSOFs could not be purged from the
14995         notes attached to an insn, remove the offending note(s),
14996         unless they are attached to a libcall.
14997
14998 1999-11-05  Andreas Jaeger  <aj@suse.de>
14999
15000         * genoutput.c (null_operand =): Initialize all fields.
15001
15002         * errors.h: Add extern to prototypes.
15003
15004 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
15005
15006         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
15007         * configure: Rebuilt.
15008
15009 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15010
15011         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
15012         (mirror_conflicts): New function.
15013         (global_alloc): Call it.
15014         (expand_preferences): Remove redundant CONFLICTP test.
15015         (find_reg, dump_conflicts): Likewise.
15016         (prune_preferences): Process conflicts one word at a time.
15017
15018 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
15019
15020         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
15021         instead of an explicit loop.
15022
15023 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
15024
15025         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
15026         if REG_RETVAL check succeeds, then put classp in src_elt.
15027
15028 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
15029
15030         * function.c (pad_to_arg_alignment): Only update argument_pad
15031         if the argument's alignment is greater than STACK_BOUNDARY.
15032
15033 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
15034
15035         * bitmap.h (BITMAP_XFREE): New.
15036         * flow.c (life_analysis): Use it.
15037         (life_analysis_1): Free blocks.
15038
15039         * combine.c (undo_commit): New.
15040         (try_combine): Use it.  Don't zap undobuf.undos.
15041         (combine_instructions): Don't zap undobuf.undos; free the
15042         undobuf.frees list.
15043
15044         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
15045
15046         * stmt.c (cost_table_): New.
15047         (estimate_case_costs): Use it instead of xmalloc.
15048
15049         * toplev.c (compile_file): Reuse dumpname memory instead
15050         of strdup'ing it.
15051
15052 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
15053
15054         * reg-stack.c (convert_regs_1): Initialize target_stack->top
15055         after verifying an EH edge.
15056
15057         * haifa-sched.c (init_rgn_data_dependences): Correctly
15058         size bb_pending_lists_length when zeroing.
15059
15060 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
15061
15062         * function.c (diddle_return_value): New.
15063         (expand_function_end): Use it.
15064         * stmt.c (expand_null_return): Likewise.
15065         (expand_value_return): Likewise.
15066
15067         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
15068
15069         * reload1.c (reload): Don't remove return value clobbers.
15070
15071 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
15072
15073         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
15074
15075 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
15076
15077         * cse.c (cse_main): Use xmalloc, not alloca.
15078         (cse_basic_block): Likewise.
15079         * local-alloc.c (local_alloc): Likewise.
15080
15081 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
15082                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15083
15084         * rtl.c: Include toplev.h.
15085         (fatal): Remove declaration.
15086
15087 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
15088
15089         * haifa-sched.c (schedule_block): Fix thinko.
15090
15091 1999-11-03  James McKelvey <mckelvey@fafnir.com>
15092
15093         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
15094         S_IR* defined values
15095
15096 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
15097
15098         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
15099         call `malloc' instead.
15100
15101 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
15102
15103         * flags.h (flag_renumber_insns): Declare.
15104         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
15105         renumbering table.
15106         * rtl.h (renumber_insns): Change prototype.
15107         * toplev.c (flag_renumber_insns): Define.
15108         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
15109
15110 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
15111
15112         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
15113         and fpsqrtd.  Use them and create fdiv function unit to more
15114         accurately represent fpu sqrt pipeline semantics on UltraSparc.
15115         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
15116
15117 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
15118
15119         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
15120         3 on UltraSparc.
15121         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
15122         insn into ready list, do not use just a raw swap.
15123
15124 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
15125
15126         * rtl.h (renumber_insns): New function.
15127         (remove_unnecessary_notes): Likewise.
15128         * emit-rtl.c (renumber_insns): Define.
15129         (remove_unncessary_notes): Likewise.
15130         * toplev.c (rest_of_compilation): Remove dead code.
15131         Use renumber_insns and remove_unncessary_notes.
15132
15133         * gcse.c (struct null_pointer_info): New type.
15134         (get_bitmap_width): New function.
15135         (current_block): Remove.
15136         (nonnull_local): Likewise.
15137         (nonnull_killed): Likewise.
15138         (invalidate_nonnull_info): Take a null_pointer_info as input.
15139         (delete_null_pointer_checks_1): New function.
15140         (delete_null_pointer_checks): Use it.
15141
15142         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
15143         (split_edges): Likewise.
15144         (schedule_block): Likewise.
15145         (compute_block_backward_dependencies): Likewise.
15146         (schedule_region): Likewise.
15147         (schedule_insns): Likewise.
15148
15149 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
15150
15151         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
15152         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
15153         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
15154         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
15155         * jump.c (delete_unreferenced_labels): Don't delete if
15156         LABEL_ALTERNATE_NAME is set.
15157         * print-rtl.c (print_rtx): Dump alternate name.
15158         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
15159         * rtl.h (LABEL_ALTERNATE_NAME): Define.
15160         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
15161         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
15162
15163 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15164
15165         * fix-header.c (recognized_extern, recognized_function): Constify
15166         a char*.
15167
15168         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
15169         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
15170         (compute_available): Remove unused variable `last'.
15171         (compute_nearerout): Remove unused variable `temp_bitmap'.
15172         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
15173         Remove unused variable `x'.
15174
15175         * scan.h (recognized_function, recognized_extern): Constify a
15176         char*.
15177
15178         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
15179
15180 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15181
15182         * varasm.c (decode_rtx_const): Use XSTR to access the string
15183         of a SYMBOL_REF.
15184
15185 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
15186
15187         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
15188
15189 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15190
15191         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
15192
15193 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
15194
15195         * pa.c (ireg_operand): New function.
15196         * pa.h (PREDICATE_CODES): Handle ireg_operand.
15197         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
15198         Fix out of date comment.
15199
15200         * pa.md (negdi2): Turn into expander + anonymous pattern.
15201
15202         * reload.c (find_reloads): Fix typos in recent change.
15203
15204         * dwarf2out.c: Do not include ctype.h.
15205
15206 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15207
15208         * regclass.c (record_reg_classes): Always use may_move_cost when
15209         seeing how operand fits with various register classes.
15210
15211 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
15212
15213         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
15214         * toplev.c: Revert Nov 1 13:22 change.
15215
15216 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
15217
15218         * config/pa/pa.md (height reduction patterns): Add checks for
15219         overlapping operands to avoid semantic-destroying splits for
15220         height reduction patterns.
15221
15222 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15223
15224         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
15225         have been an hyphen, fixed.
15226         * configure: Rebuilt.
15227
15228 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
15229
15230         * config/arm/tpe.h: Add prototypes for exported functions.
15231         * config/arm/pe.c: Fix compile time warnings.
15232         * config/arm/semi.h: Fix compile time warnings.
15233         * config/arm/arm.c: Fix compile time warnings.
15234         * config/arm/arm.h: Fix compile time warnings.
15235         * config/arm/arm.md: Fix compile time warnings.
15236         * config/arm/thumb.c: Fix compile time warnings.
15237         * config/arm/thumb.h: Fix compile time warnings.
15238         * config/arm/thumb.md: Fix compile time warnings.
15239
15240 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
15241
15242         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
15243         detection code
15244
15245         * unroll.c (unroll_loop): Remove LOOP notes when loop is
15246         completely unrolled.
15247
15248 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15249
15250         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
15251
15252 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
15253
15254         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
15255         * rtl.h (rtx_equal_p): Move prototype.
15256         * rtl.c (rtx_equal_function_value_matters): Move from
15257         rtlanal.c
15258         (rtx_equal_p): Likewise.
15259         * rtlanal.c (rtx_equal_function_value_matters): Delete.
15260         (rtx_equal_p): Likewise.
15261
15262 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
15263
15264         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
15265         ! HAS_INIT_SECTION.
15266
15267 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
15268
15269         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
15270
15271         * pa.h (ADDR_VEC_ALIGN): Define.
15272
15273         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
15274         notes when presented with "if (foo) break; end_of_loop" and
15275         the break sequence gets moved out of the loop.
15276
15277         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
15278         Remove explicit zero initializations of entries within MAP.
15279
15280 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
15281
15282         * reg-stack.c (convert_regs_1): Handle EH edges specially.
15283
15284 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
15285
15286         * bitmap.h (BITMAP_XMALLOC): New macro.
15287         * flow.c (CLEAN_ALLOCA): Remove.
15288         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
15289         (life_analysis): Likewise.
15290         (update_life_info): Don't use CLEAN_ALLOCA.
15291         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
15292         (calculate_global_regs_live): Likewise.
15293         (print_rtl_with_bb): Likewise.
15294         (verify_flow_info): Likewise.
15295         * global.c (global_alloc): Likewise.
15296         (global_conflicts): Likewise.
15297         * integrate.c (save_for_inline_nocopy): Likewise.
15298         (expand_inline_function): Likewise.
15299         * jump.c (jump_optimize_1): Likewise.
15300         (duplicate_loop_exit_test): Likewise.
15301         (thread_jumps): Likewise.
15302         * loop.c (loop_optimize): Likewise.
15303         (combine_givs): Likewise.
15304         (recombine_givs): Likewise.
15305         * reorg.c (dbr_schedule): Likewise.
15306         * unroll.c (unroll_loop): Likewise.
15307
15308         * combine.c (combine_instructions): Use xmalloc instead of alloca.
15309
15310 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
15311
15312         * toplev.c (rest_of_compilation): Don't optimize the CFG
15313         when rebuilding, just before dbr.
15314
15315 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15316
15317         * output.h (assemble_end_function, assemble_destructor,
15318         assemble_constructor, assemble_gc_entry, assemble_global,
15319         assemble_label, output_constant_pool) Constify a char*.
15320
15321         * varasm.c (assemble_destructor, assemble_constructor,
15322         assemble_gc_entry, assemble_end_function, assemble_global,
15323         assemble_label, output_constant_pool): Likewise.
15324
15325 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
15326
15327         * config/arm/thumb.c (thumb_expand_prologue): Add comments
15328         explaining what is goin on in this function.
15329
15330 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15331
15332         * regclass.c (record_reg_classes): In matching case, recompute
15333         costs since the direction of movement is different.
15334
15335 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
15336
15337         * resource.c (mark_target_live_regs): For unconditional branches,
15338         the resources found at the branch target should be added to the
15339         resources found so far, not intersected.
15340
15341 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
15342
15343         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
15344         old cpp's.
15345         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
15346         (sys/mman.h): Include this file only if #HAVE_MMAP.
15347         (run_compiles): Initialize `esac_fmt' with one old KR string, not
15348         with automatically concatenated ANSI strings.
15349
15350 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
15351
15352         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
15353         (DIV_ROUND_UP): Robustify.
15354         (ggc_recalculate_in_use_p): New function.
15355         (release_pages): Don't inline it.
15356         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
15357         outer contexts.
15358         (ggc_pop_context): Use ggc_recalculate_in_use_p.
15359         (clear_marks): Always save in_use_p.
15360         (sweep_pages): Use ggc_recalculate_in_use_p.
15361         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
15362         Release pages before counting statistics.
15363
15364 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
15365
15366         * toplev.c (rest_of_compilation): Fix thinko in this change:
15367
15368         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
15369
15370         (rest_of_compilation): If inside an inlined external function,
15371         pretend we are just being declared.
15372
15373 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
15374
15375         * flow.c (calculate_global_regs_live): Fix thinko.
15376
15377         * integrate.c (expand_inline_function): Fix bugs in previous
15378         change from Oct 28, 1999.
15379
15380 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
15381
15382         * stmt.c (expand_value_return): Fix typo in this change:
15383
15384         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15385         (expand_value_return): Correctly convert VAL when promoting function
15386         return; support RETURN_REG being a PARALLEL.
15387
15388 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
15389
15390         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
15391
15392 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15393
15394         * hard-reg-set.h (reg_names): Constify a char*.
15395
15396         * regclass.c  (reg_names): Likewise.
15397
15398         * regs.h (reg_names): Likewise
15399
15400         * a29k/a29k.c (reg_names): Delete declaration.
15401
15402         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
15403
15404         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
15405         arc_output_function_epilogue): Likewise.
15406
15407         * elxsi/elxsi.c (reg_names): Likewise.
15408
15409         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
15410
15411         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
15412         Likewise.
15413
15414         * m88k/m88k.c (output_function_profiler): Likewise.
15415
15416         * sparc/sparc.c (sparc_flat_output_function_prologue,
15417         sparc_flat_output_function_epilogue): Likewise.
15418
15419 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
15420
15421         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
15422         warning from -Wuninitialized and put it under -W.
15423         * function.c (uninitialized_vars_warning): Warn only when the
15424         corresponding flag is set.
15425
15426 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
15427
15428         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
15429         is nonzero and the single set does not have an elt, then assign
15430         it an elt.
15431
15432         * simplify-rtx.c: New file.
15433         * Makefile.in (OBJS): Add simplify-rtx.o
15434         (simplify-rtx.o): Add dependencies.
15435         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
15436         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
15437         (cse_gen_binary, simplify_unary_operation): Delete.
15438         (simplify_binary_operation, simplify_plus_minus): Likewise.
15439         (check_fold_consts, simplify_relation_operation): Likewise.
15440         (simplify_ternary_operation): Likewise.
15441         (delete_trivially_dead_insns): Simplify the contents of the
15442         REG_EQUAL note before trying to substitute it into the source
15443         of the reg-reg copy at the end of a libcall sequence.
15444
15445         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
15446         references/callers changed.
15447
15448         * mn10200.c (mn10200_va_arg): Force the return value into a
15449         register.
15450
15451         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
15452
15453         * cccp.c (macroexpand): Avoid out of range accesses for omitted
15454         arguments.
15455
15456 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
15457
15458         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
15459
15460 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
15461
15462         * fold-const.c (fold): Fix thinko when optimizing comparisons
15463         against -0.0.
15464
15465 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
15466
15467         * gcc.texi (Passes): Update front-end files to their current
15468         location.
15469
15470 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
15471
15472         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
15473         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
15474         (PREDICATE_CODES): Add addition_operation.
15475         * alpha-protos.h (addition_operation): Declare.
15476         (secondary_reload_class): Likewise.
15477         * alpha.c (addition_operation): New.
15478         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
15479         * alpha.md (adddi3): Turn into expander.
15480         (*lda, *adddi_2): New.
15481         (movsf, movdf patterns): Don't preference integer regs.
15482         (movsi, movdi patterns): Don't preference fp regs.
15483
15484 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
15485
15486         * genrecog.c (write_switch): Check for duplicate CODE cases.
15487
15488 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
15489
15490         * ggc-common.c: Update pre-function commentary.
15491         * ggc-page.c: Likewise.
15492         (poison): Remove.
15493         (poison_pages): Use memset directly.
15494         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
15495         (ggc_collect): Poison before sweeping.
15496         * ggc-simple.c: Update pre-function commentary.
15497         (ggc_alloc_obj): Poison non-zeroed memory.
15498
15499 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
15500
15501         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
15502         match format string, even on 64-bit hosts.
15503         * gcc-page.c (ggc_page_print_statistics): Likewise.
15504
15505 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
15506
15507         * config/i386/i386.c (ix86_cpu): Revert last patch.
15508         * config/i386/i386.h (ix86_cpu): Ditto.
15509
15510 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
15511
15512         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
15513         TYPE_SIZE, convert type of result to sizetype.
15514
15515 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
15516
15517         * flow.c (count_or_remove_death_notes): Equate NULL with the
15518         universal set.
15519
15520         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
15521         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
15522         dbr_schedule.
15523
15524         * i386.c (pic_label_no): Delete.
15525         (ix86_attr_length_default): Don't use single_set to peek
15526         inside a parallel.
15527
15528         * recog.c (peephole2_optimize): Allow recog_next_insn to index
15529         the first insn after bb->end.
15530         * i386.md (push mem peeps): Scratch is live after evaluation
15531         of the memory.
15532         (cmp mem peep): Similarly.
15533
15534 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
15535
15536         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
15537         * function.c (pad_to_arg_alignment): Add missing braces.
15538
15539 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15540
15541         * alpha/alpha-protos.h (literal_section): Add prototype.
15542         (alpha_need_linkage, alpha_start_function,alpha_end_function):
15543         Constify a char*.
15544
15545         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
15546         prototype.
15547         (alpha_start_function, alpha_end_function, float_strings,
15548         alpha_need_linkage): Constify a char*
15549
15550         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
15551
15552         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
15553
15554         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
15555
15556         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
15557
15558 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15559
15560         * flow.c (debug_flow_info): Add prototype.
15561
15562         * gcc.c (main): Likewise.
15563
15564         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
15565         Likewise.
15566
15567         * reload1.c (failed_reload, set_reload_reg): Likewise.
15568
15569         * mips-tfile.c (main): Likewise.
15570         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
15571         with ATTRIBUTE_NORETURN.
15572
15573 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
15574
15575         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
15576         DECL is not a memory ref.
15577
15578 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
15579
15580         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
15581         * config/i386/i386.c (ix86_cpu): Add extern attribute.
15582
15583 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
15584
15585         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
15586         * config/mips/elf64.h: ditto.
15587
15588 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
15589
15590         * expr.c (emit_push_insn): New argument alignment_pad.
15591         Update all callers.  Adjust stack pointer based on alignment pad.
15592         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
15593         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
15594         (locate_and_pad_parm): New argument alignment_pad.  Update all
15595         callers.
15596         * expr.h (emit_push_insn): Update prototype.
15597         (locate_and_pad_parm): Update prototype.
15598         * calls.c (arg_data):  Add new field alignment_pad.
15599         (initialize_argument_information): Initialize alignment_pad.
15600
15601 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
15602
15603         * except.c (free_eh_nesting_info): Free the info itself.
15604         * function.c (free_after_compilation): Don't free NULL.
15605         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
15606         (pre_edge_insert): Free inserted.
15607         * stmt.c (free_stmt_status): Don't free NULL.
15608
15609 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
15610
15611         * gcov.c (DIR_SEPARATOR): Provide default.
15612         (output_data): Add test for MS-DOS format absolute filename.
15613         (fancy_abort): Correct program name.
15614         (open_files): Open all files in binary mode.
15615         * libgcc2.c (__bb_exit_func): Likewise.
15616
15617         * profile.c (init_branch_prob): Specify binary when opening files.
15618
15619         * flags.h (flag_unwind_tables): New decl.
15620         * toplev.c (flag_unwind_table): New definition.
15621         (f_options): Add -funwind-tables.
15622         (decode_g_option): Clarify warning when unknown -g option is given.
15623         (rest_of_compilation): If inside an inlined external function,
15624         pretend we are just being declared.
15625
15626         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
15627         (dwarf2out_frame_finish): Likewise.
15628
15629 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
15630
15631         * fold-const.c (merge_ranges): If not in0, but in1, handle
15632         upper bounds equal like subset case.
15633
15634 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
15635
15636         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
15637         passed in a register but moved to the stack.
15638
15639 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
15640
15641         * gcc.c (pass_exit_codes, greatest_status): New variables.
15642         (struct option_map): Add entry for "--pass-exit-codes".
15643         (execute): Update greatest_status if error.
15644         (display_help): Add documentation for -pass-exit-codes.
15645         (process_command): Handle -pass-exit-codes.
15646         (main): Look at pass_exit_codes and greatest_status on call to exit.
15647
15648 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15649
15650         * reload.c (find_reloads): Refine test for no input reload
15651         case to not includes reloads emitted after insn.
15652
15653         * function.c (find_temp_slots_from_address): Handle sum involving
15654         a register that points to a temp slot.
15655         (update_temp_slot_address): Make recursive call if both old and
15656         new are PLUS with a common operand.
15657         * calls.c (expand_call): Mark temp slot for result as having
15658         address taken.
15659
15660         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
15661
15662         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
15663         component as well as "BINUTILS".
15664
15665         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
15666         * integrate.c (copy_rtx_and_substitute): Likewise.
15667         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
15668         All callers changed.
15669         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
15670
15671         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
15672         gdb extensions, write size of type; also be more consistent
15673         in using references when this is a subtype.
15674
15675         * pa.md (extv, extzv, insv): Use define_expand to reject constant
15676         that is out of range.
15677
15678         * loop.c (unknown_constant_address_altered): New variable.
15679         (prescan_loop): Initialize it.
15680         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
15681         (invariant_p, case MEM): Remove handling for volatile and readonly;
15682         check new variable if readonly.
15683         (check_dbra_loop): Chdeck unknown_constant_address_altered.
15684
15685         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
15686         (addr_affects_sp_p): Removed from note_mem_written and only
15687         define #ifdef AUTO_INC_DEC.
15688
15689         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
15690
15691         * regclass.c (record_reg_classes): Properly handle register move
15692         directions.
15693
15694         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
15695         Don't think valid if both operands are invalid.
15696         (struct constant_descriptor): New field RTL.
15697         (mark_const_hash_entry): Mark it.
15698         (record_constant{,_rtx}): Initialize it.
15699         (output_constant_def): Allocate RTL in permanent obstack and
15700         save in table.
15701         ({record,compare}_constant_1): Modes must match for
15702         CONSTRUCTOR of ARRAY_TYPE.
15703
15704         * c-common.h (initializer_constant_valid_p): Delete decl from here.
15705         * output.h (initializer_constant_valid_p): Move decl to here.
15706         * c-common.c (initializer_constant_valid_p): Delete function from here.
15707         * varasm.c (initializer_constant_valid_p): Move function to here.
15708
15709         * tree.h (STRIP_SIGN_NOPS): New macro.
15710         * fold-const.c (optimize_minmax_comparison): New function.
15711         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
15712         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
15713         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
15714         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
15715         widening conversions.
15716         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
15717         to look at size of mode, not precision of type; also add missing cases.
15718         (optimize_bit_field_compare, decode_field_reference): Don't try to
15719         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
15720
15721         * dwarf2out.c (ctype.h): Include.
15722         (dwarf2out_set_demangle_name_func): New function.
15723         (size_of_line_info): Deleted.
15724         (output_line_info): Compute size of line info table from difference
15725         of labels.
15726         (base_type_die, add_name_attribute): Call demangle function, if any.
15727         (field_byte_offset): Use bits per word for variable length fields.
15728         (gen_array_type_die): Add array name.
15729         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
15730         (dwarf2out_add_library_unit_info): New function.
15731
15732         * explow.c (set_stack_check_libfunc): New function.
15733         (stack_check_libfunc): New static variable.
15734         (probe_stack_range): Allow front-end to set up a libfunc to call.
15735
15736         * combine.c (simplify_comparison): When making comparison in wider
15737         mode, check for having commuted an AND and a SUBREG.
15738         (contains_muldiv): New function.
15739         (try_combine): Call it when dividing a PARALLEL.
15740         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
15741         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
15742         a PLUS.
15743         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
15744         use one of the CLOBBERs instead.
15745         (if_then_else_cond): If comparing against zero, just return thing
15746         being compared.
15747
15748         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
15749         Don't generate shifts and subtract if have conditional arithmetic.
15750
15751         * rtl.h (delete_barrier): New declaration.
15752         * jump.c (jump_optimize): Set up to handle conditional call.
15753         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
15754         (delete_barrier): New function.
15755
15756         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
15757
15758         * recog.c (nonmemory_operand): Accept ADDRESSOF.
15759
15760         * tree.c (build_type_attribute_variant): Push to obstack of
15761         ttype around type_hash_canon call.
15762
15763         * expr.c (placeholder_list): Move decl to file scope.
15764         (expand_expr): Don't force access to volatile just because its
15765         address is taken.
15766         If ignoring reference operations, just expand the operands.
15767         (expand_expr, case COMPONENT_REF): Propagate
15768         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
15769         Refine test for using bitfield operations vs pointer punning.
15770         (expand_expr, case CONVERT_EXPR): If converting to
15771         BLKmode UNION_TYPE from BLKmode, just return inner object.
15772         Use proper mode in store_field call.
15773         Properly set sizes of object to store and total size in store_field
15774         call for convert to union.
15775         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
15776         memory (like for ADDR_EXPR).  Also, don't put constant in register if
15777         we'll want it in memory.
15778         (readonly_fields_p): New function.
15779         (expand_expr, case INDIRECT_REF): Call it if LHS.
15780         (expand_assignment): Handle a RESULT_DECL where
15781         DECL_RTL is a PARALLEL.
15782         (do_jump, case WITH_RECORD_EXPR): New case.
15783         (get_inner_reference): Always go inside a CONVERT_EXPR
15784         and NOP_EXPR if both modes are the same.
15785         (store_field): Use bitfield operations if size of bitsize is not same
15786         as size of RHS's type.
15787         Check for bitpos not a multiple of alignment in BLKmode case.
15788         Do block move in largest possible alignment.
15789         (store_constructor): Set BITSIZE to -1 for variable size and properly
15790         in case of array of BLKmode.
15791         (expand_expr_unaligned): New function.
15792         (do_compare_and_jump): Call it.
15793
15794         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
15795         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
15796         does not include 'o'.
15797
15798         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
15799         both SET_DEST and SET_SRC reference a virtual register.
15800         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
15801
15802         * integrate.c (expand_inline_function): Handle case of setting
15803         virtual stack vars register (from built in setjmp); when parameter
15804         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
15805         (subst_constant): Add new parm, MEMONLY.
15806         (expand_inline_function, integrate_parm_decls): Pass new parm.
15807         (integrate_decl_tree): Likewise.
15808         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
15809         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
15810         (copy_rtx_and_substitute, case SET): Add explicit calls to
15811         copy_rtx_and_substitute for both sides.
15812
15813         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
15814         constraints.
15815         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
15816         within INDEX_TYPE, instead of before.
15817         (fixup_gotos): Use f->target_rtl, not the next insn,
15818         since latter may be from a later fixup.
15819         (expand_value_return): Correctly convert VAL when promoting function
15820         return; support RETURN_REG being a PARALLEL.
15821         (expand_return): When checking for result in regs and having
15822         cleanup, consider PARALLEL in DECL_RTL as being in regs.
15823
15824 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
15825
15826         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
15827         last_nominal_fname): Mark const.
15828         (struct include_hash: name, nshort, control_macro): Mark
15829         const.
15830         (struct macrodef: symnam): Mark const.
15831         (struct if_stack: fname): Mark const.
15832         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
15833         (IStable): New character-syntax array which encompasses all
15834         the old is_foo arrays.
15835         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
15836         is_space): New macros for interrogating IStable.
15837         (check_macro_name): Kill last argument.  All callers changed.
15838
15839         * cppinit.c (initialize_char_syntax): Delete.
15840         (is_idchar, is_idstart, is_hor_space, is_space,
15841         trigraph_table): Delete.
15842         (IStable): New.  Initialize with clever macros to avoid
15843         information duplication.
15844         (builtin_array): Table of builtins to get rid of explicit list
15845         in initialize_builtins.
15846         (initialize_builtins): Use builtins_array.
15847         (cpp_start_read): Call init_IStable, and set IStable['$'] if
15848         opts->dollars_in_ident.
15849
15850         * cppexp.c: Change all refs to is_xyz[] arrays to use new
15851         is_xyz() macros.
15852         (cpp_parse_expr): Avoid 'format string is not constant'
15853         warning. Use ISGRAPH to identify printable chars.
15854         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
15855         is_xyz() macros.
15856         (read_and_prescan): Map trigraphs to chars with open-coded
15857         if-else-if-... sequence, not a lookup table.
15858         * cpphash.c: Change all refs to is_xyz[] arrays to use new
15859         is_xyz() macros.
15860         * cpplib.c: Change all refs to is_xyz[] arrays to use new
15861         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
15862         (check_macro_name): Remove ability to report an invalid
15863         assertion name, which is never used.
15864         (do_line): Constify a couple of char *'s.
15865         * cppmain.c (main): Call cpp_cleanup before returning.
15866
15867 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
15868
15869         * ggc.h (struct ggc_statistics): New type.
15870         (ggc_get_size): New function.
15871         (ggc_print_statistics): Likewise.
15872         * ggc-common.c (ggc_stats): New variable.
15873         (ggc_mark_rtx_children): Keep statistics.
15874         (ggc_mark_tree_children): Likewise.
15875         (ggc_print_statistics): New function.
15876         * ggc-page.c (struct globals): Add bytes_mapped field.
15877         (alloc_anon): Update it.
15878         (release_pages): Likewise.
15879         (ggc_get_size): New function.
15880         (ggc_page_print_statistics): New function.
15881         * ggc-simple.c (ggc_get_size): New function.
15882
15883 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
15884
15885         * flow.c (propagate_block): When the last reference to a label
15886         before an ADDR_VEC is deleted because the reference is a dead
15887         store, delete the ADDR_VEC.
15888
15889 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
15890
15891         * resource.c (find_free_register): Don't use the frame pointer
15892         if frame_pointer_needed.
15893
15894 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
15895
15896         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
15897         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
15898
15899         * config/i960/i960.c (i960_va_start): New locals base, num.
15900         Use INDIRECT_REF instead of ARRAY_REF on valist.
15901         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
15902
15903 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
15904
15905         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
15906
15907 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
15908
15909         * tree.def (PLACEHOLDER_EXPR): Update comments.
15910
15911 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15912
15913         * c-common.c (check_format_info): Avoid non-literal format string
15914         warnings when `first_arg_num' is zero.
15915
15916 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15917
15918         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
15919
15920 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
15921
15922         * arm.md (casesi_insn): Add a clobber of the condition code
15923         register.
15924
15925 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
15926
15927         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
15928         used by both cc1 and cc1plus.
15929
15930 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
15931
15932         * config/arm/arm.c: Initialise arm_structure_size_boundary to
15933         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
15934         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
15935         to the value 32 if it has not already been defined.
15936         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
15937         Override definition in arm.h with a value of 8.
15938
15939 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
15940
15941         * c-pragma.c (push_alignment): Don't check the return value
15942         of xmalloc.
15943
15944 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
15945
15946         * sparc.h (ADJUST_COST): Fix thinko.
15947
15948 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
15949
15950         * cccp.c (rescan): Fixed obp pointer handling around call to
15951         check_expand subroutine.
15952
15953 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
15954
15955         * gcse.c (delete_null_pointer_checks): Only record non-null info
15956         for pseudos when examining stores.
15957
15958         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
15959         splitters for these patterns.  Use "#" for output templates.
15960         (addsi3_carryin_shift): New pattern.
15961
15962 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
15963
15964         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
15965         of the function return register into a plain REG until
15966         after function inlining is done.
15967
15968 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
15969
15970         * jump.c (jump_optimize_1): If we did cross-jumping, and
15971         the data will matter, rebuild the CFG.
15972         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
15973         not optimizing.  Don't run shorten_branches.
15974         * toplev.c (rest_of_compilation): Run shorten_branches after
15975         reg_to_stack.
15976
15977 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
15978
15979         * rtl.h (note_stores): Add additional paramter.
15980         * rtlanal.c (reg_set_p_1): Take additional paramter.
15981         (reg_set_last_1): Likewise.
15982         (reg_set_p): Adjust call to note_stores.
15983         (reg_set_last): Likewise.
15984         (note_stores): Pass data parameter to worker function.
15985         * alias.c (record_set): Take additional parameter.
15986         (init_alias_analysis): Pass it.
15987         * caller-save.c (mark_set_regs): Take additional parameter.
15988         (save_call_clobbered_regs): Pass NULL to note_stores.
15989         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
15990         parameter.
15991         (record_dead_and_set_regs_1): Likewise.
15992         (reg_dead_at_p_1): Likewise.
15993         (combine_instructions): Adjust calls to note_stores.
15994         (try_combine): Likewise.
15995         (record_dead_insn): Remove.
15996         (record_dead_and_set_regs): Adjust calls to note_stores.
15997         (reg_dead_at_p): Likewise.
15998         * cse.c (invalidate_skipped_set): Take additional parameter.
15999         (cse_check_loop_start): Likewise.
16000         (cse_check_loop_start_value): Remove.
16001         (cse_set_around_loop): Adjust calls to note_stores.
16002         * flow.c (notice_stack_pointer_modification): Take additional
16003         parameter.  Remove duplicate declaration.
16004         (record_volatile_insns): Adjust calls to note_stores.
16005         * gcse.c (record_set_info): Take additional parameter.
16006         (record_last_set_info): Likewise.
16007         (invalidate_nonnull_info): Likewise.
16008         (record_set_insn): Remove.
16009         (compute_sets): Adjust calls to note_stores.
16010         (last_set_insn): Remove.
16011         (compute_hash_table): Adjust calls to note_stores.
16012         (insert_insn_end_bb): Likewise.
16013         (delete_null_pointer_checks): Likewise.
16014         * global.c (mark_reg_store): Take additional parameter.
16015         (mark_reg_clobber): Likewise.
16016         (reg_becomes_live): Likewise.
16017         (global_conflicts): Adjust calls to note_stores.
16018         (build_insn_chain): Likewise.
16019         * integrate.c (note_modified_parmregs): Take additional parameter.
16020         (mark_stores): Likewise.  Make it static.
16021         (save_for_inline_nocopy): Adjust calls to note_stores.
16022         (try_constants): Likewise.
16023         * integrate.h (mark_stores): Remove declaration.
16024         * jump.c (mark_modified_reg): Take additional parameter.
16025         (thread_jumps): Adjust calls to note_stores.
16026         * local-alloc.c (validate_equiv_mem_from_store): Take additional
16027         parameter.
16028         (no_equiv): Likewise.
16029         (reg_is_set): Likewise.
16030         (validate_equiv_mem): Adjust calls to note_stores.
16031         (update_equiv_regs): Likewise.
16032         (block_alloc): Likewise.
16033         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
16034         (note_addr_stored): Take additional parameter.
16035         (note_set_pseudo_multiple_uses): Likewise.
16036         (record_initial): Likewise.
16037         (prescan_loop): Adjust calls to note_stores.
16038         (strength_reduce): Likewise.
16039         (check_dbra_loop): Likewise.
16040         * regmove.c (flags_set_1): Take additional paramter.
16041         (mark_flags_life_zones): Adjust calls to note_stores.
16042         * reload1.c (mark_not_eliminable): Take additional parameter.
16043         (forget_old_reloads_1): Likewise.
16044         (reload_cse_invalidate_rtx): Likewise.
16045         (reload_cse_check_clobber): Likewise.
16046         (reload_combine_note_store): Likewise.
16047         (move2add_note_store): Likewise.
16048         (reload): Adjust calls to note_stores.
16049         (reload_as_needed): Likewise.
16050         (emit_reload_insns): Likewise.
16051         (reload_cse_regs_1): Likewise.
16052         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
16053         (reload_combine): Adjust calls to note_stores.
16054         * resource.c (update_live_status): Take additional paramter.
16055         (mark_target_live_regs): Adjust calls to note_stores.
16056         * stupid.c (find_clobbered_regs): Take additional parameter.
16057         (stupid_life_analysis): Adjust calls to note_stores.
16058
16059 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
16060
16061         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
16062         definition.
16063
16064         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
16065         definition.
16066
16067         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
16068         of the variable arm_structure_size_boundary.
16069
16070 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
16071
16072         * alias.c (init_alias_analysis): Allocate reg_known_value and
16073         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
16074         and reg_seen.
16075         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
16076         * cse.c (cse_main): Call end_alias_analysis.
16077         * haifa-sched.c (schedule_insns): Likewise.
16078         * local-alloc. (update_equiv_regs): Likewise.
16079         * reload1.c (reload_cse_regs): Likewise.
16080
16081 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16082
16083         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
16084         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
16085         mapping from MASK_FPU.
16086
16087 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
16088
16089         * sparc.md (call): Don't bound structure return size to 0xfff.
16090
16091 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
16092
16093         * resource.c (mark_target_live_regs): Check that the target
16094         insn wasn't created after compute_bb_for_insn.
16095
16096 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
16097
16098         * ggc-page.c (poison_pages): Don't be overzealous.
16099
16100 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
16101
16102         * alias.c: Update comments for ADDRESS.
16103         (nonlocal_reference_p): Look inside the ADDRESS to determine if
16104         it is a local memory reference.
16105
16106         * c-typeck.c (build_function_call): Check that the built-in
16107         function is of class BUILT_IN_NORMAL before trying to recongize
16108         it as BUILT_IN_ABS.
16109         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
16110         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
16111
16112 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
16113
16114         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
16115         of alloca.
16116         (pre_gcse): Likewise.
16117         (hoist_expr_reaches_here_p): Likewise.
16118         (hoist_code): Likewise.
16119         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
16120         code to ...
16121         (pre_expr_reaches_here_p_work): ... here.
16122         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
16123         code to ...
16124         (expr_reaches_here_p_work): ... here.
16125
16126 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
16127
16128         * resource.c (find_basic_block): Delete.
16129         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
16130         (init_resource_info): Call compute_bb_for_insn.
16131
16132 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
16133
16134         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
16135         with already adjacent blocks, but no fallthru.
16136         (merge_blocks_move_successor_nojumps): Simplify.
16137         (debug_flow_info): New.
16138
16139         * toplev.c (rest_of_compilation): Open jump1 dump file before
16140         jump and close after, as opposed to just using dump_rtl.
16141
16142 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16143
16144         * reload.h (earlyclobber_operand_p): Declare.
16145         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
16146         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
16147         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
16148         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
16149
16150 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
16151                           Richard Henderson  <rth@cygnus.com>
16152
16153         * emit-rtl.c (emit_block_insn_before): New.
16154         (emit_block_insn_after): New.
16155         * basic-block.h: Declare them.
16156
16157         * bitmap.h: Protect from multiple inclusion.
16158
16159         * recog.c (scratch_operand): Handle VOIDmode correctly.
16160
16161         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
16162
16163         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
16164         * function.c (assign_parms): Likewise.
16165         * global.c (global_conflicts): Clarify STACK_REGS commentary.
16166
16167         * reg-stack.c (max_uid): Remove.
16168         (blocks, block_begin, block_end, block_drops_in): Remove.
16169         (block_stack_in, block_out_reg_set, block_number): Remove.
16170         (struct block_info_def, BLOCK_INFO): New.
16171         (enum emit_where): New.
16172         (current_block): New.
16173         (BLOCK_NUM): Remove.
16174         (mark_regs_pat, record_label_references): Remove.
16175         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
16176         (nan): New.
16177         (goto_block_pat, print_blocks, dump_stack_info): Remove.
16178         (reg_to_stack): Simplified test for existance of fp code.  Use
16179         flow.c code.  Call shorten_branches after cross-jump opt.
16180         (check_asm_stack_operands): Renamed from record_asm_reg_life.
16181         Return false if the asm doesn't use stack regs.  Don't do life
16182         analysis on the asm.
16183         (emit_pop_insn): Replace function pointer arg `when' with
16184         enum `where'.  Update all callers.
16185         (change_stack): Likewise.  Update basic block end.
16186         (emit_swap_insn): Use current_block->head to limit reverse search
16187         for start of block.  Use emit_block_insn_after.
16188         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
16189         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
16190         structure assignment instead of bcopy.
16191         (print_stack): New.
16192         (convert_regs_entry, convert_regs_exit): New.
16193         (convert_regs_1, convert_regs_2): Split out from convert_regs.
16194         Work on basic blocks and the CFG.
16195         (convert_regs): Use them.
16196
16197         * i386.c (output_fix_trunc): Remove code for DImode input operand
16198         not at top-of-stack.
16199         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
16200         appropriate mode.
16201         (fix_truncdi_1): Allow any mode scratch.
16202
16203 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
16204
16205         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
16206         * linux.h, netbsd.h, vms.h: Not here.
16207
16208 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
16209
16210         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
16211         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
16212         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
16213         CONDITIONAL_REGISTER_USEAGE): Use them.
16214         * config/mips/mips.c (mips_move_1word,mips_move_2words,
16215         gen_conditional_branch,override_options) : Use them.
16216         * config/mips/mips.md : Use them.
16217
16218 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
16219
16220         * i386.md (zero_extendqihi2): Use SImode register name with andl.
16221
16222 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
16223
16224         * integrate.c (function_cannot_inline_p): Don't allow inlining
16225         if setjmp is used.
16226
16227 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16228
16229         * c-parse.in (cast_expr): Constify.
16230
16231         * cccp.c (special_symbol): Likewise.
16232
16233         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
16234
16235         * dwarf2out.c (base_type_die): Likewise.
16236
16237         * global.c (allocno_compare): Likewise.
16238
16239         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
16240
16241         * regclass.c (fix_register): Likewise.
16242
16243         * rtl.h (fix_register): Likewise.
16244
16245         * stupid.c (stupid_reg_compare): Likewise.
16246
16247         * toplev.c (decode_f_option): Likewise.
16248
16249         * tree.c (build_complex_type): Likewise.
16250
16251 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
16252
16253         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
16254
16255 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16256
16257         * reload.c (find_reloads): Compute mode and nregs fields of all
16258         reloads.
16259         * reload1.c (calculate_needs_all_insns): Simplify a bit.
16260         (calculate_needs): Use precomputed mode/nregs values.
16261         (allocate_reload_reg): Likewise.
16262         Break out two...
16263         (failed_reload, set_reload_reg): ... new functions.
16264         (choose_reload_regs_init): New function, mostly broken out from...
16265         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
16266         Also lose one #if 0 block.
16267
16268 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
16269
16270         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
16271         substitution.
16272
16273 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
16274
16275         * tree.h (BLOCK_TYPE_TAGS): Remove.
16276         (BLOCK_END_NOTE): Likewise.
16277         (BLOCK_LIVE_RANGE_FLAG): Likewise.
16278         (BLOCK_LIVE_RANGE_START): Likewise.
16279         (BLOCK_LIVE_RANGE_END): Likewise.
16280         (tree_block): Remove live_range_flag, live_range_var_flag, and
16281         type_tags.  Remove end_note, live_range_start, and live_range_end.
16282         (remember_end_note): Remove prototype.
16283         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
16284         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
16285         remember_end_note.
16286         * ggc-common.c (ggc_mark_tree_children): Don't mark
16287         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
16288         * integrate.c (adjust_copied_decl_tree): Remove.
16289         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
16290         * stmt.c (last_block_end_note): Remove.
16291         (init_stmt): Don't add a GC root for it.
16292         (expand_fixup): Don't set it.
16293         (remember_end_note): Remove.
16294         (expand_end_bindings): Don't set last_block_end_note.
16295
16296 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16297
16298         * reload1.c (reload_reg_free_for_value_p): Show
16299         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
16300         reloads.
16301
16302 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
16303
16304         * expmed.c (extract_bit_field): Allow for the case of non-integer
16305         objects that are smaller than a word (like SFmode on a 64-bit
16306         machine).
16307
16308         * loop.c (basic_induction_var): A non-integer variable which is
16309         being set by a paradoxical subreg is probably not a biv.
16310
16311 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16312
16313         * prefix.c (translate_name) Check for empty prefix string.
16314
16315 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
16316
16317         * Makefile.in (CPP_CROSS_NAME): New variable.
16318         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
16319         xcpp.
16320         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
16321         names of the files to be uninstalled.
16322
16323 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
16324
16325         * collect2.c (IS_DIR_SEPARATOR): Define.
16326         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
16327
16328         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
16329         functions too.
16330
16331         * haifa-sched.c (add_dependence): Update the true dependency
16332         cache the first time we add a true dependence to the LOG_LINKS chain.
16333
16334 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
16335
16336         * fold-const.c (fold): Fix comment.
16337
16338 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16339
16340         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
16341         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
16342         dbxout_start_new_source_file, dbxout_source_file,
16343         dbxout_source_line, dbxout_finish, dbxout_type_fields,
16344         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
16345         Constify a char*.
16346         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
16347         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
16348         (dbxout_block): Initialize variable `blocknum'.
16349
16350         * dbxout.h (dbxout_init, dbxout_finish,
16351         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
16352         dbxout_args, dbxout_source_line): Constify a char*.
16353
16354         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
16355         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
16356         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
16357         low_pc_attribute, high_pc_attribute, body_begin_attribute,
16358         body_end_attribute, comp_dir_attribute, sf_names_attribute,
16359         src_info_attribute, mac_info_attribute, producer_attribute,
16360         lookup_filename, generate_macinfo_entry, fundamental_type_code,
16361         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
16362         dwarfout_undef): Constify a char*.
16363         (add_incomplete_type, retry_incomplete_types): Add prototypes.
16364
16365         * dwarfout.h (dwarfout_define, dwarfout_undef,
16366         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
16367
16368 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
16369
16370         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
16371         (MULTILIB_ISA_DEFAULT): New.
16372         (MULTILIB_DEFAULTS): Use it.
16373         * config/mips/mips.c (): Remove the now unnecessary definition
16374         of MIPS_ISA_DEFAULT.
16375         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
16376         unnecessary definition.
16377
16378 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
16379
16380         * arm.md (pic_load_addr): Add constraints to operand 1.
16381
16382 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
16383
16384         * fixinc/genfixes:  Provide a means for specifying -D options to
16385         AutoGen
16386
16387 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
16388
16389         * arm.c (arm_override_options): Correct initialization of
16390         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
16391         arm_is_strong, and arm_is_6_or_7.
16392
16393         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
16394         (note_set_pseudo_multiple_uses): New function.
16395         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
16396         if a pseudo set in the loop exit is used elsewhere.
16397
16398 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
16399
16400         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
16401
16402 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
16403
16404         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
16405         a single load-address pattern.
16406
16407 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
16408
16409         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
16410         depending on whether or not line-number notes are present.
16411
16412 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16413
16414         * cccp.c (progname, file_buf, default_include, include_file,
16415         macrodef, definition, hashval, wchar_type, user_label_prefix,
16416         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
16417         expand_to_temp_buffer, is_system_include, base_name,
16418         absolute_filename, read_name_map, open_include_file,
16419         record_control_macro, check_precompiled, check_preconditions,
16420         pcfinclude, pass_thru_directive, create_definition,
16421         check_macro_name, comp_def_part, collect_expansion,
16422         check_assertion, read_token_list, assertion_install,
16423         assertion_lookup, eval_if_expression, conditional_skip,
16424         validate_else, skip_quoted_string, quote_string, macarg1,
16425         error_from_errno, install, lookup, hashf, dump_defn_1,
16426         perror_with_name, pfatal_with_name, main, trigraph_pcp,
16427         check_white_space, rescan, handle_directive, monthnames,
16428         special_symbol, do_include, remap_include_file, write_output,
16429         arglist, do_assert, do_unassert, do_line, do_error, do_once,
16430         do_ident, do_sccs, do_xifdef, skip_if_group,
16431         output_line_directive, macroexpand, macarg, change_newlines,
16432         initialize_builtins, make_definition): Constify a char*.
16433
16434         * pcp.h (stringdef): Likewise.
16435
16436 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
16437
16438         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
16439         not of pattern.
16440
16441 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
16442                           Richard Henderson  <rth@cygnus.com>
16443
16444         * alias.c: Include ggc.h.
16445         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
16446         (record_set): Verify enough room in reg_base_value.
16447         (init_alias_analysis): Allocate reg_base_value with xcalloc.
16448         Register it as a GC root.
16449         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
16450         * Makefile.in (alias.o): Depend on ggc.h.
16451
16452         * unroll.c (unroll_loop): Verify the insn before a barrier
16453         is a JUMP_INSN before checking JUMP_LABEL.
16454
16455 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16456
16457         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
16458         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
16459         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
16460         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
16461         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
16462         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
16463
16464 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16465
16466         * output.h (ctors_section, dtors_section, bss_section): Prototype.
16467
16468         * alpha/alpha-interix.h (text_section): Delete prototype.
16469         * alpha/elf.h (text_section): Likewise.
16470         * arm/linux-elf.h (text_section): Likewise.
16471         * arm/linux-telf.h (text_section): Likewise.
16472         * c4x/c4x.h (text_section): Likewise.
16473         * dsp16xx/dsp16xx.h (bss_section): Likewise.
16474         * elfos.h (text_section): Likewise.
16475         * i386/aix386ng.h (text_section): Likewise.
16476         * i386/i386-interix.h (text_section): Likewise.
16477         * i386/sco5.h (text_section): Likewise.
16478         * i386/svr3gas.h (text_section): Likewise.
16479         * nextstep.h (text_section): Likewise.
16480         * psos.h (text_section): Likewise.
16481         * ptx4.h (text_section): Likewise.
16482         * svr3.h (text_section): Likewise.
16483         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
16484
16485 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16486
16487         * final.c (peephole): Delete prototype.
16488
16489         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
16490         (pre_insert_copies): Remove unused variable `bb'.
16491
16492         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
16493         prototypes.
16494
16495         * output.h (peephole): Add prototype.
16496
16497 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
16498
16499         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
16500         -O0.
16501
16502 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
16503
16504         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
16505         for inlined declarations.
16506
16507 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
16508
16509         * arm.c (logical_binary_operator): New fucntion.
16510         * arm.h (logical_binary_operator): Declare it.
16511         (PREDICATE_CODES): Handle logical_binary_operator.
16512         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
16513         output constraints.  Add appropriate splitters.
16514         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
16515         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
16516         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
16517
16518 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16519
16520         * genoutput.c (struct operand_data): New elt eliminable.
16521         (output_operand_data): Write it.
16522         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
16523         (compare_operands): Take it into account.
16524         * recog.h (struct insn_operand_data): New elt eliminable.
16525         * reload1.c (check_eliminable_occurrences, elimination_effects): New
16526         functions.
16527         (old_asm_operands_vec, new_asm_operands_vec): Delete.
16528         (eliminate_regs): Move code that detects changes to elimination
16529         target regs into new function elimination_effects.
16530         Delete one #if 0 block.
16531         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
16532         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
16533         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
16534         Only call eliminate_regs for real operands of the insn, not for parts
16535         of its structure or parts matched by things like match_operator.
16536         Use elimination_effects and check_eliminable_occurrences.  Use
16537         copy_insn to duplicate the pattern when not in the final pass.
16538
16539 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
16540
16541         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
16542         and fld.
16543
16544 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
16545
16546         * fixinc/README: document the "mach" machine matching test
16547         * fixinc/fixfixes.c: Implement the #else/#endif label fix
16548         * fixinc/fixtests.c: Implement the #else/#endif label test
16549         * fixinc/inclhack.def: utilize these tests and fixes
16550         * fixinc/inclhack.sh:  regen
16551         * fixinc/fixincl.x:  regen
16552         * fixinc/fixincl.sh:  regen
16553
16554 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
16555
16556         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
16557         depend on ggc.h.
16558
16559 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
16560
16561         * gcc.1: Document exit codes.
16562
16563 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16564
16565         * calls.c: Include tm_p.h later, so everything we need is defined.
16566         * expr.c: Likewise.
16567         * function.c: Likewise.
16568
16569         * except.c: Include tm_p.h.
16570
16571         * sparc.c: Likewise.
16572         (dwarf2out_cfi_label): Don't prototype.
16573         (check_return_regs, epilogue_renumber,
16574         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
16575         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
16576         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
16577         ultra_schedule_insn): Add static prototype.
16578         (data_segment_operand, text_segment_operand): Call itself with the
16579         proper number of arguments.
16580         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
16581
16582         * sparc.h: Move all declarations to sparc-protos.h.
16583         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
16584         symbolic_operand.
16585
16586         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
16587
16588         * config/svr4.h (text_section, ctors_section, dtors_section): Add
16589         Prototypes.
16590         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
16591         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
16592         ASM_OUTPUT_ASCII): Constify a char*.
16593
16594         * sparc-protos.h: New file for sparc prototypes.
16595
16596 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16597
16598         * function.c (record_insns, contains): Always declare and define.
16599         (record_insns): Mark with ATTRIBUTE_UNUSED.
16600
16601 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
16602
16603         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
16604         to .section when outputting a .bss section to deal with multiple
16605         .bss input sections (as happens with -fdata-sections)
16606         Also output %progbits, not @progbits so the assembler doesn't treat as
16607         a comment.
16608         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
16609
16610         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
16611         thumb parts even when building with non-thumb CPUs, by forcing
16612         thumb mode.
16613
16614 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
16615
16616         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
16617         (movdf_const_intreg_sp64): Similarly.
16618
16619         * local-alloc.c (update_equiv_regs): Check the correct insn
16620         for pre-existing REG_EQUIV notes.
16621
16622 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
16623
16624         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
16625         block reached by a branch if we're not going to actually process
16626         this block.
16627
16628 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
16629
16630         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
16631         a local extern function declaration.
16632
16633 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
16634
16635         * i386.c (ix86_expand_prologue): Properly wrap USE around
16636         reg for CALL_INSN_FUNCTION_USAGE.
16637
16638 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
16639
16640         * config/mips/mips.md (movdf_internal1a): Allow floating-point
16641         move between GP_REGs.
16642
16643 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
16644
16645         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
16646         the mode size when finding out if an offset is legal.
16647
16648 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
16649
16650         * basic-block.h (PROP_*): Move constants from ...
16651         * flow.c: ... here.
16652         (compute_bb_for_insn): Free the array before reallocating.
16653         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
16654         (allocate_reg_life_data): Reset all reg variables collected by
16655         propagate_block.
16656         (get_block_head_tail): Don't convert from bb to block.
16657         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
16658         (find_insn_reg_weight): Take block not bb.
16659         (schedule_block): Don't set block num for moved insns.
16660         (schedule_region): Don't update_life_info or find_insn_reg_weight.
16661         (schedule_insns): Do it here instead.
16662         * combine.c (combine_instructions): Invoke compute_bb_for_insn
16663         before update_life_info.
16664         * recog.c (split_all_insns, peephole2_optimize): Update for
16665         new arg to update_life_info.
16666         * rtlanal.c (remove_note): Cope with NULL note.
16667         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
16668         if we did sched1.
16669
16670 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
16671
16672         * jump.c (jump_optimize_1): More accurately detect casesi insns.
16673
16674         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
16675         block records so that merge_blocks_nomove will clean up correctly.
16676         (split_edge): Handle casesi insns.
16677
16678         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
16679
16680 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
16681
16682         * pa.md (call, call_value): Do not emit a blockage after restoring
16683         the PIC register.
16684
16685 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
16686
16687         * c-typeck.c (c_expand_asm_operands): Fix typo.
16688
16689 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16690
16691         * arm.c (fpu_rhs_operand): Verify modes.
16692         (fpu_add_operand): Likewise.
16693         (di_operand): Likewise.
16694         (soft_df_operand): Likewise.
16695
16696 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
16697
16698         * arm.c (arm_return_in_memory): APCS rules state that the elements
16699         of a structure returned in a register must be 'integer-like'.
16700
16701 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
16702
16703         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
16704         in the source tree when the generated targets are out of date
16705         * fixinc/genfixes: Alter it to run individual fixes for make.
16706         * fixinc/README: rewrite
16707         * fixinc/inclhack.def: moved initial comments to README
16708
16709 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
16710
16711         * toplev.c (main): Do not generate an error message if an
16712         unrecognised command line switch is recognisable by another
16713         language.  If extra_warnings are enabled, then generate a
16714         warning message instead.
16715
16716 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
16717
16718         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
16719         (insert_pack_attributes): Delete prototype.
16720
16721         * c-pragma.c (default_alignment): New static variable.
16722         (push_alignment): Initialize to current effective alignment.
16723         (pop_alignment): Use to set new alignment.
16724         (insert_pack_attributes): Delete function.
16725         (handle_pragma_token): Set default_alignment as well each time
16726         a #pragma pack(<n>) is encountered.
16727
16728 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
16729
16730         * reg-stack.c (stack_result): Aggregates are not returned in
16731         stack registers.
16732
16733 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
16734
16735         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
16736
16737 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
16738
16739         * basic-block.h (set_block_num): Declare.
16740         * flow.c (update_life_info): Don't call compute_bb_for_insn
16741         or free_basic_block_vars.
16742         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
16743         (insn_orig_block): Remove.
16744         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
16745         (schedule_block): Keep BLOCK_NUM up-to-date.
16746         (schedule_insns): Use compute_bb_for_insn.
16747         * recog.c (split_all_insns): Likewise.
16748         (peephole2_optimize): Likewise.
16749
16750 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
16751
16752         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
16753         if the pic register is used.
16754
16755 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16756
16757         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
16758         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
16759         if that tests TREE_PERMANENT.
16760
16761 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
16762
16763         * cse.c (invalidate_for_call): Do not remove memory references from
16764         the table here.  It's handled elsewhere.
16765
16766         * haifa-sched.c (add_dependence): Protect references to the
16767         true dependency cache with #ifdef INSN_SCHEDULING.
16768         (remove_dependence): Similarly.
16769
16770         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
16771         to the cfg code that this is a return instruction.
16772         * mn10300.md (return_internal): Similarly.
16773
16774         * combine.c (get_last_value): If the last set of a register
16775         is after subst_low_cuid, then we can not use it to determine
16776         the register's last value.
16777
16778 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
16779
16780         * Makefile.in: Back out previous change.
16781
16782 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
16783
16784         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
16785
16786         * haifa-sched.c (add_dependence): Only check/update the cache
16787         if it exists.
16788         (remove_dependence): Likewise.
16789         (schedule_insns): Only create the true_dependency_cache if the
16790         average number of instructions in a basic block is very large.
16791
16792 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
16793
16794         * Makefile.in (ggc-common.o): Depend on genrtl.h.
16795         (ggc-simple.o): Likewise.
16796         (ggc-page.o): Likewise.
16797
16798 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
16799
16800         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
16801         Prototype for exported functions.
16802         (pre_lcm, pre_rev_lcm): Remove prototypes.
16803         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
16804         (compute_available): Move to lcm.c, and change parameter order.
16805         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
16806         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
16807         (gcse_main): No longer call compute_preds_succs.  Rebuild the
16808         set table after reach pre pass.
16809         (pre_insert_map, pre_delete_map, edge_list): New.
16810         (alloc_pre_mem): Allocate edge vectors.
16811         (free_pre_mem): Delete edge vectors.
16812         (compute_pre_data): Call new edge based lcm routines.
16813         (process_insert_insn): New function.
16814         (insert_insn_end_bb): Use it.
16815         (pre_edge_insert): New function.
16816         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
16817         needed.
16818         (pre_insert_copies): Revamp using new edge based lcm outputs.
16819         (pre_delete): Likewise.
16820         (one_pre_gcse_pass): Insert & remove fake edges to the exit
16821         block.
16822         (compute_code_hoist_vbeinout): New new edge based routines.
16823         * lcm.c: Remove all the old LCM functions.  Replace with new ones
16824         that work with the new cfg datastructures and work with edges
16825         instead of blocks.
16826
16827 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16828
16829         * reload.h (struct reload): Add new fields "mode" and "nregs".
16830         * reload1.c: Change all occurrences of reload_mode and reload_nregs
16831         to reference the "mode" and "nregs" field within struct reload.
16832
16833 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
16834
16835         * haifa-sched.c (true_dependency_cache): New.
16836         (add_dependence): Use the true dependency cache to avoid expensive
16837         walks down the LOG_LINKS dependency list.  Add entries to the
16838         cache as necessary.
16839         (remove_dependence): Remove entries from the true dependency cache
16840         as needed.
16841         (schedule_insns): Allocate and initialize and free the true
16842         dependency cache.
16843
16844         * haifa-sched.c (schedule_insns): Do not remove inter-block
16845         dependencies anymore.
16846
16847 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
16848
16849         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
16850         * i386/t-winnt: Likewise.
16851
16852 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
16853
16854         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
16855
16856 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
16857
16858         * Makefile.in (LANGUAGES): Omit "proto".
16859         (clean): Remove stale comment about removing unprotoize.c.
16860
16861 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16862
16863         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
16864         using arithmetic on void pointers.
16865
16866 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
16867
16868         * haifa-sched.c (compute_block_forward_dependencies): Only check
16869         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
16870
16871 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
16872
16873         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
16874         (expr_equiv_p): Reject memories with different alias sets.
16875
16876 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
16877
16878         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
16879         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
16880         (f_options): Add "bounded-pointers" and "bounds-check" entries.
16881         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
16882         (lang_init): Set default for flag_bounds_check if still "unspecified".
16883
16884 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16885
16886         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
16887
16888 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16889
16890         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
16891         instructions.
16892
16893 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16894
16895         * config/c4x/c4x.md (*db_noclobber,
16896         *decrement_and_branch_until_zero_noclobber): New patterns and
16897         associated splitters.
16898
16899 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16900
16901         * config/c4x/c4x.md (parallel instruction patterns): Rework
16902         constraints to keep reload happy.
16903
16904 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16905
16906         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
16907         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
16908         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
16909         Add new patterns and associated post-reload splitters.
16910
16911 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16912
16913         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
16914
16915 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16916
16917         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
16918         if appropriate.
16919         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
16920
16921 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16922
16923         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
16924         memory mode.
16925
16926 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
16927
16928         * pa.c (move_operand): Rely on memory_address_p to determine the
16929         validity of non-indexed memory addresses.
16930         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
16931         operand in DFmode and SFmode when generating PA2.0 code.
16932
16933 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
16934
16935         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
16936
16937 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
16938
16939         * mips.c (function_prologue): Fix argument types.
16940         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
16941         (casesi_internal): Write to the scratch register.
16942
16943 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
16944
16945         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
16946         to U_CHAR **.
16947         (parse_charconst): Delete unnecessary cast when calling
16948         cpp_parse_escape.
16949         (cpplib.h): Kill prototype of cpp_parse_escape.
16950
16951 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
16952
16953         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
16954         * unroll.c (unroll_loop): Cast return value of alloca.
16955         * i370/i370.c: Include function.h and toplev.h.
16956         (i370_label_scan): Remove c++ commented abort.
16957         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
16958         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
16959         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
16960         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
16961
16962 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
16963
16964         * config/t-freebsd: Do not override USER_H.
16965         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
16966
16967 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
16968                           Mumit Khan  <khan@xraylith.wisc.edu>
16969
16970         * c-parse.in (component_decl): Support anonymous struct/union.
16971         (%expect): Update.
16972         * c-parse.y: Regenerate.
16973         * c-parse.c: Likewise.
16974         * objc/objc-parse.y: Likewise.
16975         * objc/objc-parse.c: Likewise.
16976         * c-decl.c (finish_struct): Don't sort the fields.
16977         (field_decl_cmp): Delete unused function.
16978
16979 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
16980
16981         * sparc.md (movsf_const_intreg): Revert last constraint change.
16982         (movdf_const_intreg_sp32): Likewise.
16983
16984 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
16985
16986         * cse.c: Include hashtab.h instead of splay-tree.h
16987         (struct cse_reg_info): No longer use variant union.  Add new
16988         field "regno".  All references changed to avoid union.
16989         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
16990         (free_cse_reg_info): Remove.
16991         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
16992         (get_cse_reg_info): Revamp to use expandable hash tables instead
16993         of splay trees.  Initialize new fields in cse_reg_info structure.
16994         (new_basic_block): Similarly.
16995
16996 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
16997
16998         * genrecog.c (message_with_line): Prototype.
16999         (validate_pattern): Pass along the set for the dest, not a flag.
17000         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
17001         Check for PC/CC0 as sources.
17002         (nodes_identical): Check for children position match before
17003         allowing the combination.
17004
17005         * rtl.c (read_rtx): Track line number across \\\n.
17006
17007 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
17008
17009         * mips.h (SPECIAL_MODE_PREDICATES): New.
17010         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
17011         (movdi+1, movsi+1): Add output reload constraint.
17012         (casesi_internal): Likewise.  Fix commentary.
17013         (return_internal): Use pmode_register_operand.
17014
17015 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
17016
17017         * 1750a.md (movstrqi): Add missing output reload constraint.
17018         (call_value): Likewise.
17019         * a29k.md (cpxxx patterns): Add missing match_operator mode.
17020         (jmpfdec): Add missing inout reload constraint.
17021         * elxsi.md (addsi patterns): Add missing output reload constraint.
17022         (move from sp): Use @ alternates.
17023         (call_value): No constraint on output.
17024         * fr30.md (movsi_pop): Add missing output reload constraint.
17025         (movsf_constant_store): Likewise.
17026         (splits): Remove constraints.
17027         (subsi3): Add missing mode.
17028         * i370.md (cmpstrsi+1): Add missing output reload constraint.
17029         (call_value): Likewise.
17030         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
17031         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
17032         * m32r.md (movsicc_internal): Add output reload constraint.
17033         (movstrsi_internal): Add inout reload constraints.
17034         * m88k.h (reg_names): Don't declare.
17035         (SPECIAL_MODE_PREDICATES): New.
17036         * m88k.md (*): Use register_operand not reg_or_0_operand
17037         on destinations.
17038         * mn10200.h (PREDICATE_CODES): New.
17039         * ns32k.md (ffs pattern): Add output reload constraint.
17040         * pdp11.md (sob pattern): Add inout reload constraint.
17041         * sh.md (splits): Remove constraints.
17042         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
17043         * v850.md (pattern_is_ok_for_epilogue): Likewise.
17044         * vax.md (jgequ pattern): Add inout reload constraint.
17045
17046 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
17047
17048         * configure.in (djgpp): Revert previous patch.
17049         * configure: Rebuit.
17050         * config/i386/djgpp.h: Revert previous patch.
17051
17052 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
17053
17054         * fixinc/inclhack.def: Restore patch lost during last merge of
17055         "no_bogosity" branch.
17056         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
17057
17058 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
17059
17060         * fixincludes: Add a HPUX 11 fix for inttypes.h.
17061         * fixinc/inclhack.def: Same.
17062         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
17063
17064 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
17065
17066         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
17067         as the base of a PLUS.
17068
17069 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17070
17071         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
17072         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
17073
17074 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
17075
17076         * pa.md (post_stw+1): Use pmode_register_operand.
17077         (dcacheflush, icacheflush): Likewise.
17078
17079         * i386.md (movstricthi_1): Allow r/r.
17080
17081 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
17082
17083         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
17084         to (not (and (arg0) (arg1))). Similary for and.
17085
17086         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
17087         fallthrough to associate code.
17088         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
17089         bits in common.
17090
17091         * combine.c (simplify_logical): Convert XOR to IOR if operands have
17092         no bits in common; remove XOR to ROTATE conversion.
17093
17094 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17095
17096         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
17097
17098 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17099
17100         * config/c4x/c4x.c (dst_operand): New.
17101         (PREDICATE_CODES): Update.
17102         * config/c4x/c4x.h (dst_operand): Declare it.
17103         * config/c4x/c4x.md:  Define mode for each unspec usage.
17104         (move patterns):  Use dst_operand predicate instead of src_operand.
17105         (movqi_update, movqf_update): Delete.
17106
17107 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
17108
17109         * recog.c (pmode_register_operand): New.
17110         * recog.h: Declare it.
17111         * genrecog.c (pred_codes): Likewise.
17112         (special_mode_pred_table): Likewise.
17113         (validate_pattern): Don't warn no mode for address_operand.
17114
17115         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
17116         if the operand is not insn-like.
17117
17118 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
17119                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
17120
17121         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
17122
17123 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
17124
17125         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
17126         instead of general_operand in a SET_DEST.  Use const_double_operand
17127         instead of an explicit test against CONST_DOUBLE.
17128         (movsf_const_lo): Add missing register mode.
17129         (goto_handler_and_restore): Add auxiliary test for Pmode.
17130         (flush): Adjust to use address_operand.
17131         (return_sf_no_fpu): Add missing output constraint.
17132
17133 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
17134
17135         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
17136         for call return value.
17137         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
17138
17139 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
17140
17141         * toplev.c (main): Only warn about options for other languages.
17142         * collect2.c (main): Pass -w to sub-gcc.
17143
17144 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
17145
17146         * flow.c (propagate_block): Add call-clobbered registers to
17147         significant too.
17148
17149         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
17150         zapping mem_set_list.
17151         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
17152         (mark_set_1, mark_used_regs): Likewise.
17153
17154 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
17155
17156         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
17157
17158 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17159
17160         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
17161         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
17162         options. Also add a new item "C-only Warning Options" to the
17163         option summary.
17164
17165 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
17166
17167         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
17168         from multiple calls.
17169
17170 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
17171
17172         * i386.md (call value patterns): Move to the end of the file.
17173         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
17174
17175 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
17176
17177         * configure.in (djgpp configuration): Define extra_objects..
17178         * configure: Rebuilt.
17179         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
17180         (DTORS_SECTION_ASM_OP): Define.
17181         (INIT_SECTION_ASM_OP): Define.
17182         (FINI_SECTION_ASM_OP): Define.
17183         (DATA_SECTION_ASM_OP): Define.
17184         (TEXT_SECTION_ASM_OP): Define.
17185         (EH_FRAME_SECTION_ASM_OP): Define.
17186         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
17187         (STARTFILE_SPEC): Add crtbegin.o.
17188         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
17189         to here from LINK_COMMAND_SPEC.
17190         (DO_GLOBAL_CTORS_BODY): Define.
17191         (CRTSTUFF_USE_FINI_SECTION): Define
17192         (HAS_INIT_SECTION): Delete.
17193
17194 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
17195
17196         * Makefile.in (all.cross): Depend on xcpp$(exeext).
17197
17198 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
17199
17200         * pa.h (PREDICATE_CODES): New.
17201
17202         * genrecog.c (validate_pattern): Condense the destination
17203         non-lvalue message.
17204
17205 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
17206
17207         * alpha.md (call-1): Supply missing mode for operator.
17208         (*): Add missing output reload constraints.  Remove constraints
17209         from define_splits.
17210
17211         * i386.h (SPECIAL_MODE_PREDICATES): New.
17212         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
17213         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
17214         (addsi_lea_3): Add missing mode for op 3.
17215         (prologue_set_got, prologue_get_pc): Add missing modes.
17216         (*) Add missing output reload constraints.
17217
17218 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
17219
17220         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
17221         check for member bit-size overflow and use var_size if it occurs.
17222         (layout_record): Use bitsize_int() to define the type size in bits.
17223         Likewise for computation and assignment to DECL_FIELD_BITPOS.
17224         (layout_decl): Likewise when assigning to DECL_SIZE.
17225
17226 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
17227
17228         * genrecog.c (validate_pattern): Typo last change.  Verify
17229         that output operands have output reloads.
17230
17231 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
17232
17233         * genrecog.c (special_mode_pred_table): New.
17234         (NUM_SPECIAL_MODE_PREDS): New.
17235         (find_operand): New.
17236         (validate_pattern): New argument `insn'.  Warn for assignment to
17237         any predicate accepting non-lvalues.  Conditionaly warn for
17238         match_operand without a mode.  Try much harder to match source
17239         and destination modes on a set.
17240         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
17241
17242 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
17243
17244         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
17245
17246 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
17247
17248         * combine.c (simplify_logical): Recognize xor pattern that encodes
17249         rotation.
17250
17251 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17252
17253         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
17254         alignment.
17255
17256 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
17257
17258         * ggc-page.c (MAP_FAILED): Provide default.
17259
17260 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
17261
17262         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
17263         * sparc.h (PREDICATE_CODES): Update.
17264
17265 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
17266
17267         * alpha.c (some_ni_operand): New.
17268         * alpha-protos.h: Declare it.
17269         * alpha.h (PREDICATE_CODES): Update.
17270         * alpha.md (sXaddq reload insns): Use some_ni_operand
17271         for SET_DEST instead of some_operand.
17272
17273 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
17274                           Jim Wilson  <wilson@cygnus.com>
17275
17276         * genrecog.c (maybe_both_true_2): Don't compare modes of
17277         two DT_pred tests.
17278         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
17279         after find_afterward.
17280         (debug_decision_1): Dump next and afterward codes.
17281
17282 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
17283
17284         * rtl.c (dump_and_abort): Remove.
17285         (fatal_with_file_and_line): New.
17286         (fatal_expected_char): New.
17287         (read_rtx_lineno, read_rtx_filename): New.
17288         (read_skip_spaces): Track line number.
17289         (read_name): Use fatal_with_file_and_line.
17290         (read_rtx): Use fatal_expected_char.  Track line number.
17291         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
17292
17293         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
17294         if it isn't a CODE_LABEL.
17295
17296         * genattr.c (main): Set read_rtx_filename.
17297         * genattrtab.c (main): Likewise.
17298         * gencodes.c (main): Likewise.
17299         * genconfig.c (main): Likewise.
17300         * genemit.c (main): Likewise.
17301         * genextract.c (main): Likewise.
17302         * genflags.c (main): Likewise.
17303         * genopinit.c (main): Likewise.
17304         * genoutput.c (main): Likewise.
17305         * genpeep.c (main): Likewise.
17306
17307         * genrecog.c (decision_test.u.insn): Add `lineno'.
17308         (pattern_lineno, error_count): New variables.
17309         (message_with_line): New.
17310         (add_to_sequence): Break out checking code to ...
17311         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
17312         (merge_insn): Use message_with_line.
17313         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
17314         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
17315
17316 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17317
17318         * expr.c (store_constructor): Clear union if constructor is empty.
17319
17320 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
17321
17322         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
17323         Add !endian checks.  Change %{...} to %(...).
17324
17325 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
17326
17327         * i386.md (*addsi3_cc): Renamed from addcsi3.
17328         (*addsi3_carry): Renamed from addxsi3.
17329         (*subsi3_cc): Renamed from subcsi3.
17330         (*subsi3_carry): Renamed from subxsi3.
17331         (*xorqi_cc_1): Renamed from xorcqi_1.
17332         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
17333         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
17334
17335 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
17336
17337         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
17338         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
17339
17340 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
17341
17342         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
17343         climb up the chain of insns.
17344
17345 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
17346
17347         * genrecog.c (write_subroutine): Careful for null trees.
17348         (process_tree): Don't elide empty functions.
17349
17350 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
17351
17352         * Makefile.in (genrtl.o): Depend on ggc.h.
17353         * configure.in (valloc): Probe for it.
17354         (with-gc): Use ggc-page if valloc present.
17355         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
17356         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
17357         (ggc_alloc_string): Moved from ggc-page.c.
17358         * ggc-none.c (ggc_alloc_obj): New.
17359         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
17360         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
17361         (struct globals): Likewise for dev_zero_fd.
17362         (init_ggc): Likewise for it's initialization.
17363         (ggc_allocated_p): Move careful dereference from ...
17364         (ggc_lookup_page_table): ... here.  Delete.
17365         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
17366         (alloc_anon): Use valloc if no mmap.
17367         (release_pages): Use free if using valloc.
17368         (ggc_alloc_obj): Renamed from alloc_obj.
17369         (ggc_set_mark): Renamed from mark_obj.
17370         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
17371         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
17372         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
17373         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
17374         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
17375         (ggc_collect): Use fp printing instead of our own rounding.
17376         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
17377         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
17378         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
17379         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
17380         (struct ggc_string, struct ggc_any): Delete.
17381         (offsetof): Provide default definition.
17382         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
17383         (PTR_KEY): New.
17384         (struct ggc_mem): New, from corpse of ggc_any.
17385         (struct ggc_status): Delete.
17386         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
17387         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
17388         (n_strings_collected, n_anys_collected): Delete.
17389         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
17390         (ggc_alloc_string, ggc_alloc): Delete.
17391         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
17392         (ggc_free_string, ggc_free_any): Delete.
17393         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
17394         (ggc_compare_addresses, ggc_mark_string): Delete.
17395         (ggc_mark_string_if_gcable, ggc_mark): Delete.
17396         (search_data): Delete.
17397         (struct globals): New.
17398         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
17399         (tree_insert, tree_lookup): New.
17400         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
17401         (clear_marks, sweep_objs): New.
17402         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
17403         (init_ggc): Set allocated_last_gc.
17404         (ggc_push_context): Gut.  Use G.context.
17405         (ggc_pop_context): Likewise.
17406         (ggc_pop_context_1): New.
17407         (debug_ggc_tree): New.
17408         (debug_ggc_balance, tally_leaves): New.
17409         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
17410         (ggc_mark_string_if_gcable): Remove decl.
17411         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
17412         (ggc_mark_rtvec_children): New.
17413         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
17414         (ggc_mark_if_gcable): New decl.
17415         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
17416         (ggc_alloc_tree, ggc_alloc): Likewise.
17417         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
17418         (ggc_alloc_obj): New decl.
17419         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
17420         (ggc_alloc_tree, ggc_alloc): Likewise.
17421         (ggc_set_mark): New decl.
17422         * rtl.h (struct rtx_def): Remove gc_mark.
17423         (struct rtvec_def): Likewise.
17424         * tree.h (struct tree_common): Likewise.
17425
17426 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
17427
17428         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
17429         float_format and thread_file definitions.
17430         * configure: Rebuilt.
17431
17432 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
17433
17434         * extend.texi (Function Names): Document types of function names.
17435
17436 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17437
17438         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
17439         an earlyclobbered output conflict with RELOAD_INPUT reloads.
17440
17441 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17442
17443         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
17444
17445 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17446
17447         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
17448
17449 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
17450
17451         * collect2.c (main): Do prelimnary link on AIX if rflag.
17452
17453 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
17454
17455         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
17456         __CTOR_LIST__ in opposite order, which is the correct order for sorted
17457         constructors.
17458         (__do_global_dtors): similarly for __DTOR_LIST__.
17459
17460 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17461                                 Diego Novillo <dnovillo@cygnus.com>
17462
17463         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
17464         FPUL_REGS.
17465
17466 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
17467
17468         * fixincl/*: Merged "no_bogosity" branch
17469         * fixincl/fixlib.h: protect against doubly defining t_bool
17470         * fixincl/server.h: protect against doubly defining t_bool
17471
17472 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
17473
17474         * genoutput.c: Include toplev.h.
17475
17476 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
17477
17478         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
17479         Undef.
17480         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
17481         * configure: Regenerate.
17482
17483 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
17484
17485         * gcse.c (delete_null_pointer_checks): Returns void.
17486
17487 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17488
17489         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
17490         * emit-rtl.c (copy_insn_1): Likewise.
17491
17492 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
17493
17494         * config/mips/mips.c (mips_build_va_list): Correct
17495         TREE_CHAIN setting when hard-float.
17496         (mips_va_start): Use corrected setting.
17497         (mips_va_arg): Likewise.  Also pass a tree to build of
17498         POSTINCREMENT_EXPR rather than a naked 'int'.
17499
17500 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
17501
17502         * ggc.h (ggc_push_context): Fix comment.
17503         (ggc_pop_context): Likewise.
17504         (mark_string_if_gcable): Likewise.
17505         * ggc-common.c (ggc_mark_rtx_children): Use
17506         ggc_mark_string_if_gcable.
17507         * ggc-page.c (ggc_lookup_page_table): New function.
17508         (ggc_allocated_p): Likewise.
17509         (mark_obj): Fix formatting.
17510         (ggc_mark_string_if_gcable): New function.
17511         * ggc-simple.c (ggc_allocated_strings): New variable.
17512         (ggc_strings_used): Likewise.
17513         (ggc_compare_addresses): New function.
17514         (ggc_pop_context): Pop the `any' memory too.
17515         (ggc_mark_string_if_gcable): New function.
17516         (ggc_collect): Initialize and tear down ggc_allocated_strings.
17517
17518 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
17519
17520         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
17521         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
17522         * rs6000.c (expand_block_move): Match movstrsi_?reg register
17523         changes.
17524
17525 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
17526
17527         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
17528         (sched_reg_live_length, sched_reg_basic_block): Delete.
17529         (current_block_num, bb_live_regs, old_live_regs): Delete.
17530         (dead_notes, struct sometimes): Delete.
17531         (sched_note_set, birthing_insn_p): Delete.
17532         (adjust_priority): Gut useless reg lifetime code.
17533         (create_reg_dead_note, attach_deaths): Delete.
17534         (attach_deaths_insn, new_sometimes_live): Delete.
17535         (finish_sometimes_live): Delete.
17536         (find_pre_sched_live, find_post_sched_live): Delete.
17537         (update_reg_usage): Delete.
17538         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
17539         (schedule_insns): Delete reg lifetime code.
17540         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
17541         (unlink_other_notes): Adjust REG_NOTE commentary.
17542         (reemit_notes): Use REG_SAVE_NOTE.
17543         (schedule_block): Likewise.
17544         (schedule_region): Allocate bitmap of blocks in region.  Use
17545         count_or_remove_death_notes.  Use update_life_info.
17546
17547         * rtl.h (REG_SAVE_NOTE): New.
17548         * rtl.c (reg_note_name): Update.
17549
17550 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
17551
17552         * combine.c (refresh_blocks, need_refresh): New.
17553         (combine_instructions): Allocate refresh_blocks.  Invoke
17554         update_life_info if needed.
17555         (distribute_notes): Mark refresh_blocks instead of installing
17556         USE insns.
17557         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
17558         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
17559
17560         * Makefile.in (recog.o): Depend on basic-block.h.
17561
17562 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
17563
17564         * genrecog.c (add_to_sequence): Thinko last change: delete
17565         shadowing allow_const_int variable.
17566
17567 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17568
17569         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
17570         __GNUC__ and __GNUC_MINOR__.
17571
17572         * gansidecl.h: Likewise.
17573
17574         * rtl.c: Likewise.
17575
17576         * rtl.h: Likewise.
17577
17578         * toplev.h: Likewise.
17579
17580         * tree.c: Likewise.
17581
17582         * tree.h: Likewise.
17583
17584         * varray.c: Likewise.
17585
17586         * varray.h: Likewise.
17587
17588 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17589
17590         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
17591         use one before a jump table.
17592
17593         * rtl.def (ADDRESS): Change documentation to match reality.
17594         * md.texi: Don't document it.
17595         * gmicro.md (load address pattern): Use 'p' constraint, delete use
17596         of ADDRESS rtx.
17597
17598         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
17599
17600 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
17601
17602         * genrecog.c (add_to_sequence): Move allow_const_int test outside
17603         known predicate block; default allow_const_int true.
17604         (debug_decision_list): New.
17605
17606 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
17607
17608         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
17609
17610 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
17611
17612         * gcse.c (gcse_main): Avoid global optimizations if we have a
17613         large number of basic blocks and the ratio of edges to blocks
17614         is high.
17615         (delete_null_pointer_checks): Likewise.
17616
17617 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
17618
17619         * c-common.c (check_format_info): Warn if format string isn't a
17620         string literal.
17621
17622 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
17623
17624         * configure.in (arm*-*-*): Don't let autoconf remove brackets
17625         * configure: regenerate
17626
17627 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
17628
17629         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
17630         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
17631         (peepholes): Re-enable.
17632
17633 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
17634
17635         * Makefile.in (flow.o): Depend on TREE_H.
17636         * basic-block.h (REG_SET_EQUAL_P): New.
17637         (XOR_REG_SET): New.
17638         (n_edges): Declare.
17639         (free_regset_vector): Remove declaration.
17640         (flow_delete_insn_chain): Declare.
17641         (enum update_life_extent): New.
17642         (update_life_info, count_or_remove_death_notes): Declare.
17643         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
17644         Verify register live at bb->global_live_at_start before adding USE.
17645         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
17646         (CLEAN_ALLOCA): New.
17647         (n_edges): New.
17648         (PROP_*): New flags.
17649         (find_basic_blocks_1): Use alloc_EXPR_LIST.
17650         (clear_edges): Zero n_edges.
17651         (make_edge): Increment n_edges.
17652         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
17653         (flow_delete_insn_chain): Export.
17654         (delete_block): Decrement n_edges.
17655         (merge_blocks_nomove): Likewise.
17656         (life_analysis): Give life_analysis_1 PROP flags.
17657         (verify_wide_reg_1, verify_wide_reg): New.
17658         (verify_local_live_at_start): New.
17659         (update_life_info): Rewrite to call into propogate_block.
17660         (mark_reg): New.
17661         (mark_regs_live_at_end): After reload, if epilogue as rtl,
17662         always mark stack pointer.  Conditionally mark PIC register.
17663         After reload, mark call-saved registers, return regsiters.
17664         (life_analysis_1): Accept PROP flags not remove_dead_code.
17665         Call mark_regs_live_at_end before zeroing regs_ever_live.
17666         Use calculate_global_regs_live.  Copy global_live_at_end before
17667         calling final propagate_block.  Zero reg_next_use on exit.
17668         (calculate_global_regs_live): New.
17669         (allocate_bb_life_data): Don't allocate bb->local_set.
17670         (init_regset_vector, free_regset_vector): Remove.
17671         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
17672         Test flags before every operation.  Warn if prologue/epilogue insn
17673         would have been deleted.
17674         (mark_set_regs, mark_set_1): Accept and use FLAGS.
17675         Use alloc_EXPR_LIST.
17676         (mark_used_regs): Accept and use FLAGS, not FINAL.
17677         Remove special handling for RETURN.
17678         (try_pre_increment): Use alloc_EXPR_LIST.
17679         (dump_flow_info): Dump n_edges.
17680         (unlink_insn_chain, split_hard_reg_notes): Remove.
17681         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
17682         (find_insn_with_note, new_insn_dead_notes): Remove.
17683         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
17684         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
17685         (replace_insns): Remove.
17686         (count_or_remove_death_notes): New.
17687         (verify_flow_info): Abort on error after all checks.
17688         (remove_edge): Decrement n_edges.
17689         (remove_fake_edges): Tweak format.
17690         * haifa-sched.c (schedule_insns): Use split_all_insns.
17691         * output.h (update_life_info): Remove declaration.
17692         * recog.c (split_all_insns): From the corpse of split_block_insns,
17693         do the whole function block by block.  Use update_life_info.
17694         (recog_last_allowed_insn): New.
17695         (recog_next_insn): Mind it.
17696         (peephole2_optimize): Set it.  Walk backwards through blocks.
17697         Use update_life_info.
17698         * rtl.h (update_flow_info, replace_insns): Remove declarations.
17699         (split_all_insns): Declare.
17700         * toplev.c (rest_of_compilation): Thread prologue before flow2.
17701         Use split_all_insns.
17702
17703         * i386.md (or -1 peep2s): Disable.
17704
17705 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
17706
17707         * config/mips/mips.md (movstrsi+[123]) : Combine these into
17708         a single pattern.  Scrap the 'd' versions as unnecessary.
17709
17710         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
17711         tablejump_mips162,tablejump_internal4): The operands to a
17712         label_ref must be VOIDmode.
17713
17714 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17715
17716         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
17717
17718 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
17719
17720         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
17721
17722 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
17723
17724         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
17725         cache every function if ggc_p.
17726
17727 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17728
17729         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
17730         instead of copy_rtx.  Accept sequences that contain asm statements.
17731         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
17732         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
17733         orig_asm_operands_vector, copy_asm_operands_vector,
17734         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
17735         variables.
17736         * rtl.h (copy_insn, copy_insn_1): Declare.
17737
17738 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17739
17740         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
17741
17742         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
17743         arguments to `current_file_function_operand'.
17744
17745         * genrecog.c: Include hard-reg-set.h and resource.h in the
17746         generated output file.
17747
17748         * real.c: Include tm_p.h.
17749
17750 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17751
17752         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
17753         output operand.
17754
17755 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
17756
17757         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
17758         before the fctiwz insn.
17759
17760 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17761                           Mark Mitchell  <mark@codesourcery.com>
17762
17763         * tree.c (make_lang_type_fn): New funtion pointer.
17764         (make_lang_type): Call it.
17765         * tree.h (make_lang_type): Declare.
17766         (make_lang_type_fn): Likewise.
17767         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
17768
17769 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
17770
17771         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
17772         make sure that HIGH instructions are copied into BASE_REGS.
17773
17774 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
17775
17776         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
17777
17778 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
17779
17780         * c-decl.c (finish_struct): Use simpler method of
17781         removing elements of a singly-linked list.
17782
17783 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
17784
17785         * alpha.md (peephole2's): Comment out peephole2's that generate
17786         buggy code.
17787
17788 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
17789
17790         * genrecog.c (add_to_sequence): Disable mode check for
17791         wildcard matches.
17792
17793 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17794
17795         * ggc-simple.c (init_ggc): Set empty_string.
17796
17797 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
17798
17799         * configure.in: Detect mmap.  Add --with-gc=foo to select
17800         garbage collector; default to page if mmap available.
17801         * Makefile.in (GGC): Substitute.
17802
17803 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
17804
17805         * c-decl.c (ggc_p): Enable.
17806
17807 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17808
17809         * flow.c (verify_flow_info): Make it extern & unconditionally define.
17810
17811 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
17812
17813         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
17814         string for little-endian-data.
17815
17816 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
17817
17818         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
17819         case somebody tries to compile --enable-checking code with gcc
17820         1.34 or such.
17821
17822 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
17823
17824         * genrecog.c (add_to_sequence): Verify operand to label_ref is
17825         VOIDmode.
17826
17827 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
17828
17829         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
17830         * jump.c (jump_optimize_1): Document why.
17831
17832 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17833
17834         * collect2.c (scan_prog_file, scan_libraries): Prototype function
17835         pointers and casts for `int_handler' and `quit_handler'.
17836
17837         * flow.c (verify_flow_info, split_hard_reg_notes,
17838         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
17839         remove_edge, remove_fake_successors): Add static prototypes.
17840         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
17841         (mark_set_1): Initialize variable `regno'.
17842         (unlink_insn_chain): Likewise for variable `curr'.
17843         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
17844
17845         * loop.c (strength_reduce): Initialize variable
17846         `unrolled_insn_copies'.
17847         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
17848         prototypes.  Change these functions to take const PTR parameters
17849         to avoid prototype conflict when used as the comparson argument
17850         for qsort.
17851         (check_dbra_loop): Initialize variable `comparison_val'.
17852
17853         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
17854         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
17855         (find_valid_class): Initialize variable `best_class'.
17856         (find_reloads): Call memcpy, not bcopy.
17857
17858         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
17859         (hard_reg_use_compare): Don't needlessly cast away const.
17860         (reload_reg_class_lower): Likewise.
17861         (choose_reload_regs): Initialize variable `regno'.
17862
17863 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
17864
17865         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
17866
17867 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
17868
17869         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
17870         ({,d}discard): Add forward declarations.  Declare parameter as
17871         unused.
17872         (main_without_main): Explicitly declare return type to be int.
17873         (memcpy): Properly declare.
17874
17875         * libgcc2.c (toplevel): If inhibit_libc is defined and not
17876         building the trampoline support, declare malloc, free, and
17877         atexit.
17878         (__clear_cache): Mark arguments as potentially unused.
17879
17880         * frame.c (toplevel): If inhibit_libc is defined, declare
17881         malloc and free.
17882
17883 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
17884
17885         * flow.c (make_edge): Accept an optional 2D bitmap in which
17886         to cache edge existence.  Update all callers.
17887         (make_label_edge, make_eh_edge): Pass through the edge cache.
17888         (make_edges): Provide the cache.
17889
17890 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17891
17892         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
17893         a char*.
17894         (local_mbtowc): Change the type of variable `i' from int to size_t.
17895
17896         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
17897         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
17898
17899 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
17900
17901         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
17902         after other includes that define the appropriate types.  Include
17903         tm_p.h for getting user prototypes.
17904         * ggc-callbacks.c (toplevel): Ditto.
17905         * ggc-none.c (toplevel): Ditto.
17906         * gcc-page.c (toplevel): Ditto.
17907         * ggc-simple.c (toplevel): Ditto.
17908
17909 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
17910                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
17911
17912         * config/mips/mips.c (mips_move_2words): Split doubles if
17913         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
17914
17915 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
17916
17917         * genrecog.c (struct decision_test): New.
17918         (struct decision): Remove test-related members, sort the rest by size.
17919         (IS_SPLIT): Simplify.
17920         (new_decision, new_decision_test): New.
17921         (add_to_sequence): Use them.  No special handling for args of
17922         non-MATCH codes.
17923         (maybe_both_true): Renamed from not_both_true; return sense changed.
17924         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
17925         of maybe_both_true and adjusted for decision_test.
17926         (position_merit): Remove.
17927         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
17928         (merge_accept_insn): New, broken out of merge_trees.
17929         (merge_trees): Use them.  No special case for c_test; no node
17930         splitting; use test type instead of position_merit.
17931         (factor_tests): New.
17932         (simplify_tests): New.
17933         (break_out_subroutines): Don't write code now.
17934         (find_afterward): New.
17935         (write_afterward, write_switch, write_cond): New.
17936         (write_action, is_unconditional): New.
17937         (write_node): New.  Use them.
17938         (write_tree_1): Rewrite.  Use the new functions above.
17939         (write_tree): Remove afterward processing.
17940         (write_subroutine): Simplify function variant emission.
17941         (write_subroutines): New.
17942         (same_codes, clear_codes): Remove.
17943         (same_modes, clear_modes): Remove.
17944         (write_header): New, broken out of main.
17945         (make_insn_sequence): Use new_decision and new_decision_test.
17946         (process_tree): New, broken out of main.
17947         (main): Adjust for merge_trees interface change.
17948         Don't #define operands in the output file.
17949         (record_insn_name): New, broken out of make_insn_sequence.
17950         (debug_decision_2, debug_decision_1, debug_decision_0): New.
17951         (debug_decision): New.
17952
17953 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
17954
17955         * resource.c (find_free_register): Mark class_str argument const.
17956         * resource.h: Update prototype to match.
17957
17958         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
17959         * i386.md: Give all anonymous insns names.
17960
17961 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
17962
17963         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
17964         blocks.
17965
17966 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
17967
17968         * toplev.c (dbr_sched_time): Unconditional.
17969         (peephole2_time): New.
17970         (compile_file): Add pass numbers to all of the dump file suffixes.
17971         Dump peephole2_time.  Don't dump times for non-applicable passes.
17972         (rest_of_compilation): Add pass numbers to dump file suffixes.
17973         Conditionalize calls to the scheduler.
17974         * invoke.texi: Update.
17975
17976 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
17977
17978         * flow.c (make_edges): Fix insn iteration.
17979         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
17980         (find_basic_blocks_1): Fix spelling mistake.
17981
17982 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
17983
17984         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
17985         always have side-effects.  Use memset not bzero.
17986         (make_node): Likewise.
17987
17988 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
17989
17990         * stmt.c (expand_anon_union_decl): When any of the elements of the
17991         union is addressable, so is the entire union.
17992
17993 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
17994
17995         * sbitmap.c (sbitmap_ones): Don't set too many bits.
17996
17997         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
17998         * bitmap.c (bitmap_operation): Return true iff TO changed.
17999         (bitmap_equal_p): New.
18000         (bitmap_bit_p): Tidy arithmetic.
18001         (debug_bitmap_file): Likewise.
18002
18003 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
18004
18005         * toplev.c (rest_of_compilation): Turn on cse_not_expected
18006         before cse2 instead of after.
18007
18008 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
18009
18010         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
18011         register offsets.
18012
18013 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18014
18015         * cppinit.c (is_idchar initializer): Loosen tests to accept
18016         gcc 2.>6 and >2.
18017
18018 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
18019
18020         * mips.md: Define conditional move patterns for floating point
18021         operands and DI mode conditions.
18022
18023 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
18024
18025         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
18026         always have side-effects.
18027
18028 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
18029
18030         * mn10200.c (asm_file_start): Fix typo.
18031
18032         * cppinit.c (is_idchar initializer): Tighten tests for when
18033         to put the table into initialized memory.
18034
18035         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
18036         not an array of rtunion.
18037         * gcc-page.c (ggc_alloc_rtvec): Similarly.
18038         * gcc-simple (ggc_free_rtvec): Similarly.
18039
18040         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
18041         of rtunions.
18042
18043         * mbchar.h: Add missing #endif.
18044
18045         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
18046         (FPBIT, DPBIT): Define.
18047
18048 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18049
18050         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
18051
18052         * profile.c (instrument_arcs, output_gcov_string,
18053         tablejump_entry_p): Add static prototypes.
18054         (output_gcov_string): Constify a char*.
18055
18056         * regmove.c (replacement_quality, fixup_match_2): Add static
18057         prototypes.
18058
18059         * resource.h (reg_dead_p): Add extern prototype.
18060
18061         * rtl.c (trim_filename): Add static prototype.
18062
18063         * scan-decls.c (skip_to_closing_brace): Likewise.
18064
18065         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
18066         (expand_end_case): Initialize variable `range'.
18067         (emit_case_nodes): Remove unused prototype `rtx_fn'.
18068
18069         * varasm.c (asm_emit_uninitialised): Add static prototype.
18070         (asm_emit_uninitialised, assemble_variable): Mark parameter with
18071         ATTRIBUTE_UNUSED.
18072
18073 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18074
18075         * cpplib.c (if_directive_nameo): Add static prototype.
18076
18077         * cse.c (cse_insn): Remove unused variable `p'.
18078
18079         * except.c (create_rethrow_ref, push_entry,
18080         receive_exception_label, new_eh_region_entry, find_func_region,
18081         clear_function_eh_region, process_nestinfo): Add static prototypes.
18082         (get_reg_for_handler): Hide definition.
18083         (process_nestinfo): Initialize variable `extra_handlers'.
18084
18085         * expr.h (expand_builtin_longjmp): Add extern prototype.
18086
18087         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
18088
18089         * function.c (prepare_function_start): Likewise.
18090         (pop_function_context_from): Mark parameter `context' with
18091         ATTRIBUTE_UNUSED.
18092         (push_temp_slots_for_block, flush_addressof): Hide definition.
18093
18094         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
18095         solve_program_flow_graph, calculate_branch_probs,
18096         function_summary, main, fancy_abort): Add prototypes.
18097
18098         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
18099         (add_hash): Constify a char*.
18100
18101         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
18102         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
18103         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
18104
18105         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
18106
18107         * lists.c (free_list, zap_lists): Likewise.
18108
18109 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18110
18111         * alias.c (nonlocal_reference_p): Add static prototype.
18112
18113         * bitmap.c (bitmap_element_allocate): Prototype args in function
18114         pointer cast.
18115
18116         * builtins.c (stabilize_va_list): Add static prototype.
18117         (expand_builtin_va_arg): Constify a char*.
18118
18119         * c-lex.c (getch, put_back, extend_token_buffer_to,
18120         read_line_number, token_getch, token_put_back): Add static
18121         prototypes.
18122
18123         * c-parse.gperf (hash, is_reserved_word): Likewise.
18124
18125         * cccp.c (is_dir_separator): Likewise.
18126
18127 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18128
18129         * graph.h: New file to prototype functions exported by graph.c.
18130
18131         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
18132
18133         * graph.c: Include graph.h.
18134
18135         * toplev.c: Likewise.  Remove redundant prototypes.
18136
18137 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
18138
18139         * invoke.texi: Removed duplicated description for -Q.
18140
18141 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
18142
18143         * extend.texi: Grammar fix in __extension__ text.
18144
18145 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
18146
18147         * md.texi (define_peephole2): New section.
18148
18149 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
18150
18151         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
18152         (mov $-1 to or peepholer): Enable for pentium when optimizing for
18153         speed.
18154
18155 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
18156
18157         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
18158
18159 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
18160
18161         * i386.md (ffs expander): Emit Pentium friendly code for
18162         TARGET_PENTIUM.
18163
18164 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
18165
18166         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
18167         for non-trees.
18168         (build1): Likewise.
18169
18170 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18171
18172         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
18173
18174 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
18175
18176         * config/m68k/m68k.c (use_return_insn): Return false if the pic
18177         register is in use.
18178
18179 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18180
18181         * md.texi (No Constraints): Delete section.
18182         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
18183         * final.c (final_scan_insn): We always have register constraints.
18184         * genattrtab.c: Don't include "insn-config.h".
18185         (write_attr_case): We always have register constraints.
18186         * genconfig.c (register_constraint_flag): Delete.
18187         (walk_insn_part): Don't check whether we have register constraints.
18188         (main): Don't write out "#define REGISTER_CONSTRAINTS".
18189         * genoutput.c (have_constraints): Delete.
18190         (main): Don't set it.
18191         (output_operand_data): We always have constraints.
18192         (scan_operands): Likewise.
18193         (compare_operands): Likewise.
18194         * local-alloc.c (block_alloc): We always have constraints.
18195         (requires_inout): Always compile this function.
18196         * recog.c (extract_insn): We always have constraints.
18197         (constrain_operands, reg_fits_class_p): Always compile these
18198         functions.
18199         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
18200         fields.
18201         (struct insn_operand_data): Likewise.
18202         * regclass.c (regclass): We always have constraints.
18203         (record_reg_classes, copy_cost, record_address_regs,
18204         auto_inc_dec_reg_p): Always compile these functions.
18205         * regmove.c (regmove_optimize): We always have constraints.
18206         * reload.c (find_reloads): Likewise.
18207         * reload1.c (reload): Likewise.
18208         (reload_cse_simplify_operands): Likewise.
18209         * i860.c (output_delay_insn): Likewise.
18210
18211 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
18212
18213         * iris6.h (BUILD_VA_LIST_TYPE): Define.
18214
18215 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
18216
18217         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
18218         for the va_list record.
18219
18220 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
18221
18222         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
18223         prologues.
18224
18225 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
18226
18227         * alias.c: Include insn-flags.h.
18228         * Makefile.in (alias.o): Update.
18229
18230 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
18231
18232         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
18233         to LTU and GEU.  Handle more cases using sbb.
18234
18235 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
18236
18237         * i386.md (truncatexfdf splitters): Do not use subreg.
18238         (fop XFmode patterns): Fix mode in operand testing.
18239
18240 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
18241
18242         * jump.c (jump_optimize_1): Amend last change to test only the
18243         form of the operand, not the insn.
18244
18245         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
18246         not register_operand to determine when B may need preloading.
18247
18248 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
18249
18250         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
18251         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
18252         (call-value patterns): Move to end of file.
18253         (*): Remove mode from label_ref in (pc) context.
18254         (movstrqi): Use memory not general_operand for BLKmode operands.
18255         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
18256         to register_operand operands.
18257         (peep2 patterns): Convert from commented-out peephole patterns.
18258
18259 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18260
18261         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
18262         to BUILT_IN_INIT_DWARF_REG_SIZES.
18263         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
18264         Renamed from BUILT_IN_DWARF_REG_SIZE; call
18265         expand_builtin_init_dwarf_reg_sizes.
18266         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
18267         with __builtin_init_dwarf_reg_size_table.
18268         * dwarf2out.c (struct reg_size_range): Delete.
18269         (expand_builtin_init_dwarf_reg_sizes): New function.
18270         (expand_builtin_dwarf_reg_size): Delete.
18271         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
18272         (expand_builtin_dwarf_reg_size): Don't declare.
18273         * libgcc2.c (dwarf_reg_size_table_initialized): New.
18274         (dwarf_reg_size_table): New.
18275         (init_reg_size_table): New function.
18276         (copy_reg): Use dwarf_reg_size_table.
18277         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
18278         before use.
18279
18280 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
18281
18282         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
18283         Correctly build argument list to constructor and destructor functions.
18284
18285 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
18286
18287         * c-tree.h (warn_float_equal): Declare.
18288         * c-decl.c (warn_float_equal): Define.
18289         (c_decode_option): Recognize -W[no-]float-equal.
18290         * c-typeck.c (build_binary_op): Conditionally warn
18291         about equality tests of floating point types.
18292         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
18293         * invoke.texi: Add docs for -Wfloat-equal warning.
18294
18295 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
18296
18297         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
18298         generating RTL directly.
18299         * mips.h (INIT_TARGET_OPTABS): Likewise.
18300         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
18301
18302         * expr.h (init_mov_optab): Delete declaration
18303
18304         * h8300.c (WORD_REG_USED): Update to avoid useless register
18305         saves in interrupt functions and functions which never return.
18306
18307         * cse.c (struct set): Delete inner_dest_loc field.
18308         (cse_insn): Remove assignments to inner_dest_loc field.
18309
18310 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
18311
18312         * ggc-page.c: Don't include <unistd.h> etc taken care of
18313         by "system.h".  Include <sys/mman.h> afterward.
18314
18315 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
18316
18317         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
18318         ggc_alloc_string.
18319
18320 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
18321
18322         * xcoffout.c (xcoffout_declare_function): Add documentation.
18323         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
18324         TARGET_64BIT.  Compare constant to -1, not bit pattern.
18325         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
18326         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
18327         gen_movsi typos.
18328
18329 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
18330
18331         * dwarf2out.c (add_abstract_origin_attribute): Abort if
18332         origin_die is NULL.
18333         (gen_inlined_enumeration_type_die): Do not abort if the type has
18334         not been writeen out.
18335         (gen_inlined_structure_type_die): Do not abort if the type has
18336         not been writeen out.
18337         (gen_inlined_union_type_die): Do not abort if the type has
18338         not been writeen out.
18339         (gen_tagged_type_instantiation_die): Do not abort if the type
18340         has not been written out.
18341
18342 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18343
18344         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
18345         call it.
18346         * reg-stack.c (straighten_stack): Copy hard reg set with
18347         COPY_HARD_REG_SET.
18348
18349 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
18350
18351         * builtins.c (stabilize_va_list): Stabilize array type va_list
18352         to a pointer type, not the base record type.
18353         (expand_builtin_va_copy): Dereference the pointers explicitly;
18354         use the correct size for the copy.
18355
18356         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
18357         (rs6000_va_arg): Likewise.
18358
18359 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
18360
18361         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
18362
18363 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
18364
18365         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
18366         field.
18367         (DECL_BUILT_IN_CLASS): Adjust accordingly.
18368
18369 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
18370
18371         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
18372         (init_ggc): Use it instead of a constant.
18373         (ggc_collect): Bound allocated_last_gc by it.
18374
18375 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
18376
18377         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
18378         with va_list.
18379
18380 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
18381
18382         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
18383         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
18384         * configure:  Regen.
18385         * config/mips/openbsd.h:  New, OpenBSD little endian target.
18386         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
18387         * config/mips/xm-openbsd.h:  New, OpenBSD host.
18388
18389 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
18390
18391         * config/m68k/m68k.c (output_function_prologue,
18392         output_function_epilogue): Use
18393         current_function_uses_pic_offset_table instead of regs_ever_live
18394         to decide whether to save/restore pic register.
18395         (legitimize_pic_address): Don't modify regs_ever_live any more.
18396
18397 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
18398
18399         * function.h (struct function): Add x_dont_save_pending_sizes_p.
18400         * stor-layout.c (variable_size): Don't add sizes to the pending
18401         sizes list if x_dont_save_pending_sizes_p is set.
18402
18403 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
18404
18405         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
18406         for symbolic_operand().
18407         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
18408
18409 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18410
18411         * combine.c (gen_rtx_combine): Add missing call to va_end().
18412
18413         * final.c (asm_fprintf): Likewise.
18414
18415         * genattrtab.c (attr_rtx): Likewise.
18416
18417 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
18418
18419         * cse.c: Update comments.
18420         (cse_insn): When converting a conditional/computed jump into
18421         an unconditional jump, always make sure a BARRIER immediately
18422         follows the converted jump.  Do not delete unreachable code.
18423         (cse_basic_block): Do not delete unreachable code.
18424         * toplev.c (rest_of_compilation): Move call to
18425         delete_trivially_dead_insns after the conditional call to
18426         jump_optimize.
18427
18428 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18429
18430         * collect2.c (make_temp_file): Don't prototype.
18431
18432         * gcc.c (make_temp_file): Likewise.
18433
18434         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
18435
18436 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
18437
18438         * varasm.c (asm_emit_uninitialised): New function: Generate
18439         the assembler statements necessary to declare an uninitialised
18440         variable.
18441         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
18442         variable.
18443         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
18444         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
18445         section.
18446         (assemble_variable): Use asm_emit_uninitialised to emit an
18447         uninitialised variable.
18448
18449 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
18450
18451         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
18452         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
18453         <geoffk@cygnus.com>.
18454
18455 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18456
18457         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
18458         * c-common.h (builtin_function): Don't declare.
18459
18460         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
18461         DECL_BUILT_IN.
18462         (pushdecl): Likewise.
18463         (finish_decl): Likewise.
18464         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
18465         int.  All callers changed.
18466         Set the builtin's DECL_BUILT_IN_CLASS.
18467         * tree.h (enum built_in_class): New.
18468         (enum built_in_function): Delete NOT_BUILT_IN.
18469         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
18470         in a union.
18471         (DECL_SET_FUNCTION_CODE): Likewise.
18472         (DECL_BUILT_IN_CLASS): New macro.
18473         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
18474         (struct tree_decl): Split builtin function code field into a
18475         struct.
18476         (builtin_function): Declare.
18477
18478 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
18479
18480         * optabs.c (init_traps): Fix typo in last change.
18481
18482 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
18483
18484         * toplev.c (rest_of_decl_compilation): Update comment.
18485
18486 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
18487
18488         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
18489         in .sbss if appropriate.
18490         (EXTRA_SECTION_FUNCTIONS): Add sbss.
18491         (SBSS_SECTION_ASM_OP): New macro.
18492         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
18493         (EXTRA_SECTIONS): Add in_sbss.
18494         * config/mips/mips.h: Prototype sbss_section.
18495
18496 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
18497
18498         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
18499         to disappear.
18500
18501 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
18502
18503         * optabs.c (init_traps): Register trap_rtx as a GC root.
18504
18505 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18506
18507         * config/mips/mips.c (function_arg_pass_by_reference): Define
18508         unconditionally, since it's called unconditionally.
18509
18510 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
18511
18512         * toplev.c (documented_lang_options): Add -fshort-wchar.
18513         * c-decl.c (c_decode_option): Likewise.
18514         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
18515         for wchar_t.
18516         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
18517         * gcc.c (default_compilers): If -fshort-wchar,
18518         override __WCHAR_TYPE__.
18519         * tm.texi (C Dialect Options): Add -fshort-wchar.
18520
18521         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
18522         symbol for a variable.
18523
18524         * cpplib.h (CPP_PREPROCESSED): New macro.
18525         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
18526         we're seeing this input for a second time.
18527
18528 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
18529
18530         * emit-rtl.c (init_emit_once): Initialize modes first.
18531
18532 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
18533
18534         * config/i386/i386.c (pic_label_name): Change to char pointer.
18535         (global_offset_table): New variable.
18536         (load_pic_register): Fill global_offset_table if it hasn't
18537         already been done.  Allocate pic_label_name dynamically.
18538         * ggc.h (empty_string): New variable.
18539         * ggc-simple.c (empty_string): Likewise.
18540         (init_ggc): Allocate empty_string and add as root.
18541         * stmt.c (digit_strings): New variable.
18542         (init_stmt): Add last_block_end_note as root.  Allocate and
18543         initialize digit_strings.
18544         (expand_asm_operands): Use empty_string instead of string
18545         constant.  Use digit_strings instead of string constants.
18546         * profile.c (init_arc_profiler): Allocate string with
18547         ggc_alloc_string instead of xmalloc.
18548         (output_func_start_profiler): Likewise.
18549         * c-typeck.c (digest_init): Check if init is error_mark_node.
18550
18551 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
18552                           Richard Henderson  <rth@cygnus.com>
18553
18554         * ggc-page.c: New file.
18555         * Makefile.in (ggc-page.o): New.
18556
18557 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
18558
18559         * invoke.texi: Document -fdelete-null-pointer-checks
18560         * toplev.c (flag_delete_null_pointer_checks): New.
18561         (f_options): Add entry for -fdelete-null-pointer-checks.
18562         (rest_of_compilation): Conditionalize null pointer check
18563         elimination on flag_delete_null_pointer_checks.
18564         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
18565
18566 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
18567
18568         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
18569         copyright notice and special exception to GPL.
18570
18571 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18572
18573         * abi64.h (mips_function_value): Add prototype arguments.
18574
18575         * mips-protos.h: New file with mips prototypes.
18576
18577         * mips.c: Include "tm_p.h".
18578         (mktemp, lookup_name): Add prototype arguments.
18579         (extern_list, string_constant, mips_fill_delay_slot,
18580         mips_output_external, mips_output_external_libcall,
18581         mips_output_filename, mips_declare_object, function_prologue,
18582         mips_expand_prologue, function_epilogue, mips16_constant,
18583         build_mips16_function_stub, mips_output_conditional_branch):
18584         Constify a char*.
18585         (mips_va_start): Remove unused variable `u'.
18586         (mips_va_arg): Cast value to unsigned when comparing against one.
18587         (trace): Delete.
18588         (save_restore_insns, mips_expand_prologue): Add missing arg in
18589         call to `large_int'.
18590
18591         * mips.h: Move prototypes to mips-protos.h.
18592         (data_section, memory_address_p, rdata_section,
18593         readonly_data_section, simple_epilogue_p, text_section): Delete
18594         prototypes delcared elsewhere.
18595         (mips_epilogue_delay_slots, print_options): Delete unused decls.
18596         (trace): Delete.
18597         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
18598
18599         * mips.md: Delete extra args in call to `mips_move_2words'.
18600
18601         * xm-iris6.h (alloca): Add prototype argument.
18602
18603         * genpeep.c: Include "tm_p.h" in generated output file.
18604
18605 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18606
18607         * basic-block.h (find_edge_index): Change parameters.
18608         * flow.c (verify_edge_list): Pass basic_block parameters to
18609         find_edge_index instead of integers.
18610
18611 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
18612
18613         * combine.c (simplify_comparison): Use an unsigned shift to adjust
18614         the constant.
18615
18616 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
18617
18618         * gcc.1: Fix a formatting error.
18619
18620 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
18621
18622         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
18623         i786, mn10200, mn10300, pdp11, v850.
18624
18625 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
18626
18627         * libgcc2.c (num_digits): Add prototype with
18628         __attribute__((const)).
18629         (__terminate): Add prototype.
18630
18631 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
18632
18633         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
18634
18635         * alpha/alpha.c (print_operand): Fix type of `code'.
18636         (alpha_output_filename): Constify.
18637         * alpha/alpha.h: Move all function declarations ...
18638         * alpha/alpha-protos.h: ... here.  New file.
18639         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
18640         (SECTION_FUNCTION_TEMPLATE): Likewise.
18641
18642 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18643
18644         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
18645         * expr.c (expand_expr): Likewise.
18646         (do_jump): Likewise.
18647         (do_store_flag): Pass ccp_store_flag to can_compare_p.
18648         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
18649         accessor macros.
18650         (enum can_compare_purpose): New.
18651         (can_compare_p): Adjust prototype.
18652         (prepare_cmp_insn, prepare_operand): Declare.
18653         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
18654         * optabs.c (cmp_available_p): Deleted.
18655         (expand_abs): Pass ccp_jump to can_compare_p.
18656         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
18657         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
18658         Call can_compare_p rather than cmp_available_p.
18659         (prepare_operand): No longer static.
18660         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
18661         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
18662         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
18663         sequence to use emit_cmp_and_jump_insns.
18664         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
18665
18666 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
18667
18668         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
18669         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
18670         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
18671         (plus (reg) (const_int 0))
18672         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
18673
18674 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
18675
18676         * rs6000.c (expand_block_move): DImode loads and stores require
18677         word-aligned displacements.  Increment address registers with
18678         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
18679
18680 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
18681
18682         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
18683         is no name for the base type, rather than segfault.  If we are
18684         writing out a complex integer type, use DW_ATE_lo_user.
18685
18686         * expr.c (emit_move_insn_1): If we are copying a complex that fits
18687         in one word or less (complex char, complex short, or on 64 bit
18688         systems complex float) to/from a hard register, copy it through
18689         memory instead of dying in gen_{real,imag}part.  If we have a
18690         short complex type, prevent inlining since it allocates stack
18691         memory.
18692
18693         * tree.c (build_complex_type): If we are writing dwarf2 output,
18694         generate a name for complex integer types.
18695
18696 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18697
18698         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
18699         * flow.c (remove_edge): Remove extra whitespace.
18700         (remove_fake_edges): Fix comment.
18701         (add_noreturn_fake_exit_edges): Use the correct name.
18702
18703 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
18704
18705         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
18706         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
18707         (clean): Depend on INTL_CLEAN.
18708         (maintainer-clean): Adjust.
18709
18710 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18711
18712         * configure.in (AC_PREREQ): Bump to 2.13.
18713         (AC_C_STRINGIZE): Call this instead of using a custom macro.
18714
18715         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
18716
18717         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
18718
18719         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
18720
18721         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
18722         (HAVE_STRINGIZE): Define.
18723
18724 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
18725
18726         * c-parse.in: save and restore warn_pointer_arith on __extension__
18727         along with pedantic.
18728         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
18729         Set the type of extension to itype rather than $<itype>1 kludge.
18730         * extend.texi (Alternate Keywords): Adjust documentation.
18731         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
18732
18733 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
18734
18735         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
18736         most assembler templates.
18737
18738         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
18739         FP loads and stores.
18740         (following_call): Always return zero for the PA8000.
18741         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
18742         FP loads and stores.
18743         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
18744
18745         * pa.h (BRANCH_COST): Define.
18746
18747         * pa.md (return, return_internal): Use bve for PA2.0.
18748
18749         * pa.md (fused multiply): Add variants which reduce height for the
18750         fused multiply, but which still generate 2 insns.
18751         (fnegabs): Similarly.
18752
18753         * pa.md (subsi3): Turn into an expander.  Create two anonymous
18754         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
18755         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
18756
18757         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
18758         for TARGET_PA_20.
18759         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
18760         code generation.
18761         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
18762         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
18763
18764         * regclass.c (init_regs): Add "top_of_stack" as a garbage
18765         collection root.
18766
18767         * flow.c (record_active_eh_regions): Terminate loop after finding
18768         the last insn in the last basic block.
18769
18770 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18771
18772         * config/c4x/c4x.md: Delete parallel instruction peepholes.
18773
18774 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18775
18776         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
18777
18778 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18779
18780         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
18781         splitting to not use output template.
18782
18783 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18784
18785         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
18786         * config/c4x/c4x.c (c4x_va_start): New function.
18787
18788 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
18789
18790         * genrecog.c (not_both_true): Handle correctly cases when called for
18791         tests with different positions in the insn.
18792
18793 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18794
18795         * machmode.h (HOST_PTR_PRINTF): Move from here ...
18796
18797         * system.h (HOST_PTR_PRINTF): ... to here.
18798
18799         * mips-tfile.c: Don't include machmode.h.
18800
18801         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
18802         (mips-tfile.o): Don't depend on machmode.h.
18803
18804 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18805
18806         * haifa-sched.c (sched_analyze): Rename local variable `region' to
18807         avoid conflicts with typedef struct `region' at the top level scope.
18808
18809 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
18810
18811         * basic-block.h (basic_block): Add eh_beg, eh_end.
18812         * flow.c (entry_exit_blocks): Update.
18813         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
18814         Call new functions.
18815         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
18816         lists.c functions to allocate insn lists.
18817         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
18818         edge creation ...
18819         (make_eh_edge): ... here.  New.
18820         (move_stray_eh_region_notes): New.
18821         (record_active_eh_regions): New.
18822         (delete_unreachable_blocks): Split out block merging ...
18823         (try_merge_blocks): ... here.  New.
18824         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
18825         Dump debugging data.
18826         (merge_blocks_move_successor_nojumps): Likewise.
18827         (merge_blocks): Use eh_beg+eh_end to validate block movement.
18828
18829 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
18830
18831         * extend.texi (Bound member functions): Document unbound pmf
18832         conversion.
18833
18834 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18835
18836         * flow.c (split_edge): Handle insertion on a fallthrough edge which
18837         has the EXIT_BLOCK as a dest.
18838
18839 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18840
18841         * flow.c (remove_edge): New function to remove an edge from the
18842         flow graph.
18843         (remove_fake_successors): New function to remove fake successor edges.
18844         (remove_fake_edges): New function to remove all fake edges from the
18845         flow graph.
18846         (add_fake_exit_edges): New function to add fake edges from all blocks
18847         with no successors to the exit block.
18848         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
18849         prototypes for new functions.
18850
18851 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
18852
18853         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
18854         Use Pmode to determine whether to output .dword or .word.
18855
18856 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
18857
18858         * tree.c (built_in_filename): New variable.
18859         (BUILT_IN_FILENAME): New macro.
18860         (init_tree_codes): Allocate built_in_filename.
18861         (make_node): Use built_in_filename instead of string constant.
18862
18863 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
18864
18865         * configure.in: Add fr30 target.
18866         * configure: Regenerate.
18867         * config/fr30: New directory.
18868         * config/fr30/crti.asm: New file.
18869         * config/fr30/fr30.c: New file.
18870         * config/fr30/crtn.asm: New file.
18871         * config/fr30/fr30.h: New file.
18872         * config/fr30/fr30.md: New file.
18873         * config/fr30/lib1funcs.asm: New file.
18874         * config/fr30/t-fr30: New file.
18875         * config/fr30/xm-fr30.h: New file.
18876
18877 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
18878
18879         * flow.c (merge_blocks_move_successor_nojumps): Delete the
18880         BARRIER at the end of the successor, not the BARRIER before
18881         the successor.
18882
18883         * pa.c (pa_add_gc_roots): Fix thinko in last change.
18884
18885 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
18886
18887         * stmt.c (any_pending_cleanups): Don't crash when
18888         current_function->stmt is unset.
18889
18890 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18891
18892         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
18893         other initializations that may use it for relative offsets.
18894
18895 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18896
18897         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
18898         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
18899         * config/i386/sol2dbg.h: Removed.
18900         * config/i386/sol2gas.h: New file, to enable gas work-around.
18901         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
18902         Don't use sol2dbg.h.
18903         * configure: Rebuilt.
18904
18905 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
18906
18907         * invoke.texi (-fthis-is-variable): Remove documentation.
18908
18909 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
18910
18911         * basic-block.h (compute_bb_for_insn): Declare.
18912         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
18913         to use; set size of basic_block_for_insn directly.
18914         (find_basic_blocks): Update.
18915
18916 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18917
18918         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
18919
18920 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18921
18922         * crtstuff.c (ON_EXIT): Delete empty macro definition.
18923         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
18924
18925 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
18926
18927         * c-decl.c (c_decode_option): Extend comment.
18928
18929 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
18930
18931         * toplev.c (progname): Make 'const char *'
18932         (flag_print_mem): Move out of main.
18933         (version_flag): Move out of main.
18934         (filename): Move out of main.
18935         (debug_args): Remove g prefix from options.
18936         (documented_lang_options): Remove cpplib specific options.
18937         (display_help): Add g prefix to debug options.
18938         (check_lang_option): Delete this function.
18939         (decode_d_option): New function: Decode -d... option.
18940         (decode_f_option): New function: Decode -f... option.
18941         (decode_W_option): New function: Decode -W... option.
18942         (decode_g_option): New function: Decode -g... option.
18943         (independent_decode_option): New function: Decode a language
18944         independent command line option.
18945         (main): Invoke lang_decode_option and then
18946         independent_decode_option on each command line option in
18947         turn.
18948
18949 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
18950
18951         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
18952          * fold-const.c (fold_range_test): Do not try to fold the range
18953          test if the rhs or lhs has side effects.
18954
18955         * basic-block.h (compute_flow_dominators): Declare.
18956
18957         * gcse.c (alloc_code_hoist_mem): New function.
18958         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
18959         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
18960         (hoist_code, one_code_hoisting_pass): Likewise.
18961         (gcse_main): If optimizing for size, then hoist expressions
18962         computed in multiple dominated basic blocks.
18963
18964         * gcse.c (invalid_nonnull_info): New function.
18965         (delete_null_pointer_checks): Likewise.
18966         * rtl.h (delete_null_pointer_checks): Declare.
18967         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
18968
18969         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
18970         (merge-blocks_move_successor_nojumps): Likewise.
18971         (merge_blocks): Allow merging of some blocks, even if it requires
18972         physical movement of the blocks, but not if it requires new jumps.
18973
18974         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
18975         Callers and prototype changed.
18976         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
18977
18978 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18979
18980         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
18981         -YP when both -p and -pg are present.  From i386/sol2.h.
18982
18983 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18984
18985         * Makefile.in (distclean): Delete tm_p.h.
18986         * configure.in: Create a new file, "tm_p.h", from a list in
18987         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
18988         "i386/i386-protos.h".
18989
18990         * alias.c: Include "tm_p.h".
18991         * c-typeck.c: Likewise.
18992         * calls.c: Likewise.
18993         * cse.c: Likewise.
18994         * emit-rtl.c: Likewise.
18995         * explow.c: Likewise.
18996         * expmed.c: Likewise.
18997         * expr.c: Likewise.
18998         * final.c: Likewise.
18999         * flow.c: Likewise.
19000         * fold-const.c: Likewise.
19001         * function.c: Likewise.
19002         * gcse.c: Likewise.
19003         * global.c: Likewise.
19004         * haifa-sched.c: Likewise.
19005         * integrate.c: Likewise.
19006         * jump.c: Likewise.
19007         * local-alloc.c: Likewise.
19008         * loop.c: Likewise.
19009         * optabs.c: Likewise.
19010         * recog.c: Likewise.
19011         * reg-stack.c: Likewise.
19012         * regclass.c: Likewise.
19013         * regmove.c: Likewise.
19014         * reload.c: Likewise.
19015         * reload1.c: Likewise.
19016         * reorg.c: Likewise.
19017         * resource.c: Likewise.
19018         * stmt.c: Likewise.
19019         * stor-layout.c: Likewise.
19020         * toplev.c: Likewise.
19021         * tree.c: Likewise.
19022         * unroll.c: Likewise.
19023         * genattrtab.c (main): Make generated file include "tm_p.h".
19024         * genemit.c (main): Likewise.
19025         * genoutput.c (main): Likewise.
19026         * genrecog.c (main): Likewise.
19027
19028         * i386.h: Delete all prototypes.
19029         * i386.c: Include "tm_p.h".
19030         (ix86_attr_length_default): Call constant_call_address_operand
19031         with correct number of arguments.
19032         * i386-protos.h: New file.
19033         * i386.md (unnamed patterns): Call constant_call_address_operand
19034         with correct number of arguments.
19035         (exception_receiver): Call load_pic_register with correct number
19036         of arguments.
19037
19038 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
19039
19040         * c-pragma.c (mark_align_stack): Dereference the void* properly.
19041
19042 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
19043
19044         * rtl.h (insns_safe_to_move_p): New function.
19045         * loop.c (find_and_verify_loops): Use it.
19046         * rtlanal.c (insns_safe_to_move_p): Define it.
19047
19048 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
19049
19050         * c-pragma.c: Include ggc.h.
19051         * Makefile.in (c-pragma.o): Update.
19052
19053 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
19054
19055         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
19056         (LIB_SPEC): Likewise.
19057         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
19058         Reindent -YP/-p/-pg.
19059         Copied from config/sparc/sol2.h.
19060
19061 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
19062
19063         * c-pragma.c (mark_align_stack): New.
19064         (init_pragma): New.
19065         * c-pragma.h (init_pragma): Declare it.
19066         * c-lex.c (init_parse): Call it.
19067
19068 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
19069
19070         * configure.in: Pick up thread library on Solaris/x86 just
19071         like on Solaris/sparc.
19072         * configure: Rebuilt.
19073
19074 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
19075
19076         * rtl.h (global_rtx_index): New enum.
19077         (global_rtl): Change to array of rtx.
19078         (pc_rtx, cc0_rtx): Redefine accordingly.
19079         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
19080         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
19081         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
19082         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
19083         (const_int_rtx): Change to array of rtx.
19084         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
19085         accordingly.
19086         * emit-rtl.c (global_rtl): Change to array of rtx.
19087         (const_int_rtx): Change to aray of rtx.
19088         (gen_rtx_CONST_INT): Redefine accordingly.
19089         (init_emit_once): Allocate and initialize global_rtl.  Likewise
19090         for const_int_rtx.  Add both as GC roots.
19091         * genattrtab.c (global_rtl): Update declaration.
19092
19093 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
19094
19095         * Makefile (USER_H): Add iso646.h back.
19096
19097 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
19098
19099         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
19100         zapping the LOG_LINKS of sched_before_next_call.
19101
19102         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
19103         * pa.c (insn_refs_are_delayed): Renamed from
19104         insn_sets_and_refs_are_delayed.
19105
19106 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
19107
19108         * functiion.h (struct function): Add x_whole_function_mode_p.
19109         (retrofit_block): Declare.
19110         * function.c (retrofit_block): New function.
19111         (identify_blocks): Add assertions.  Allow an incomplete set of
19112         block notes if we're still generating code for the function.
19113         * integrate.c: Include loop.h.
19114         (expand_inline_function): Call find_loop_tree_blocks to map block
19115         notes to blocks when in whole-function mode.  Use retrofit_block
19116         to insert new BLOCKs for the inlined function, rather than
19117         insert_block.
19118         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
19119         * Makefile.in (integrate.o): Depend on loop.h.
19120
19121 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
19122
19123         * tree.h (warn_about_unused_variables): Declare.
19124         * stmt.c (warn_about_unused_variables): New function, split out
19125         from ...
19126         (expand_end_bindings): Here.
19127
19128 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
19129
19130         * stmt.c (preserve_subexpressions_p): Don't crash when
19131         current_function->stmt is unset.
19132
19133 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
19134
19135         * stmt.c (expand_start_bindings): Allow callers to pass a flag
19136         indicating that no NOTE_INSN_BLOCK_BEG note is required.
19137         (expand_start_target_temps): Use it.
19138         * except.c (expand_eh_region_start_for_decl): Likewise.
19139         * expr.c (expand_expr): Likewise.
19140
19141 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
19142
19143         * fold-const.c (operand_equal_p): Pay attention to side effects.
19144
19145 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
19146
19147         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
19148         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
19149
19150         * tlink.c (scan_linker_output): Look for keywords before accepting
19151         a mangled name in quotes.
19152
19153 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
19154
19155         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
19156         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
19157
19158 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
19159
19160         * alpha.md: Revert Thu Nov 26 change that came in through the
19161         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
19162         Avoid earlyclobber when possible.
19163
19164 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19165
19166         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
19167
19168         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
19169         Define HAVE_ON_EXIT.
19170
19171 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19172
19173         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
19174         CTYPE_CONV in all ctype macros.
19175
19176         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
19177         from system.h.
19178
19179         * cexp.y (initialize_random_junk): Likewise.
19180
19181         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
19182
19183         * i370.c (handle_pragma): Likewise.
19184
19185         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
19186
19187         * v850.c (override_options): Likewise.
19188
19189         * doprint.c (_doprnt): Likewise.
19190
19191         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
19192         Likewise.
19193
19194         * fixinc/server.c (load_data): Likewise.
19195
19196         * fold-const.c (real_hex_to_f): Likewise.
19197
19198         * genattr.c (write_upcase, gen_attr): Likewise.
19199
19200         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
19201         write_upcase): Likewise.
19202
19203         * genemit.c (print_code): Likewise.
19204
19205         * genopinit.c (gen_insn): Likewise.
19206
19207         * genpeep.c (print_code): Likewise.
19208
19209         * genrecog.c (print_code): Likewise.
19210
19211         * optabs.c (init_libfuncs): Likewise.
19212
19213 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
19214
19215         * haifa-sched.c (sched_analyze): Keep the list of notes organized
19216         in pairs.
19217         (reemit_notes): Likewise.
19218
19219 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
19220
19221         * ggc.h (ggc_root): Move to ggc-common.c.
19222         (roots): Remove.
19223         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
19224         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
19225         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
19226         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
19227         * ggc-common.c (ggc_root): Move from ggc.h.
19228         (roots): Declare, static.
19229         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
19230         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
19231         null or check/set mark bit.
19232         (ggc_mark_roots): New.
19233         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
19234
19235 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
19236
19237         * m32r.c: Include toplev.h.
19238         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
19239         (gen_compare): Rename swap_p to must_swap to match uses.
19240         Add default abort case.
19241         (m32r_output_function_epilogue): Remove unused variables.
19242         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
19243         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
19244         define to empty parameter list.  Update all uses.
19245         (predicate decls): Use enum machine_mode not int.
19246         * m32r.md (movsi): Call abort, not fatal_insn.
19247         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
19248
19249 1999-09-14  Andrew Haley  <aph@cygnus.com>
19250
19251         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
19252         use $0 instead of 0.
19253
19254 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19255
19256         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
19257         computation out of loop over hard regs.
19258
19259 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
19260
19261         * function.c (identify_blocks): Don't shadow a variable in an
19262         outer scope.
19263         * integrate.c (integrate_decl_tree): Don't use pushlevel,
19264         pushdecl, or poplevel to build up the new BLOCK tree.
19265         (expand_inline_function): Likewise.
19266         (integrate_parm_decls): Likewise.
19267
19268 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
19269
19270         * c-typeck.c (qualify_type): Merge qualifiers from both types.
19271
19272 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
19273
19274         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
19275         * invoke.texi: Document this change.
19276
19277 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
19278
19279         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
19280         Free the struct.
19281         (mark_emit_status): Renamed from mark_emit_state.
19282         * except.c (mark_eh_status): Renamed from mark_eh_state.
19283         Check not null before marking.
19284         (free_eh_status): New.
19285         * expr.c (mark_expr_status, free_expr_status): New.
19286         * function.c (free_machine_status): New.
19287         (free_after_parsing): New.
19288         (free_after_compilation): Move bits to free_after_parsing; call
19289         free_eh_status, free_expr_status; zero the marked members of the
19290         function state.
19291         (prepare_function_start): No can_garbage_collect.
19292         Call init_eh_for_function.
19293         (expand_dummy_function_end): Free up current_function state.
19294         (mark_function_status): Renamed from mark_function_state.
19295         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
19296         * function.h (struct function): No can_garbage_collect.
19297         (free_machine_status, free_after_parsing): Declare.
19298         (free_eh_status, free_expr_status): Declare.
19299         * ggc.h (mark_expr_status): Declare.
19300         * stmt.c (free_stmt_status): Free the struct.
19301         (mark_stmt_status): Renamed from mark_stmt_state.
19302         (init_stmt): Don't call init_eh.
19303         (init_stmt_for_function): Don't call init_eh_for_function.
19304         * toplev.c (compile_file): Call init_eh.
19305         (rest_of_compilation): Free basic block info before ggc_collect.
19306         Call free_after_parsing; conditionally call free_after_compilation.
19307         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
19308         Check not null before marking.
19309         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
19310
19311 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
19312
19313         * c-lex.c (yylex): Initialize warn.
19314
19315 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
19316
19317         * pa.c (emit_move_sequence): Properly set the mode of the scratch
19318         register when performing secondary reloads for the SAR register.
19319
19320 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
19321
19322         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
19323         (NOTE_BLOCK): New macro.
19324         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
19325         * function.h (identify_blocks): Change prototype.
19326         * function.c (identify_blocks): Simplify.
19327         (reorder_blocks): Likewise.
19328         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
19329         NOTE_INSN_BLOCK_{BEG,END}.
19330         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
19331         the list of saved notes if the note isn't a
19332         NOTE_INSN_BLOCK_{BEG,END}.
19333         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
19334         NOTE_BLOCK_NUMBER.
19335         (reemit_notes): Adjust recreation of notes to reflect new saved
19336         note structure.
19337         * print-rtl.c (print_rtx): Print the address of the BLOCK when
19338         printing a block note.
19339         * stmt.c (block_vector): Remove.
19340         (find_loop_tree_blocks): Simplify.
19341         (unroll_block_trees): Likewise.
19342         * tree.h (reorder_block): Change prototype.
19343
19344 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
19345
19346         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
19347         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
19348         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
19349         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
19350         (atexit, exit): Simplify.
19351         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
19352         * config/lots: Remove defns of HAVE_ATEXIT.
19353
19354 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
19355
19356         * calls.c (precompute_arguments): Fix typo in comment.
19357         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
19358         TARGET_EXPR.
19359
19360 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
19361
19362         * dsp16xx.c (override_options): Fix typos in GC root registration.
19363
19364 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
19365
19366         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
19367         from config/svr4.h.
19368         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
19369         (FUNCTION_PROFILER): Redefine appropriately for Linux.
19370         (CC1_SPEC): Likewise.
19371
19372 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19373
19374         * genattr.c (main): Add extern prototype.  Call return, not exit.
19375         * genattrtab.c (main): Likewise.
19376         * gencheck.c (main): Likewise.
19377         * gencodes.c (main): Likewise.
19378         * genconfig.c (main): Likewise.
19379         * genemit.c (main): Likewise.
19380         * genextract.c (main): Likewise.
19381         * genflags.c (main): Likewise.
19382         * gengenrtl.c (main): Likewise.
19383         * genopinit.c (main): Likewise.
19384         * genoutput.c (main): Likewise.
19385         * genpeep.c (main): Likewise.
19386         * genrecog.c (main): Likewise.
19387
19388         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
19389         * genattrtab.c (get_insn_name): Likewise.
19390         * gencodes.c (get_insn_name): Likewise.
19391         * genconfig.c (get_insn_name): Likewise.
19392         * genemit.c (get_insn_name): Likewise.
19393         * genextract.c (get_insn_name): Likewise.
19394         * genflags.c (get_insn_name): Likewise.
19395         * genopinit.c (get_insn_name): Likewise.
19396         * genpeep.c (get_insn_name): Likewise.
19397
19398         * gencheck.c (usage): Add static prototype.
19399         * genextract.c (print_path): Constify a char*.
19400         * genopinit.c (optabs): Likewise.
19401         * genoutput.c (operand_data, data, output_predicate_decls,
19402         compare_operands): Likewise.
19403         * genrecog.c (write_tree): Add default case in switch.
19404
19405 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19406
19407         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
19408
19409         * print-rtl.c (get_insn_name): Remove prototype.
19410
19411         * toplev.h (progname): Declare const.
19412
19413         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
19414         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
19415         dump_sched_info, dump_local_alloc, regset_release_memory,
19416         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
19417         error_with_file_and_line, error_with_decl, error_for_asm, error,
19418         fatal, warning_with_file_and_line, warning_with_decl, warning,
19419         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
19420         Remove redundant prototypes.
19421
19422         (notice, check_lang_option, report_file_and_line, vnotice,
19423         mark_file_stack): Add static prototype.
19424         (set_fatal_function): Add prototype.
19425         (vnotice, report_file_and_line, set_fatal_function,
19426         check_lang_option): Constify a char*.
19427         (main): Prototype.  Call return, not exit.
19428
19429 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19430
19431         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
19432
19433         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
19434
19435         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
19436
19437         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
19438
19439 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19440
19441         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
19442         behave as if it's zero in all cases.
19443         (expand_function_start): Adjust call to assign_parms.
19444         * tree.h (assign_parms): Adjust prototype.
19445         * objc/objc-act.c (hack_method_prototype): Adjust call to
19446         assign_parms.
19447
19448 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
19449
19450         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
19451         arg_pointer_rtx fixed if the argument pointer register is
19452         not fixed.
19453         (NONZERO_BASE_PLUS_P): Likewise.
19454
19455 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
19456
19457         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
19458         match_insn2 to match_insn.
19459         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
19460
19461 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
19462
19463         * Makefile.in (USER_H): Remove va-foo.h.
19464
19465         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
19466         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
19467         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
19468         va-spur.h,va-v850.h}: Remove.
19469
19470 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
19471
19472         * sparc/sparc.md (eligible_for_return_delay): New attribute.
19473         (in_return_delay): Use it instead of match_insn.
19474
19475 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
19476
19477         * config/alpha/va_list.h (va-alpha.h): Do not include.
19478         (__gnuc_va_list): Typedef as in varargs.h.
19479
19480 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
19481
19482         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
19483         DECL_LIVE_RANGE_RTL.
19484
19485 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
19486
19487         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
19488         not NOTE_BLOCK_NUMBER.
19489         (expand_eh_region_end): Likewise.
19490         (find_exception_handler_labels): Likewise.
19491         (scan_region): Likewise.
19492         (exception_optimize): Likewise.
19493         (update_rethrow_references): Likewise.
19494         (set_insn_eh_region): Likewise.
19495         * final.c (final_scan_insn): Likewise.
19496         * flow.c (make_edges): Likewise.
19497         * integrate.c (expand_inline_function): Likewise.
19498         * print-rtl.c (print_rtx): Likewise.
19499
19500 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
19501
19502         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
19503         terms of builtin functions and types.
19504
19505         * mips.c (mips_build_va_list): New.
19506         (mips_va_start, mips_va_arg): New.
19507         * mips.h (BUILD_VA_LIST_TYPE): New.
19508         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
19509
19510         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
19511         (sh_build_va_list, sh_va_start, sh_va_arg): New.
19512         * sh.h (BUILD_VA_LIST_TYPE): New.
19513         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
19514
19515 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
19516
19517         * recog.h (struct recog_data): Make dup_num, operand_address_p,
19518         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
19519         (struct insn_data): Likewise with n_operands, n_dups,
19520         n_alternatives, output_format.
19521         * regclass.c (scan_one_insn): Cast n_operands to int before
19522         arithmetic inside comparison.
19523
19524 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
19525
19526         * toplev.c (compile_function): Unconditionally emit nop.
19527
19528 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19529
19530         * haifa-sched.c (actual_hazard): Move declaration of variable
19531         `this_cost' into the scope where it is used.
19532
19533 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19534
19535         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
19536         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
19537         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
19538
19539         * genrecog.c (make_insn_sequence): Call memset, not bzero.
19540
19541         * jump.c (find_insert_position): Don't declare or define unless
19542         !HAVE_conditional_arithmetic.
19543         (returnjump_p_1, delete_prior_computation): Add static prototypes.
19544
19545         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
19546
19547         * recog.c (offsettable_address_p): Prototype function pointer.
19548         (preprocess_constraints): Call memset, not bzero.
19549
19550         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
19551         (gcc_obstack_init): Don't declare.
19552         (fix_sizetype): Add static prototype.
19553         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
19554         (tree_cons): Call memset, not bzero.
19555
19556         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
19557         definition in macro ASM_WEAKEN_LABEL.
19558         (mark_const_hash_entry): Add static prototype.
19559
19560 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19561
19562         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
19563
19564         * unroll.c (find_common_reg_term, subtract_reg_term,
19565         loop_find_equiv_value): Add static prototypes.
19566         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
19567         (copy_loop_body): Remove unreachable break statement.
19568
19569         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
19570
19571         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
19572
19573 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19574
19575         Undo some changes from the gcc2 merge:
19576         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
19577         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
19578         pointers.
19579
19580         Undo this change:
19581         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
19582         * emit-rtl.c (gen_lowpart_common): Disable optimization of
19583         initialized float-int union if the value is a NaN.
19584
19585 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
19586
19587         * gthr-win32.h: New file.
19588
19589         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
19590         shared as a valid attribute.
19591         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
19592         * extend.texi: Document `shared' variable attribute.
19593
19594 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
19595
19596         * configure.in: Handle --enable-threads on FreeBSD.
19597         * configure: Rebuit.
19598
19599 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
19600
19601         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
19602         thread support.
19603         * configure: Rebuilt.
19604
19605 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
19606                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
19607                           Rosimildo DaSilva <rdasilva@connecttel.com>
19608
19609         * configure.in (m68k-*-rtemscoff*): Added.
19610         * configure.in (mips64orion-*-rtems*): Converted to ELF.
19611         * configure.in (sparc-*-rtemsaout*): Added as alias for old
19612         sparc-rtems configuration.
19613         * configure.in (sparc-*-rtemself*): Added.
19614         * configure.in (sparc-*-rtems*): Now ELF not a.out.
19615         * config/i386/rtems.h: Added comment.
19616         * config/sparc/rtemself.h: New file.
19617
19618         * configure.in (m68k-rtemself): Added.
19619         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
19620         and DWARF_DEBUGGING_INFO.
19621         * config/m68k/crti.s: New file.
19622         * config/m68k/crtn.s: New file.
19623         * config/m68k/t-crtstuff: New file.
19624         * config/m68k/rtemself.h: New file.
19625
19626         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
19627         global ctor/dtor and C++ exception handling.
19628         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
19629         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
19630         ENDFILE_SPEC.
19631         * config/i386/t-rtems-i386: New File.
19632
19633 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
19634
19635         * stmt.c (expand_end_case): Return right away if the case stack is
19636         empty.
19637
19638 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
19639
19640         * Makefile.in (version.c): Remove rule incorrectly brought in from
19641         the gcc2 merge.
19642
19643 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
19644
19645         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
19646         * msdos/top.sed:  Take into account a prepended $(SHELL) to
19647         move-if-change.
19648         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
19649
19650         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
19651
19652 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19653
19654         * regmove.c (fixup_match_1): Don't change an unchanging register.
19655         (stable_but_for_p): Renamed to:
19656         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
19657         Changed all callers.
19658
19659 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
19660
19661         * loop.c (strength_reduce): Don't call reg_used_between_p if the
19662         insn from BL2 is after the insn from BL.
19663
19664 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
19665
19666         * recog.h (INSN_OUTPUT_FORMAT_*): New.
19667         (struct insn_data): Merge `template' and `outfun' into `output'.
19668         Add `output_format'.
19669         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
19670         (struct data): Remove `outfun'; add `output_format'.
19671         (name_for_index): Remove declaration.
19672         (output_insn_data): Handle output formats.
19673         (process_template): Emit the bare array for @.
19674         (gen_expand, gen_split): Set output_format to NONE.
19675         * output.h (get_insn_template): Declare.
19676         * final.c (get_insn_template): New.
19677         (final_scan_insn): Use it.
19678         * toplev.c (compile_file): Likewise.
19679
19680         * c4x/c4x.c (c4x_process_after_reload): Likewise.
19681         * i860/i860.c (output_delayed_branch): Likewise.
19682         (output_delay_insn): Likewise.
19683
19684 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
19685
19686         * rtl.c (obstack_alloc_rtx): Removed.
19687
19688 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
19689
19690         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
19691
19692 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
19693
19694         * i386.c (call_insn_operand): Reject const_int.
19695         (expander_call_insn_operand): Use call_insn_operand.
19696
19697 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19698
19699         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
19700
19701 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
19702
19703         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
19704         Use DImode operation.
19705
19706 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
19707
19708         * gcc.c: Include sys/resource.h.
19709         (report_times): New flag.
19710         (execute):  If report_times is set, calculate and report the
19711         CPU time consumed by each subprocess.
19712
19713         (rus, prus): New globals.
19714         (option_map): Add --time.
19715         (display_help): Document -time.
19716         (process_command): Set report_times if -time is given.
19717         Turn off -pipe if -time is given.
19718
19719         * invoke.texi: Document new option -time.
19720
19721         * configure.in: Check for getrusage.  Check if we have to
19722         prototype getrusage.
19723         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
19724         * configure: Regenerate.
19725         * config.in: Regenerate.
19726
19727 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
19728
19729         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
19730         fields.
19731
19732 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
19733
19734         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
19735         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
19736         (nan): Return _thenan_sf or _thenan_df as appropriate.
19737         (L_thenan_sf): Define _thenan_sf.
19738         (L_thenan_df): Define _thenan_df.
19739
19740         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
19741         (DPBIT_FUNCS): Add _thenan_df.
19742
19743 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
19744
19745         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
19746         TYPE_SIZE_UNIT.
19747
19748 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19749
19750         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
19751
19752         * gcc.h: New file.
19753         (lang_specific_driver): Don't take a function pointer parameter.
19754         All callers changed.
19755
19756         * gcc.c: Include gcc.h.
19757         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
19758         lang_specific_extra_outfiles, fatal): Don't declare.
19759         (multilib_defaults_raw): Constify.
19760         (read_specs): Call memset, rather than bzero.
19761         (main): Call return, not exit.
19762         (lookup_compiler): Call memcpy, not bcopy.
19763         (fatal): Make extern.
19764
19765         * cppspec.c: Include gcc.h.
19766         (lang_specific_driver): Initialize variable `quote'.  Constify a
19767         char*.  All calls to the function pointer parameter now
19768         explicitly call `fatal'.
19769
19770         * gccspec.c (lang_specific_driver): Include gcc.h.
19771
19772 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
19773
19774         * arm.c (note_invalid_constants): Use recog_data.operand_type
19775         for recog_op_type.
19776
19777 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19778
19779         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
19780         Declare.
19781
19782         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
19783         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
19784         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
19785         reload_secondary_in_reload, reload_secondary_out_reload,
19786         reload_secondary_in_icode, reload_secondary_out_icode,
19787         reload_reg_rtx, reload_when_needed): Delete declarations.
19788         (struct reload): New structure.
19789         (rld): Declare new array.
19790         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
19791         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
19792         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
19793         reload_secondary_in_reload, reload_secondary_out_reload,
19794         reload_secondary_in_icode, reload_secondary_out_icode,
19795         reload_reg_rtx, reload_when_needed): Delete definitions.
19796         (rld): New array.
19797         (whole file): Replace uses of the deleted arrays with uses of rld.
19798         * reload1.c (whole file): Replace uses of the deleted arrays with
19799         uses of rld.
19800         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
19801         explicit loops, not with bcopy.
19802
19803 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
19804
19805         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
19806         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
19807         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
19808         insn_name): Delete and consolidate into new structures.
19809         (insn_operand_predicate_fn): New.
19810         (insn_output_fn): New.
19811         (insn_gen_fn): New.
19812         (struct insn_operand_data): New.
19813         (struct insn_data): New.
19814         (insn_data): New.
19815         (OUT_FCN): Update for insn_data change.
19816         * builtins.c (expand_builtin_strlen): Likewise.
19817         (expand_builtin_memcmp): Likewise.
19818         * combine.c (make_extraction, simplify_comparison): Likewise.
19819         * cse.c (canon_reg, cse_insn): Likewise.
19820         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
19821         * expmed.c (store_bit_field, extract_bit_field): Likewise.
19822         (emit_store_flag): Likewise.
19823         * expr.c (convert_move, emit_block_move): Likewise.
19824         (clear_storage, emit_push_insn, expand_increment): Likewise.
19825         (do_store_flag): Likewise.
19826         * expr.h (GEN_FCN): Likewise.
19827         (insn_gen_function): Die.
19828         * final.c (final_scan_insn): Update for insn_data change.
19829         (output_asm_name): Likewise.
19830         * function.c (fixup_var_refs_1): Likewise.
19831         * loop.c (check_dbra_loop): Likewise.
19832         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
19833         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
19834         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
19835         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
19836         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
19837         * regmove.c (gen_add3_insn): Likewise.
19838         * reload.c (push_secondary_reload, combine_reloads): Likewise.
19839         (find_reloads, find_reloads_address_1): Likewise.
19840         (debug_reload_to_stream): Likewise.
19841         * reload1.c (emit_reload_insns, gen_reload): Likewise.
19842         * stmt.c (expand_end_case): Likewise.
19843         * toplev.c (compile_file): Likewise.
19844
19845         * c4x/c4x.c (c4x_process_after_reload): Likewise.
19846         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
19847
19848         * print-rtl.c (insn_name_ptr): Remove declaration.
19849         (get_insn_name): Declare.
19850         (print_rtx): Use it.
19851         * genoutput.c (insn_name_ptr): Remove.
19852         (next_operand_number): New.
19853         (struct operand_data): New.
19854         (null_operand, odata, odata_end): New.
19855         (struct data): Use struct operand_data.
19856         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
19857         (get_insn_name): Renamed from name_for_index.
19858         (output_prologue): Define NO_MD_PROTOTYPES.
19859         (output_predicate_decls): Break out from output_epilogue.
19860         Iterate over the operands list.
19861         (output_operand_data): Break out from output_epilogue.  Emit
19862         just the operands list.
19863         (output_insn_data): Break out from output_epilogue.  Emit just
19864         the insn data.
19865         (output_epilogue): Remove.
19866         (output_get_insn_name): New.
19867         (constraints, op_n_alternatives, predicates, address_p): Die.
19868         (modes, strict_low, seen): Die.
19869         (scan_operands): Take new param `d' instead of writing to
19870         seven global variables.
19871         (compare_operands): New.
19872         (place_operands): New.
19873         (validate_insn_alternatives): Update for struct data change.
19874         (gen_insn): Don't zero or copy 7 global arrays.  Update for
19875         scan_operands; call place_operands.
19876         (gen_peephole, gen_expand, gen_split): Likewise.
19877         (main): Update for new output routines.
19878
19879         * genattr.c (insn_name_ptr): Remove.
19880         (get_insn_name): New function.
19881         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
19882         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
19883         * genrecog.c: Likewise.
19884
19885         * alpha.md (adddi3): Make `pattern' array static.
19886
19887 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19888
19889         * config/c4x/c4x.h (c4x_rpts_cycles_string,
19890         c4x_cpu_version_string): Constify char *.
19891         * config/c4x/c4x.c (c4x_rpts_cycles_string,
19892         c4x_cpu_version_string): Likewise.
19893
19894 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
19895
19896         * tree.c (save_tree_status): Revert 10 Sep change.
19897         (restore_tree_status): Likewise.  Call obstack_free with NULL
19898         before freeing the obstack proper.
19899
19900 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
19901
19902         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
19903
19904         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
19905         surrounding context.
19906
19907 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
19908
19909         * tree.c (type_hash_canon): Put all types in the hash-table, when
19910         GC'ing.
19911
19912 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
19913
19914         * recog.h (struct recog_data, recog_data): New.
19915         (recog_foo variables): Kill.
19916         * recog.c (recog_operand, recog_operand_loc): Kill.
19917         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
19918         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
19919         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
19920         (recog_data): Define.
19921         (extract_insn): Update all recog_foo references to use recog_data.
19922         (preprocess_constraints, constrain_operands): Likewise.
19923         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
19924         * genattrtab.c (main): Likewise.
19925         * genextract.c (main): Likewise.
19926         * genoutput.c: Likewise.
19927         * genrecog.c (write_subroutine, main): Likewise.
19928         * local-alloc.c (block_alloc): Likewise.
19929         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
19930         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
19931         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
19932         * reload.c (find_reloads, find_reloads_toplev): Likewise.
19933         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
19934         (reload_cse_simplify_operands): Likewise.
19935
19936         * arc/arc.c (arc_final_prescan_insn): Likewise.
19937         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
19938         * h8300/h8300.c (notice_update_cc): Likewise.
19939         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
19940         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
19941         * mn10200/mn10200.c (notice_update_cc): Likewise.
19942         * mn10300/mn10300.c (notice_update_cc): Likewise.
19943         * romp/romp.c (update_cc): Likewise.
19944         * sparc/sparc.c (check_pic): Likewise.
19945         * v850/v850.c (notice_update_cc): Likewise.
19946
19947         * genemit.c (main): Don't declare recog_operand.
19948
19949 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
19950
19951         * ggc.h (rtvec_def): Forward declare.
19952         (tree_node): Likewise.
19953         (ggc_root): Define.
19954         (roots): Declare.
19955         (ggc_set_mark_rtx): Add prototype.
19956         (ggc_set_mark_rtvec): Likewise.
19957         (ggc_set_mark_tree): Likewise.
19958         * ggc-simple.c (ggc_root): Don't define.
19959         (roots): Don't declare.
19960         (ggc_mark_rtx): Remove.
19961         (ggc_mark_rtvec): Likewise.
19962         (ggc_mark_tree): Likewise.
19963         (ggc_mark_varray): Likewise.
19964         (ggc_mark_tree_hash_table_entry): Likewise.
19965         (ggc_mark_tree_hash_table): Likewise.
19966         (ggc_set_mart_rtx): New function.
19967         (ggc_set_mark_rtvec): Likewise.
19968         (ggc_set_mark_tree): Likewise.
19969         (ggc_add_root): Remove.
19970         (ggc_add_rtx_root): Likewise.
19971         (ggc_remove_tree_root): Likewise.
19972         (ggc_add_string_root): Likewise.
19973         (ggc_add_tree_varray_root): Likewise.
19974         (ggc_add_tree_hash_table_root): Likewise.
19975         (ggc_del_root): Likewise.
19976         (ggc_mark_rtx_ptr): Likewise.
19977         (ggc_mark_tree_ptr): Likewise.
19978         (ggc_mark_string_ptr): Likewise.
19979         (ggc_mark_tree_varray_ptr): Likewise.
19980         (ggc_mark_tree_hash_table_ptr): Likewise.
19981         * ggc-common.c: New file.
19982         * Makefile.in (OBJS): Add ggc-common.o.
19983         (ggc-common.o): List dependencies.
19984
19985 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
19986
19987         * cppalloc.c (xstrdup): Use memcpy.
19988         * cpperror.c (cpp_print_containing_files): Don't use
19989         cpp_notice.
19990         * cpplib.c (conditional_skip): Set temp->lineno.
19991         (do_endif): Make error message less obscure.
19992         (if_directive_name): New function.
19993         (cpp_get_token [case EOF]): Unwind the if stack and generate
19994         error messages for each unterminated conditional in this file.
19995         (parse_string):  Do not behave differently if -traditional.
19996
19997 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
19998
19999         * builtins.c (expand_builtin_va_arg): Cope with an array-type
20000         va_list decomposing to pointer-type.
20001         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
20002         (rs6000_va_arg): Likewise.
20003
20004 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
20005
20006         * except.c (start_dynamic_handler): Compute size using
20007         STACK_SAVEAREA_MODE.
20008
20009 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20010
20011         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
20012         include directory headers.  Don't define strrchr.  Don't provide
20013         my_* replacement functions.  Prefer PTR over `pointer_type'.
20014         Don't prototype system functions.  Don't redefine getopt.
20015
20016         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
20017         safe_read, safe_write, save_pointers, restore_pointers,
20018         is_id_char, in_system_include_dir, directory_specified_p,
20019         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
20020         find_corresponding_lparen, referenced_file_is_newer,
20021         save_def_or_dec, munge_compile_params, gen_aux_info_file,
20022         process_aux_info_file, identify_lineno, check_source,
20023         seek_to_line, forward_to_next_token_char, output_bytes,
20024         output_string, output_up_to, other_variable_style_function,
20025         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
20026         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
20027         find_static_definition, connect_defs_and_decs, add_local_decl,
20028         add_global_decls, needs_to_be_converted, visit_each_hash_node,
20029         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
20030         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
20031         scan_for_missed_items, edit_file, string_list_cons): Add static
20032         prototypes.
20033         (standard_exec_prefix, target_machine, target_version,
20034         default_syscalls_dir, string_list, string_list_cons, find_file,
20035         do_cleaning): Constify a char*.
20036         (safe_read, safe_write): Use PTR, not a char*.
20037         (is_id_char): Take an int, not a char.
20038         (main): Add prototype.  Call return, not exit.
20039
20040 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
20041
20042         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
20043         when comparing types.
20044
20045 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
20046
20047         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
20048         (strength_reduce): Release the varrays from the no-bivs early exit.
20049
20050         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
20051         the loop over the registers.
20052
20053         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
20054         for a new obstack.
20055         (restore_tree_status): Check that instead when freeing the obstack.
20056
20057 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
20058
20059         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
20060         as pointers.
20061
20062 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20063
20064         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
20065         operand size modifiers.
20066
20067 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20068
20069         * c-common.c (c_common_nodes_and_builtins): Don't build
20070         va_list_type_node.
20071         * c-common.h (enum c_tree_index and related accesor macros): Remove
20072         everything now declared in tree.h.
20073         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
20074         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
20075         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
20076         (error_mark_node, void_type_node, char_type_node, integer_type_node,
20077         unsigned_type_node, ptr_type_node, va_list_type_node,
20078         integer_zero_node, null_pointer_node, integer_one_node): Delete.
20079         (init_decl_processing): Call build_common_tree_nodes and
20080         build_common_tree_nodes_2 instead of building their nodes here.
20081         Don't add roots for these nodes.
20082         * stor-layout.c (size_zero_node, size_one_node): Delete.
20083         (set_sizetype): Make a new node for bitsizetype each time.
20084         * tree.c (global_trees): New variable.
20085         (init_obstacks): Add a gc root for it.
20086         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
20087         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
20088         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
20089         (build_common_tree_nodes): New function.
20090         (fix_sizetype): New function.
20091         (build_common_tree_nodes_2): New function.
20092         * tree.h (enum tree_index): New.
20093         (global_trees): Declare.
20094         Add accessor macros for all nodes now moved to global_trees.
20095         Delete their declarations.
20096
20097 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
20098
20099         * c-decl.c (finish_function): When processing a nested function,
20100         push and pop GC context around rest_of_compilation.
20101
20102 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
20103
20104         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
20105         Default ix86_arch to PROCESSOR_I386.
20106         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
20107         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
20108         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
20109         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
20110         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
20111         (EXTRA_SPECS): Remove deleted specs.
20112
20113 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
20114
20115         * function.c (assign_stack_local_1): Allocate from
20116         function->x_frame_offset, not frame_offset.
20117
20118 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
20119
20120         * ggc.h (lang_cleanup_tree): Remove.
20121         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
20122         * ggc-callbacks.c (lang_cleanup_tree): Remove.
20123
20124         * c-decl.c (finish_struct): Use ggc_alloc to allocate
20125         TYPE_LANG_SPECIFIC when garbage collecting.
20126         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
20127         (lang_cleanup_tree): Remove.
20128
20129 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
20130
20131         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
20132         * crtstuff.c: Not here.
20133         * dwarf2out.c: Or here.
20134         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
20135         info.
20136
20137 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
20138
20139         * function.h (free_after_compilation): Remove decl parameter.
20140         (free_varasm_status0: Likewise.
20141         (free_emit_status): Likewise.
20142         (free_stmt_status): Likewise.
20143         (free_after_compilation): Likewise.
20144         (init_lang_status): New variable.
20145         (free_lang_status): Likewise.
20146         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
20147         * function.c (init_lang_status): New variable.
20148         (free_lang_status): Likewise.
20149         (push_function_context_to): Don't set function::decl here.
20150         (free_after_copmilation): Make decl parameter implicit.  Call
20151         free_lang_status if defined.
20152         (prepare_function_start): Call init_lang_status if defined.
20153         (init_function_start): Set function::decl here.
20154         * profile.c (output_func_start_profiler): Don't call pushdecl
20155         until we've actually started the function.
20156         * stmt.c (free_stmt_status): Make decl parameter implicit.
20157         * toplev.c (rest_of_compilation): Don't pass decl to
20158         free_after_compilation.
20159         * varasm.c (free_varasm_status): Likewise.
20160
20161 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20162
20163         * except.c (call_get_eh_context): Add root when allocating static
20164         tree variable.
20165
20166 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
20167
20168         * arm.c: Include "ggc.h".
20169         (arm_add_gc_roots): New function.
20170         (arm_override_options): Call it.
20171         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
20172
20173         * arm.md (define_asm_attributes): Add a pool_range attribute.
20174
20175 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
20176
20177         * extend.texi (Volatiles): New node.
20178
20179 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
20180
20181         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
20182         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
20183         (struct ggc_any): Replace `mark' with `magic_mark'.
20184         (ggc_alloc_string): Use memcpy, not bcopy.
20185         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
20186         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
20187         (ggc_free_any): New.
20188         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
20189         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
20190         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
20191         Use IS_MARKED. Use ggc_free_any.
20192
20193 1999-09-09  Scott Bambrough <scottb@netwinder.org>
20194
20195         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
20196
20197 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
20198
20199         * toplev.c (main): Always init_ggc.
20200
20201 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
20202
20203         * except.c (find_all_handler_type_matches): Free the list if
20204         we found no matches.
20205
20206         * combine.c (SUBST): Break out to a real function do_SUBST.
20207         (SUBST_INT): Likewise.
20208         * gcse.c (free_pre_mem): Free `temp_bitmap'.
20209         (pre_insert): Free `inserted'.
20210         * loop.c (basic_induction_var): Always set `location'.
20211
20212         * function.c (expand_function_end): Add initial_trampoline as a root.
20213         * rtl.h (init_varasm_once): Declare.
20214         * toplev.c (compile_file): Call it.
20215         * ggc-simple.c (ggc_mark_string_ptr): New.
20216         (ggc_add_string_root): New.
20217         (ggc_collect): Disable collection avoidance temporarily.
20218         * ggc.h (ggc_add_string_root): Declare.
20219         * except.c (create_rethrow_ref): Use ggc_alloc_string.
20220         * optabs.c (init_libfuncs): Likewise.
20221         * varasm.c (named_section): Use ggc_alloc_string.
20222         (make_function_rtl): Likewise.
20223         (make_decl_rtl): Likewise.
20224         (assemble_static_space): Likewise.
20225         (assemble_trampoline_template): Likewise.
20226         (output_constant_def): Likewise.
20227         (force_const_mem): Likewise.
20228         (mark_const_hash_entry): New.
20229         (mark_pool_sym_hash_table): New.
20230         (mark_varasm_state): Use it.
20231         (init_varasm_once): New.
20232
20233         * expr.h (init_one_libfunc): Declare.
20234         * optabs.c (init_one_libfunc): New.
20235         (init_optabs): Use it.
20236         * config/gofast.h: Likewise.
20237         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
20238         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
20239
20240 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
20241
20242         * Makefile.in (cppexp.o): Depend on cpphash.h.
20243         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
20244         Include cpphash.h.
20245         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
20246         * cpplib.c (do_define): Generalise to handle poisoned definitions,
20247         redefining poisoned identifiers, etc.
20248         (do_undef): Don't allow poisoned identifiers to be undefined.
20249         (do_pragma): Add #pragma poison.
20250         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
20251
20252         * cccp.c: Add T_POISON node type.
20253         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
20254         poisoned xxx.
20255         (do_define): Generalise to handle poisoned definitions,
20256         redefining poisoned identifiers, etc.
20257         (do_undef): Don't allow poisoned identifiers to be undefined.
20258         (do_pragma): Add #pragma poison.
20259         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
20260
20261         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
20262         * c-pragma.h: Add ps_poison state.  We now always have generic
20263         pragmas.
20264
20265 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
20266
20267         * ggc.h (ggc_alloc): New function.
20268         (ggc_mark): Likewise.
20269         * ggc-simple.c (ggc_any): New structure.
20270         (ggc_status): Add anys.
20271         (n_anys_collected): New variable.
20272         (ggc_alloc): Define.
20273         (ggc_mark): Likewise.
20274         (ggc_collect): Collect the anys.
20275
20276 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20277
20278         * c-decl.c (mark_binding_level): Make static to match prototype.
20279
20280 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
20281
20282         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
20283
20284 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
20285
20286         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
20287         will use into account.  Expand the max width to 5.
20288         * rtl.c: Likewise.
20289
20290 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
20291
20292         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
20293         for the rtx length.
20294
20295 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
20296
20297         * alpha.md (call value patterns): Remove the result predicates.
20298
20299 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
20300
20301         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
20302         last change.
20303
20304 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20305
20306         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
20307         changed from extern char *, to extern PTR.  Also fix typo in
20308         NEED_DECLARATION_REALLOC test.
20309
20310         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
20311
20312 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20313
20314         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
20315         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
20316         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
20317         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
20318
20319         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
20320
20321         * cccp.c (pcfinclude): Likewise.
20322
20323         * global.c (allocno_compare): Likewise.
20324
20325         * haifa-sched.c (rank_for_schedule): Likewise.
20326
20327         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
20328
20329         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
20330
20331         * stupid.c (stupid_reg_compare): Likewise.
20332
20333         * tree.c (_obstack_allocated_p): Likewise.
20334
20335         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
20336
20337 1999-09-08  Bruce Korb  autogen@linuxbox.com
20338
20339         * Makefile.in: Give the hapless gperf user a hint about
20340         why "gperf -F" fails.
20341
20342 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
20343
20344         * lists.c: Include ggc.h.
20345         (zap_lists): New.
20346         (init_EXPR_INSN_LIST_cache): Install it.
20347
20348         * ggc-simple.c (init_ggc): Absorb the old init.
20349         (ggc_push_context): Use xcalloc.
20350         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
20351         (ggc_collect): Add [rvts] tags to the collection stats.
20352
20353 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
20354
20355         * cccp.c (main): Fix handling of -include and -imacros options.
20356
20357 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
20358
20359         * cpplib.c (cpp_push_buffer): Fix order of arguments.
20360
20361 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
20362
20363         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
20364         genrtl.c.
20365
20366 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
20367
20368         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
20369         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
20370         and SET_DEST. Update comment.
20371
20372 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20373
20374         * config/c4x/c4x.c: Include ggc.h.
20375         (c4x_add_gc_roots): New function.
20376         (c4x_override_options): Call c4x_add_gc_roots.
20377
20378 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
20379
20380         * defaults.h (TARGET_ESC): Move ...
20381         * system.h: ... here, where Linas had it in the first place.  Silly me.
20382
20383 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
20384
20385         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
20386         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
20387         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
20388         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
20389         * defaults.h (TARGET_ESC): Add default.
20390
20391 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
20392
20393         * configure.in: add i370-*-openedition, i370-*-mvs and
20394         i370-*-linux targets
20395
20396 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
20397
20398         * dsp16xxx.c: Include ggc.h
20399         (override_options): Mark GC roots.
20400         * mn10200.c: Include ggc.h.
20401         (asm_file_start): Mark GC roots.
20402         * tahoe.c: Include ggc.h.
20403         (extensible_operand): Mark GC roots.
20404
20405 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
20406
20407         * README: Add section discussing status of ELF ABI.
20408         * i370.c: Fix misc spelling mistakes.
20409         (i370_label_scan): Updated notes, exception handling.
20410         (i370_function_prolog): Simplify ELF stack handling.
20411         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
20412         (STACK_GROWS_DOWNWARD): ELF stack grows down.
20413         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
20414         * i370.md: (movdi): Add notes.
20415         (floatsidf2): Use stack not rtca for scratch float area.
20416         (iorsi3): Correct operand constraints.
20417         * x-oe: Restore TAROUTOPTS which are used by pax.
20418
20419 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
20420
20421         * rs6000.c: Include ggc.h.
20422         (rs6000_add_gc_roots): New function.
20423         (override_options): Call it.
20424
20425 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
20426
20427         * alpha.h (alpha_compare): New.
20428         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
20429         * alpha.c: Likewise for the definitions.
20430         (alpha_emit_conditional_branch): Update for alpha_compare.
20431         (alpha_emit_conditional_move): Likewise.
20432         * alpha.md (cmpdf, cmpdi): Likewise.
20433         (setcc patterns): Likewise.  Zero alpha_compare after use.
20434         (sne): Optimize (x != 0) into (0U < x).
20435
20436 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
20437
20438         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
20439         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
20440         (INIT_EXPANDERS): Remove.
20441         * alpha.c: Include ggc.h.
20442         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
20443         (alpha_init_machine_status, alpha_mark_machine_status): New.
20444         (override_options): Install them.
20445         (struct machine_function): Moved to alpha.h.
20446         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
20447         (alpha_init_expanders): Remove.
20448         (alpha_return_addr): Adjust to use current_function->machine.
20449         (alpha_ra_ever_killed): Likewise.
20450         (alpha_expand_epilogue): Likewise.
20451         * alpha.md (eh_epilogue): Likewise.
20452
20453 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
20454                           Melissa O'Neill  <oneill@cs.sfu.ca>
20455                           Geoffrey Keating  <geoffk@cygnus.com>
20456
20457         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
20458         call-used registers (call-saved registers must still be contiguous
20459         and end with r31, of course).
20460
20461 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
20462
20463         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
20464         (self_promoting_type_p): Delete.
20465         (self_promoting_args_p): Move ...
20466         * c-common.c: ... here.
20467         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
20468         (simple_type_promotes_to): New.
20469         * builtins.c (lang_type_promotes_to): New.
20470         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
20471         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
20472         * c-common.h: ... here.
20473         (self_promoting_args_p, simple_type_promotes_to): Declare.
20474         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
20475         (grokdeclarator): Likewise.
20476         * tree.h (lang_type_promotes_to): Declare.
20477
20478 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
20479
20480         Add some machine-dependent GC roots.
20481         * sparc.c: Include ggc.h.
20482         (sparc_add_gc_roots): New function.
20483         (mark_ultrasparc_pipeline_state): Likewise.
20484         (override_options): Call sparc_add_gc_roots.
20485         * pa.c: Include ggc.h.
20486         (pa_add_gc_roots): New function.
20487         (mark_deferred_plabels): Likewise.
20488         (override_options): Call pa_add_gc_roots.
20489         * mips.c: Include ggc.h.
20490         (mips_add_gc_roots): New function.
20491         (override_options): Use it.
20492
20493 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20494
20495         * cpperror.c (cpp_file_line_for_message): Constify a char*.
20496
20497         * cppexp.c (parse_number, parse_charconst, cpp_lex,
20498         cpp_parse_expr): Add static prototypes.
20499         (parse_charconst): Don't cast away const-ness.
20500         (token): Constify a char*.
20501
20502         * cppfiles.c (file_name_list, include_hash, find_include_file,
20503         finclude, initialize_input_buffer): Constify a char*.
20504         (file_cleanup, find_position): Add static prototypes.
20505
20506         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
20507         collect_expansion): Add static prototypes.
20508         (cpp_install, create_definition, monthnames): Constify a char*.
20509
20510         * cpphash.h (cpp_install): Likewise.
20511
20512         * cppinit.c (known_suffixes, default_include,
20513         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
20514         (base_name, dump_special_to_buffer, initialize_dependency_output):
20515         Add static prototypes.
20516
20517         * cpplib.c (my_strerror): Constify a char*.
20518         (null_underflow, null_cleanup, skip_comment, copy_comment,
20519         copy_rest_of_line, handle_directive, pass_thru_directive,
20520         get_directive_token, read_line_number, cpp_print_file_and_line,
20521         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
20522         v_cpp_warning_with_line, detect_if_not_defined,
20523         consider_directive_while_skipping): Add static prototypes.
20524         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
20525         cpp_pedwarn_with_file_and_line): Constify a char*.
20526
20527         * cpplib.h (cpp_options, include_hash, progname, definition,
20528         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
20529         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
20530         find_include_file, deps_output, include_hash): Constify a char*.
20531
20532         * cppmain.c (progname): Constify.
20533         (main): Add prototype.  Use return, not exit.
20534
20535         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
20536         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
20537         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
20538         check_protection): Add static prototype.
20539         (xfree): Remove.
20540         (progname, recognized_macrom, recognized_extern): Constify a char*.
20541         (main): Add prototype.
20542
20543         * gen-protos.c (progname): Constify a char*.
20544
20545 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
20546
20547         * emit-rtl.c (free_emit_status): Take decl as a parameter.
20548         (init_emit_once): Add more GC roots.
20549         * except.c (mark_func_eh_entry): New function.
20550         (mark_eh_node): Mark false_label and rethrow_label.
20551         (init_eh): Add more GC roots.
20552         * function.c (free_after_compilation): Take decl as a paramter.
20553         Call free_stmt_status.
20554         (mark_function_state): Don't assume x_parm_reg_stack_loc is
20555         non-NULL.
20556         * function.h (free_after_compilation): Change prototype.
20557         (free_varasm_status): Likewise.
20558         (free_emit_status): Likewise.
20559         (free_stmt_status): New function.
20560         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
20561         Remove, replacing with ...
20562         (ggc_status): New structure.
20563         (ggc_chain): New variable.
20564         (init_gcc): Define.
20565         (ggc_push_context): New function.
20566         (ggc_pop_context): Likewise.
20567         (ggc_alloc_rtx): Adjust for use of ggc_chain.
20568         (ggc_alloc_rtvec): Likewise.
20569         (ggc_alloc_tree): Likewise.
20570         (ggc_alloc_string): Likewise.
20571         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
20572         (ggc_mark_tree): Give language-dependent code a chance to mark
20573         `x' nodes.
20574         (ggc_mark_tree_varray): Handle empty arrays.
20575         (ggc_collect): Adjust for use of ggc_chain.  Clear
20576         bytes_alloced_since_last_gc.
20577         * ggc.h (ggc_pop_context): New function.
20578         (ggc_push_context): Likewise.
20579         * print-tree.c (print_node): Don't print obstacks when GC'ing.
20580         * stmt.c (free_stmt_status): New function.
20581         (init_stmt_for_function): Clear last_expr_value.
20582         * toplev.c (rest_of_compilation): Always call free_after_compilation.
20583         Conditionalize call to ggc_collect.
20584         (main): Call init_ggc.
20585         * tree.c (push_obstacks): Do the push, even when GC'ing.
20586         (push_obstacks_nochange): Likewise.
20587         (pop_obstacks): Liekwise.
20588         * varasm.c (free_varasm_status): Take decl as a parameter.
20589
20590 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20591
20592         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
20593         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
20594         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
20595         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
20596
20597 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
20598
20599         * pa/x-pa-mpeix: New file for the MPE port.
20600
20601         * pa/quadlib.asm: New file for long double support.
20602
20603         * configure.in: Add hppa1.0-*-mpeix for MPE port.
20604         * configure: Rebuilt.
20605
20606 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
20607
20608         * final.c (shorten_branches): Fix last change.
20609
20610 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
20611
20612         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
20613
20614 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
20615
20616         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
20617         details.
20618
20619 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20620
20621         * c-aux-info.c (concat): Don't define.
20622
20623         * cccp.c (my_strerror): Likewise.  All callers changed to use
20624         xstrerror instead.
20625         (do_include): Call xstrdup, not xmalloc/strcpy.
20626         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
20627         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
20628
20629         * collect2.c (my_strsignal): Likewise.  All callers changed to use
20630         strsignal instead.
20631         (locatelib): Call xstrdup, not xmalloc/strcpy.
20632
20633         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
20634
20635         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
20636
20637         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
20638
20639         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
20640
20641         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
20642
20643         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
20644
20645         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
20646         malloc/realloc.
20647         (find_all_handler_type_matches): Likewise.  Don't check return
20648         value.
20649         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
20650         xmalloc, not malloc.
20651         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
20652
20653         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
20654         (init_spec): Call xcalloc, not xmalloc/bzero.
20655         (set_spec): Call xstrdup, not save_string.
20656         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
20657         (find_a_file): Call xstrdup, not xmalloc/strcpy.
20658         (process_command): Call xstrdup, not save_string.
20659         (main): Call xcalloc, not xmalloc/bzero.
20660
20661         * gcov.c (xmalloc): Don't define.
20662         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
20663         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
20664         (output_data): Call xcalloc, not xmalloc/bzero.
20665
20666         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
20667
20668         * mips-tdump.c (xmalloc): Don't define.
20669         (print_symbol): Call xmalloc, not malloc.
20670         (read_tfile): Call xcalloc, not calloc.
20671
20672         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
20673         Don't define.  All callers of xfree/my_strsignal changed to use
20674         free/strsignal instead.
20675         (allocate_cluster): Call xcalloc, not calloc.
20676
20677         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
20678         Fix memory leak, free allocated memory.
20679
20680         * prefix.c (translate_name): Call xstrdup, not save_string.
20681         (update_path): Likewise.
20682
20683         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
20684
20685         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
20686         Don't define.  Callers of xfree/savestring2 changed to use
20687         free/concat instead.
20688
20689         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
20690         (init_elim_table): Likewise.
20691
20692         * resource.c (init_resource_info): Likewise.
20693
20694         * stupid.c (stupid_life_analysis): Likewise.
20695
20696         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
20697         (open_dump_file): Call concat, not xmalloc/strcpy/...
20698         (clean_dump_file): Likewise.
20699         (compile_file): Call xstrdup, not xmalloc/strcpy.
20700
20701 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
20702
20703         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
20704         * v850.c (v850_va_arg): New.
20705
20706 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20707
20708         * haifa-sched.c: Tidy comments.
20709
20710 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20711
20712         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
20713         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
20714         $(out_object_file)): Depend on ggc.h.
20715         * c-common.c: Include "ggc.h".
20716         (combine_strings): If doing GC, use ggc_alloc_string.
20717         * c-decl.c: Include "ggc.h".
20718         (ggc_p): Define with value 0.
20719         (mark_binding_level): New function.
20720         (init_decl_processing): Add GC roots.
20721         (mark_c_function_context): New function.
20722         (lang_mark_false_label_stack): New function.
20723         (lang_mark_tree): New function.
20724         (lang_cleanup_tree): New function.
20725         * c-lang.c: Include "ggc.h".
20726         (lang_init): Call c_parse_init.
20727         * c-lex.c: Include "ggc.h".
20728         (check_linenum): If doing GC, don't copy filenames to permanent
20729         obstack.
20730         * c-parse.in: Include "ggc.h".
20731         (c_parse_init): New function.
20732         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
20733         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
20734
20735         * except.c (mark_eh_state): Mark more state.
20736         * function.c (mark_function_state): Likewise.
20737         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
20738         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
20739         * toplev.c (mark_file_stack): New function.
20740         (compile_file): If doing GC, use ggc_alloc_string on input filename.
20741         (main): Add root for input_file_stack.
20742
20743         * i386.c: Include "ggc.h".
20744         (ix86_mark_machine_status): New function.
20745         (override_options): Set mark_machine_status.
20746
20747 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20748
20749         * tree.c (copy_node): Copy node contents also if doing GC.
20750
20751 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
20752
20753         * collect2.c (scan_libraries): Fix double-thinko :-).
20754
20755 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
20756
20757         * collect2.c (scan_libraries): Fix thinko.
20758
20759         * cse.c (delete_trivially_dead_insns): Do not skip the last
20760         insn if it is a real insn.
20761
20762 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
20763
20764         * Makefile.in (ggc-simple.o): Depend on hash.h.
20765         * ggc.h (ggc_add_tree_hash_table_root): Declare.
20766         (ggc_mark_tree_varray): Likewise.
20767         (ggc_mark_tree_hash_table): Likewise.
20768         * ggc-simple.c: Include hash.h.
20769         (ggc_mark_tree_hash_table_ptr): New function.
20770         (ggc_mark_tree_hash_table_entry): Likewise.
20771         (ggc_mark_tree_hash_table): Likewise.
20772         (ggc_add_tree_hash_table_root): Likewise.
20773         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
20774         rtx, when defining fields.
20775
20776 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
20777
20778         * profile.c (output_func_start_profiler): Remove apparently
20779         nonsensical call to start_sequence.
20780
20781 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
20782
20783         * clipper/clipper.c (clipper_va_start): Fix typos.
20784
20785         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
20786         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
20787         (spur_va_arg): New stub.
20788
20789         * configure.in: Comment out pyramid.
20790
20791 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
20792
20793         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
20794         don't conflict with the bits that win32, cygwin, and dgux
20795         defines.
20796
20797 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
20798                           Bernd Schmidt <bernds@cygnus.co.uk>
20799
20800         * integrate.c (function_cannot_inline_p): Do not inline
20801         functions with forced labels.
20802
20803 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
20804                           Bernd Schmidt <bernds@cygnus.co.uk>
20805                           Mark Mitchell  <mark@codesourcery.com>
20806
20807         * Makefile.in (ggc-simple.o): Depend on varray.h.
20808         (rtl.o): Depend on ggc.h.
20809         (genattrtab.o): Depend on ggc.h.
20810         (print-tree.o): Likewise.
20811         (fold-const.o): Likewise.
20812         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
20813         (make_insn_raw): Don't cache insns when GC'ing.
20814         (emit_insn_before): Likewise.
20815         (emit_insn_after): Likewise.
20816         (emit_insn): Likewise.
20817         (start_sequence): Use xmalloc to allocate the sequence_stack.
20818         (end_sequence): Add free to free it.
20819         (gen_sequence): Don't cache insns when GC'ing.
20820         (clear_emit_caches): Don't use sequence_element_free_list.
20821         (init_emit): Use xcalloc, not xmalloc+bzero.
20822         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
20823         * function.c (pop_function_context_from): Use free to free the
20824         fixup_var_refs_queue.
20825         (put_reg_into_stack): Allocate it with xmalloc.
20826         * genattrtab.c: Include ggc.h.
20827         (operate_exp): Don't use obstack_free when GC'ing.
20828         (simplify_cond): Likewise.
20829         (simplify_text_exp): Likewise.
20830         (optimize_attrs): Likewise.
20831         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
20832         GC'ing.
20833         (gencode): Generate a #include for ggc.h.
20834         * ggc-callbacks.c (ggc_p): Define it to zero.
20835         * ggc-none.c (ggc_p): Likewise.
20836         * ggc-simple.c: Include varray.h.
20837         (ggc_mark_tree_varray): New function.
20838         (ggc_add_tree_varray_root): Likewise.
20839         (ggc_mark_tree_varray_ptr): Likewise.
20840         * ggc.h (ggc_p): Declare.
20841         (varray_head_tag): Likewise.
20842         (ggc_add_tree_varray_root): Declare.
20843         * print-tree.c (print_node): Don't check for TREE_PERMANENT
20844         inconsistencies when GC'ing.
20845         * rtl.c: Include ggc.h.
20846         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
20847         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
20848         (rtx_free): Don't call obstack_free when GC'ing.
20849         * toplev.c (rest_of_compilation): Call ggc_collect after every
20850         pass, if GC'ing.
20851         * tree.c (push_obstacks): Do nothing, if GC'ing.
20852         (pop_obstacks_nochange): Likewise.
20853         (pop_obstacks): Likewise.
20854         (make_node): Use ggc_alloc_tree when GC'ing.
20855         (copy_node): Likewise.
20856         (get_identifier): Use ggc_alloc_string when GC'ing.
20857         (build_string): Likewise.
20858         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
20859         (tree_cons): Likewise.
20860         (build1): Likewise.
20861         (type_hash_canon): Don't call obstack_free when GC'ing.
20862
20863 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
20864
20865         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
20866         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
20867
20868 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
20869                           Bernd Schmidt <bernds@cygnus.co.uk>
20870                           Mark Mitchell  <mark@codesourcery.com>
20871
20872         * Makefile.in (stor-layout.o): Depend on ggc.h.
20873         (expr.o): Depend on ggc.h.
20874         (profile.o): Depend on ggc.h.
20875         (stor-layout.o): Depend on ggc.h.
20876         * emit-rtl.c (init_emit_once): Add gc roots.
20877         * expr.c: Include ggc.h.
20878         (emit_block_move): Add gc roots.
20879         (clear_storage): Likewise.
20880         * expr.h (init_stor_layout_once): New function.
20881         * profile.c: Include ggc.h.
20882         (init_arc_profiler): profiler_label is a root.
20883         * scan.c (make_sstring_space): Trust xrealloc to function
20884         correctly with first parameter NULL.
20885         * stor-layout.c: Include ggc.h.
20886         (set_sizetype): Add gc root.
20887         (init_stor_layout_once): New function.
20888         * toplev.c (compile_file): Call it.
20889
20890 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
20891                           Bernd Schmidt <bernds@cygnus.co.uk>
20892                           Mark Mitchell  <mark@codesourcery.com>
20893
20894         * Makefile.in (tree.o): Depend on ggc.h.
20895         (varasm.o): Likewise.
20896         (function.o): Likewise.
20897         (stmt.o): Likewise.
20898         (except.o): Likewise.
20899         (optabs.o): Likewise.
20900         (emit-rtl.o): Likewise.
20901         * emit-rtl.c: Include ggc.h.
20902         (sequence_element_free_list): Remove, and all references.
20903         (mark_sequence): New functions.
20904         (mark_emit_state): New function.
20905         * except.c: Include ggc.h.
20906         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
20907         (mark_tree_label_node): New functions.
20908         (mark_eh_state): New function.
20909         * function.c: Include ggc.h.
20910         (mark_temp_slot, mark_function_chain): New functions.
20911         (mark_function_state): New function.
20912         (init_function_once): New function.
20913         * function.h (init_function_once): New function.
20914         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
20915         * ggc.h (label_node): Declare.
20916         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
20917         (lang_mark_false_label_stack): New function.
20918         (mark_temp_slot): Remove declaration.
20919         (mark_function_chain): Likewise.
20920         (mark_eh_state): Adjust prototype.
20921         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
20922         Likewise.
20923         * optabs.c: Include ggc.h.
20924         (mark_optab): New function.
20925         (init_optabs): Add gc roots.
20926         * stmt.c: Include ggc.h.
20927         (mark_cond_nesting, mark_loop_nesting): New functions.
20928         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
20929         (mark_stmt_state): New function.
20930         * toplev.c (compile_file): Call init_function_once.
20931         * tree.c: Include ggc.h.
20932         (type_hash): Move declaration earlier in file.
20933         (TYPE_HASH_SIZE, type_hash_table): Likewise.
20934         (init_obstacks): Add gc roots.
20935         (mark_type_hash): New function.
20936         * varasm.c: Include ggc.h.
20937         (mark_pool_constant): New function.
20938         (mark_varasm_state): New function.
20939
20940 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20941
20942         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
20943
20944 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
20945
20946         * c-decl.c (struct language_function): Renamed from struct c_function.
20947         Delete elt NEXT.
20948         (c_function_chain): Delete.
20949         (push_c_function_context): New arg F.  Don't warn about nested
20950         functions here.  Fill LANGUAGE elt of F.  Delete code to update
20951         c_function_chain.  Don't call push_function_context.
20952         (pop_c_function_context): New arg F.  Restore from there instead of
20953         from c_function_chain.  Don't call pop_function_context.  Clear out
20954         LANGUAGE field of F when done.
20955         * c-lang.c: Include "function.h"
20956         (lang_init): Initialize save_lang_status and restore_lang_status.
20957         * c-parse.in (nested_function, nested_function_notype): Warn about
20958         nested functions.  Call push_function_context/pop_function_context
20959         instead of the _c_ variants.
20960         * c-tree.h (push_c_function_context, pop_c_function_context): Update
20961         prototype.
20962         * Makefile.in (c-lang.o): Update dependencies.
20963
20964         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
20965         regno_pointer_flag, regno_pointer_align.
20966         (gen_reg_rtx): Use xrealloc to enlarge them.
20967         (free_emit_status): New function.
20968         * function.c (mark_machine_status, mark_lang_status): New variables.
20969         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
20970         in some bits from assign_stack_local.  All callers changed to use new
20971         name.
20972         (assign_stack_local): Just call assign_stack_local_1.
20973         (free_after_compilation): New function.
20974         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
20975         (trampoline_address): Likewise.
20976         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
20977         (prepare_function_start): Explicitly clear some more variables.
20978         * function.h (struct function): New elt can_garbage_collect.
20979         (mark_machine_status, mark_lang_status): Declare variables.
20980         (free_after_compilation, free_emit_status, free_varasm_status,
20981         init_varasm_status): Declare functions.
20982         * toplev.c (rest_of_compilation): Call free_after_compilation when
20983         done with the current function.
20984         * varasm.c (free_varasm_status): New function.
20985
20986 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
20987
20988         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
20989         (EXPAND_BUILTIN_VA_ARG): Define.
20990         * sparc.c (sparc_va_start): New.
20991         (sparc_va_arg): New.
20992
20993 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20994
20995         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
20996
20997 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20998
20999         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
21000
21001 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
21002
21003         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
21004         (OBJS): Add $(GGC).
21005         (ggc-callbacks.o): New target.
21006         * ggc-callbacks.c: New file.
21007
21008 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21009
21010         * expr.h: Collapse individual optab and libfunc vars to arrays.
21011         (optab_index, libfunc_index): New enumerations.
21012         (optab_table, libfunc_table): New arrays.
21013         Add accessor macros for both.
21014
21015         * optabs.c (optab_table, libfunc_table): New.
21016         Delete declarations for individual optab and libfunc vars.
21017
21018 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
21019
21020         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
21021
21022 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
21023
21024         * Makefile.in (GGC, GGC_LIB): New.
21025         (HOST_RTL): Include ggc-none.o.
21026         (ggc-simple.o): New target.
21027         (ggc-none.o): Likewise.
21028         * tree.h (tree_common): Add gc_mark.
21029         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
21030         (struct rtvec_def): Add gc_mark.
21031         * emit-rtl.c (global_rtl): Update static initializers to contain
21032         enough initializers.
21033         * ggc.h, ggc-none.c, ggc-simple.c: New files.
21034         * toplev.c (gc_time): New variable.
21035         (all_time): New variable.
21036         (compile_file): Print gc time.
21037         (print_time): Calculate percentage of the whole.
21038
21039 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21040
21041         Change obstack memory management and varasm constant pool handling so
21042         that nested functions are treated like any other functions.
21043         * function.c (init_machine_status): New variable.
21044         (push_function_context_to): Set contains_functions for the outer
21045         function.  Don't call save_varasm_status.
21046         (pop_function_context_from): Don't call restore_varasm_status.  Don't
21047         set current_function_contains_functions.
21048         (prepare_function_start): Call init_varasm_status rather than
21049         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
21050         is non-null.
21051         * function.h (struct function) Add field varasm.  Delete fields
21052         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
21053         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
21054         (init_machine_status): Declare.
21055         (save_varasm_status, restore_varasm_status): Delete declarations.
21056         (save_tree_status, restore_tree_status): Delete last argument.
21057         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
21058         code.  All callers changed.
21059         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
21060         save_constants_in_decl_trees, restore_constants, save_constants,
21061         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
21062         functions.
21063         (inlining): New variable.
21064         (reg_map, label_map, insn_map, orig_asm_operands_vector,
21065         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
21066         variables.
21067         (save_for_inline_nocopy): Don't save constants.
21068         Don't set inl_emit field in current_function.
21069         (expand_inline_function): Use emit field, not inl_emit, of the inlined
21070         function.  Set new variable inlining before
21071         calling copy_rtx_and_substitute.
21072         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
21073         constant pool references if inlining is nonzero.
21074         Delete ADDRESS and (most of the) CONST cases.
21075         (output_inline_function): Save and restore current_function/
21076         current_function_decl.  Delete restore_constants code.  Don't call
21077         init_const_rtx_hash_table.
21078         * output.h (init_const_rtx_hash_table): Don't declare.
21079         * rtl.h (struct function): Declare.
21080         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
21081         * toplev.c (rest_of_compilation): Don't treat nested functions or
21082         functions containing them specially.  Delete all code to deal with
21083         save_for_inline_copying.
21084         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
21085         inline_obstacks): Delete variables.
21086         (save_tree_status): Lose arg CONTEXT.  All callers changed.
21087         Simply allocate a new function_maybepermanent_obstack for the new
21088         function, delete all the special cases.
21089         Don't save inline_obstacks.
21090         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
21091         Delete special handling for function_maybepermanent_obstack; simply
21092         free it if empty.
21093         Don't restore inline_obstacks.
21094         (permanent_allocation):  Delete code that frees inline_obstacks.
21095         (print_inline_obstack_statistics): Delete function.
21096         (dump_tree_statistics): Don't call it.
21097         * varasm.c (struct varasm_status): New.
21098         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
21099         last_pool, pool_offset, const_double_chain): Delete global
21100         variables, replace with accessor macros.
21101         (immed_double_const): Don't walk const_double_chain outside a
21102         function, but don't treat nested functions specially anymore.
21103         (immed_real_const_1): Likewise.
21104         (clear_const_double_mem): Don't treat nested functions specially.
21105         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
21106         (save_varasm_status, restore_varasm_status): Delete functions.
21107         (init_varasm_status): New function.
21108         (force_const_mem): Don't treat nested functions specially.
21109         (find_pool_constant): Accept new arg F, search for constants in
21110         that function's pool rather than the current one.  All callers
21111         changed.
21112         (get_pool_constant_for_function, get_pool_mode_for_function): New
21113         functions.
21114
21115         * i386.c (init_386_machine_status): New function, mostly from
21116         clear_386_stack_locals.
21117         (struct machine_functions): Rename element names to avoid name
21118         clashes.
21119         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
21120         macros, replacing global variables.
21121         (clear_386_stack_locals, save_386_machine_status,
21122         restore_386_machine_status): Delete functions.
21123         (override_options): Initialize init_machine_status.
21124         * i386.h (INIT_EXPANDERS): Delete macro.
21125         (save_386_machine_status, restore_386_machine_status,
21126         clear_386_stack_locals): Delete declarations.
21127
21128 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21129
21130         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
21131         (doloop_begin):  Simplify pattern and use emit_jump_insn.
21132         (doloop_end): Simplify pattern, switch operand order,
21133         and use emit_jump_insn.
21134
21135 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
21136
21137         * function.h (struct function): Add new element LANGUAGE.
21138         (save_lang_status): Declare new variable.
21139         (restore_lang_status): Likewise.
21140         * function.c (save_lang_status): Define.
21141         (restore_lang_status): Likewise.
21142         (push_function_context_to): Call language-specific save function.
21143         (pop_function_context_from): Call language-specific restore function.
21144
21145 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
21146
21147         * i386.md (movsf_1): Check REG_P before use of REGNO.
21148         (movdf_1): Likewise.
21149         (movxf_1): Likewise.
21150         (extendsfdf2): Likewise.
21151         (extendsfxf2): Likewise.
21152         (extenddfxf2): Likewise.
21153
21154 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21155
21156         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
21157         constants into memory.
21158         (c4x_shiftable_constant): New function.
21159         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
21160         (c4x_shiftable_constant): Declare.
21161         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
21162         ashlqi3_noclobber): Add new patterns and associated splitters.
21163
21164 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
21165
21166         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
21167         * dwarf2out.c (dwarf2out_frame_init): Likewise.
21168         * final.c (shorten_branches): Likewise.
21169         * global.c (global_alloc): Likewise.
21170         * haifa-sched.c (build_control_flow): Likewise.
21171         * stmt.c (check_for_full_enumeration_handling): Likewise.
21172         (estimate_case_costs): Likewise.
21173
21174 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
21175
21176         * rtl.h (RTL_CHECKC2): Fix typo in last change.
21177
21178 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
21179
21180         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
21181         (recompute_reg_usage): Likewise.
21182         * rtlanal.c (find_regno_fusage): Likewise.
21183
21184         * rtl.c (rtl_check_failed_code1): New function.
21185         (rtl_check_failed_code2): New.
21186         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
21187         (RTL_CHECKC1, RTL_CHECKC2): New.
21188         (XC*): New accessor macros.
21189         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
21190         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
21191         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
21192         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
21193         (TRAP_*, RANGE_INFO_*): Likewise.
21194
21195 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21196
21197         * Makefile.in (tlink.o): Don't depend on toplev.h.
21198
21199         * collect2.c (c_file, o_file, export_file, import_file, ldout,
21200         output_file, nm_file_name, ldd_file_name, strip_file_name,
21201         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
21202         add_prefix, prefix_from_env, prefix_from_string, do_wait,
21203         fork_execute, maybe_unlink, add_to_list,
21204         extract_init_priority, write_list, dump_list,
21205         dump_prefix_list, write_list_with_asm, write_c_file,
21206         write_c_file_stat, write_c_file_glob, scan_prog_file,
21207         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
21208         ignore_library, extract_string, notice, dump_file, target_machine,
21209         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
21210         read_file, print_load_command): Constify a char*.
21211         (fdopen, error, fatal, fatal_perror): Don't prototype.
21212         (my_strerror): Remove.  All callers use xstrerror instead.
21213         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
21214         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
21215         to xcalloc/strcpy/strcat/...  to one call to concat.
21216         (main, scan_prog_file, scan_libraries): Use an intermediate
21217         `const char **' to build an argv array.
21218         (mapfile, libselect, libcompare, locatelib): Add prototypes.
21219
21220         * collect2.h (collect_execute, collect_wait, dump_file,
21221         file_exists): Constify a char*.
21222         (ldout, c_file_name, temporary_obstack, permanent_obstack,
21223         temporary_firstobj, vflag, debug): Add extern declarations.
21224         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
21225
21226         * tlink.c: Don't include toplev.h.
21227         (vflag, debug, ldout, c_file_name, temporary_obstack,
21228         permanent_obstack, temporary_firstobj): Don't declare.
21229         (tlink_execute, frob_extension, symbol_hash_lookup,
21230         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
21231         recompile_files, read_repo_files, demangle_new_symbols,
21232         scan_linker_output): Constify a char*.
21233         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
21234         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
21235
21236 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
21237
21238         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
21239         (relative) rather than jsr (absolute) subroutine call insns.
21240         * config/m68k/m68k-coff.h: Ditto.
21241
21242 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
21243
21244         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
21245         now rework these too.
21246         (arm_reorg): If an insn can't reach the end of the current pool,
21247         ensure that we emit that pool before the insn.
21248
21249 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
21250
21251         * tlink.c (scan_linker_output): Skip the initial underscore in
21252         a mangled name if appropriate.
21253
21254 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21255
21256         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
21257         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
21258         error_with_ivar, gen_declarator, create_builtin_decl,
21259         my_build_string, generate_descriptor_table, generate_ivars_list,
21260         generate_dispatch_table, check_protocols, TAG_GETCLASS,
21261         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
21262         dump_base_name, lang_decode_option, build_encode_expr,
21263         start_class, finish_class, encode_pointer, really_start_method,
21264         gen_declaration, dump_interface, handle_class_ref, handle_impent):
21265         Constify.
21266         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
21267         Add static prototypes.
21268         (build_objc_string_decl, build_selector_reference_decl,
21269         encode_bitfield, build_class_reference_decl): Remove unused
21270         parameter, all callers changed.
21271         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
21272         (objc_printable_name): Likewise.  Change second parameter to type int.
21273         (init_objc): Use memcpy, not bcopy, to avoid casts.
21274
21275 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
21276
21277         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
21278         reg notes on a deleted insn.
21279         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
21280
21281 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
21282
21283         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
21284
21285 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21286
21287         * stmt.c (expand_asm_operands): Fix index into inout_mode when
21288         reading it.
21289
21290 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
21291
21292         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
21293         * tm.texi (MD_ASM_CLOBBERS): Document it.
21294
21295 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
21296
21297         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
21298         * except.c (expand_rethrow): Remove unused variable.
21299         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
21300         * flow.c (replace_insns): Likewise.
21301         (create_edge_list, verify_edge_list): Likewise.
21302         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
21303
21304         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
21305         is special code to run.
21306         (main): Don't define operands to emit_operand.
21307         * genrecog.c (main): Don't emit an empty peephole2_insn function.
21308
21309         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
21310
21311         * alpha/alpha.h (normal_memory_operand): Declare.
21312         (reg_no_subreg_operand): Declare.
21313         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
21314
21315 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
21316
21317         * c-parse.in (compstmt_primary_start): New, broken out of first
21318         part of compstmt handling in primary.
21319         (primary): Use it.  Add an error clause.
21320         (compstmt_nostart): Renamed from compstmt; remove all
21321         initial invocations of compstmt_start.
21322         (compstmt): New.
21323
21324 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
21325
21326         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
21327         needed.
21328
21329 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
21330
21331         * combine.c (simplify_shift_const): Remove extra semicolon.
21332         * dwarf2out.c (remove_AT): Likewise.
21333         * expmed.c (expand_mult): Likewise.
21334         * gcov.c (create_program_flow_graph): Likewise.
21335         * reorg.c (mostly_true_jump): Likewise.
21336
21337 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
21338
21339         * fold-const.c (fold_range_test): Do not try to fold the range
21340         test if the rhs or lhs has side effects.
21341
21342         * combine.c (simplify_rtx): Recognize another case of a synthesized
21343         sign extension.
21344
21345         * varasm.c (mark_constant_pool): When marking indirect references,
21346         only look at SYMBOL_REFs.
21347
21348         * except.c (expand_fixup_region_end): Do not peek at
21349         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
21350
21351 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
21352
21353         * flags.h: New variables align_loops, align_loops_log,
21354         align_jumps, align_jumps_log, align_labels, align_labels_log,
21355         align_functions, align_functions_log.
21356         * toplev.c: Define them.
21357         (f_options): Handle -falign-* when they have no argument.
21358         (main): Add logic to set variables for -falign-functions,
21359         -falign-jumps, -falign-labels, -falign-loops.
21360         Make it -fsched-verbose=<n> and -finline-limit=<n>.
21361         (display_help): Change help to match options.
21362         * final.c (LABEL_ALIGN): Default to align_labels_log.
21363         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
21364         (LOOP_ALIGN): Default to align_loops_log.
21365         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
21366         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
21367         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
21368         * varasm.c (assemble_start_function): Handle align_functions.
21369
21370         * config/sparc/sparc.h: Don't declare sparc_align_*.
21371         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
21372         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
21373         sparc.c.
21374         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
21375         it's a promise.
21376         * config/sparc/sparc.c: Delete sparc_align_loops,
21377         sparc_align_jumps, sparc_align_funcs and the corresponding string
21378         variables.
21379         (sparc_override_options): Default align_functions on ultrasparc.
21380         Delete -malign-* handling.
21381
21382         * config/mips/mips.c (override_options):  On 64-bit targets,
21383         try to align code to 64-bit boundaries.
21384         (print_operand): New substitution, %~,
21385         which aligns labels to align_labels_log.
21386         * config/mips/mips.md (div_trap_normal): Use %~.
21387         (div_trap_mips16): Likewise.
21388         (abssi): Likewise.
21389         (absdi2): Likewise.
21390         (ffssi2): Likewise.
21391         (ffsdi2): Likewise.
21392         (ashldi3_internal): Likewise.
21393         (ashrdi3_internal): Likewise.
21394         (lshrdi3_internal): Likewise.
21395         (casesi_internal): Likewise.
21396
21397 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
21398
21399         Merge new ia32 backend from the branch!
21400
21401         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
21402         See ChangeLog.P2 on new_ia32_branch for details.
21403
21404         * rtl.h (stack_regs_mentioned_p): Delete prototype.
21405         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
21406         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
21407         * i386/gas.h (ASM_FILE_START): Define.
21408         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
21409         for name change of ix86_valid_decl_attribute_p.
21410         (i386_pe_valid_type_attribute_p): Similarly.
21411
21412 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
21413
21414         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
21415         to step through CC modes.
21416
21417 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21418
21419         * regmove.c (fixup_match_1): Don't move INSN in front of P if
21420         it would end up in the shadow of a live flags regsiter.
21421
21422 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21423
21424         * reload1.c: Fix many indentation problems.
21425         * reload.c: Likewise.
21426
21427 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
21428
21429         * alias.c (non_local_reference_p): Constify fmt.
21430
21431 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
21432
21433         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
21434
21435 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
21436
21437         * cse.c (delete_trivially_dead_insns): Do not delete stores to
21438         the internal_arg_pointer.
21439
21440 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
21441
21442         Merge peephole2 from new_ia32_branch:
21443         * Makefile.in (STAGESTUFF): Add *.peephole2.
21444         (mostlyclean): Likewise.
21445         (recog.o): Depend on resource.h.
21446
21447         * final.c (peephole): Conditionalize decl on HAVE_peephole.
21448         (final_scan_insn): Likewise for the invocation of peephole.
21449         * genconfig.c (main): Look for peephole and peephole2 patterns.
21450         Emit HAVE_peephole* accordingly.
21451         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
21452         * flags.h (flag_peephole2): Declare.
21453         * toplev.c: New pass peephole2.  New flag -fpeephole2.
21454
21455         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
21456         * gencodes.c (main): Likewise.
21457         * genextract.c (main): Likewise.
21458         * genoutput.c (main): Likewise.
21459         * genemit.c (max_operand_1): Look for the max scratch operand.
21460         (gen_rtx_scratch): New.
21461         (gen_exp): Use it, and pass on new arg subroutine_type.
21462         (gen_expand): Take max scratch into account.
21463         (gen_split): Emit peephole2 functions.
21464         (output_peephole2_scratch): New.
21465         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
21466         * genrecog.c (routine_type): Add PEEPHOLE2.
21467         (IS_SPLIT): New.
21468         (make_insn_sequence): Match outer parallel for peep2.  Discard
21469         top level scratches and dups.
21470         (add_to_sequence): New args insn_type and top.  Update all callers.
21471         Handle toplevel peep2 matching insns.
21472         (write_subroutine): Handle peep2.
21473         (write_tree_1): Likewise.
21474         (write_tree): Likewise.
21475         (main): Likewise.
21476         (change_state): New arg afterward.  Update all callers.
21477         Handle matching separate insns.
21478         * recog.c (recog_next_insn): New.
21479         (peephole2_optimize): New.
21480         * rtl.def (DEFINE_PEEPHOLE2): New.
21481         * resource.c (find_free_register): New argument last_insn.  Use it
21482         to find a register available through the entire span.
21483         * resource.h (find_free_register): Update prototype.
21484
21485 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
21486
21487         * i386.c (output_strlen_unroll): Don't write xops[7]
21488         label if it wasn't set.
21489
21490 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
21491
21492         * cpplib.c (struct directive): Const-ify name pointer and
21493         function pointer prototype.
21494         (validate_else, do_define, do_line, do_include, do_undef,
21495         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
21496         do_elif, do_endif, do_sccs, do_assert, do_unassert,
21497         do_warning): Const-ify second arg.
21498         (directive_table): Mark const.  Reorder entries by frequency
21499         of usage, record statistics.
21500
21501 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
21502
21503         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
21504         bounds- check RTL accesses if --enable-checking.
21505         (RTVEC_ELT): Bounds check if --enable-checking.
21506         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
21507         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
21508         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
21509         GET_NUM_ELEM.
21510         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
21511         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
21512
21513         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
21514         (NOTE_SOURCE_FILE): Use X0STR.
21515         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
21516         MEM_ALIAS_SET): Use X0INT.
21517         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
21518         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
21519         Use X0EXP.
21520         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
21521         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
21522         (rtl_check_failed_bounds, rtl_check_failed_type1,
21523         rtl_check_failed_type2, rtvec_check_failed_bounds): New
21524         functions.
21525         (fancy_abort): Fix comment.
21526
21527         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
21528         (cse_insn): Decrement LABEL_NUSES for jump target before
21529         deleting jump insn.
21530         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
21531         * final.c (alter_subreg): Compute regno before changing x to
21532         REG; set REGNO(x) after changing it.
21533         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
21534         notes containing CONST_INTs.
21535         (delete_eh_regions): Use NOTE_EH_HANDLER.
21536         * function.c (put_reg_into_stack): Make reg a MEM before
21537         initializing it.
21538         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
21539         delete insn.
21540         (gen_mem_addressof): Make reg a MEM before initializing it.
21541         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
21542         X0WINT.
21543         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
21544         deleting an insn, not after.
21545         (block_alloc): Only look at PATTERN(insn) if we have to, and
21546         only if it's format class 'i'.
21547         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
21548         CONST_INT before using its INTVAL.
21549         * print-rtl.c (print_rtx): Use X0STR.
21550         * regmove.c (fixup_match_1): Don't look at PATTERN of
21551         non-class-'i' insn chain elements.
21552         * reload.c (loc_mentioned_in_p): Take address of
21553         in->fld[1].rtx directly.
21554         * reload1.c (reload): Change reg to a MEM before initializing
21555         it.
21556         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
21557         have no names.
21558         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
21559
21560 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
21561
21562         * config/mips/mips.c (machine_dependent_reorg): Force a
21563         barrier to output the local constant pool if a barrier hasn't
21564         been found at a natural point in the instruction stream.
21565
21566 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21567
21568         * c-parse.in (language_string): Constify.
21569
21570         * dwarf2out.c (language_string): Remove declaration.
21571
21572         * dwarfout.c (language_string): Likewise.
21573
21574         * toplev.c (language_string, init_parse, finish_parse): Likewise.
21575
21576         * tree.h (language_string, init_parse, finish_parse): Declare.
21577
21578         * i386/sun386.h (language_string): Remove declaration.
21579
21580         * mips.h (language_string): Likewise.
21581
21582         * nextstep.h (language_string): Likewise.
21583
21584         * nextstep21.h (language_string): Likewise.
21585
21586         * rs6000.c (language_string): Likewise.
21587
21588 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21589
21590         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
21591         (getpwd.o): Remove target.
21592
21593         * getpwd.c: Delete file.  Its in libiberty now.
21594
21595         * dbxout.c (getpwd): Don't prototype.
21596         * dwarf2out.c (getpwd): Likewise
21597         * dwarfout.c (getpwd): Likewise
21598         * final.c (getpwd): Likewise.
21599         * protoize.c (getpwd): Likewise.
21600
21601 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21602
21603         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
21604
21605 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
21606
21607         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
21608         mark_set_resources.
21609
21610 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
21611
21612         * fixinc/Makefile.in (subdir): New.
21613         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
21614         (Makefile): New.
21615
21616 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
21617
21618         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
21619         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
21620         be shared.
21621
21622         * invoke.texi: Fix typo.
21623
21624         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
21625         changed.  Handle autoincrement addressing modes.
21626
21627         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
21628         just like we would the virtual incoming args register when
21629         integrating.
21630
21631 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
21632
21633         * rs6000.h (ASM_FILE_START): Specify complete filename, including
21634         path, in .file directive.
21635
21636 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
21637
21638         * gcc.texi (External Bugs): Remove obsolete note about Perl on
21639         SunOS.
21640
21641 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
21642
21643         * stdbool.h: Make the typedef name _Bool, with bool a #defined
21644         alias.
21645
21646 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21647
21648         * tree.c (tree_code_name): Constify a char*.
21649
21650         * tree.h (tree_code_name, decl_printable_name): Likewise.
21651
21652         * function.h (struct function): Likewise.
21653
21654         * toplev.c (decl_name, decl_printable_name): Likewise.
21655
21656         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
21657
21658         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
21659         (init_objc): Remove function pointer cast.
21660
21661 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
21662
21663         * pa.md (interspace_jump): New pattern.
21664         (builtin_longjmp): New expander.
21665
21666 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
21667
21668         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
21669         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
21670         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
21671
21672 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
21673
21674         * jump.c (delete_prior_computation): Also check calls
21675         to constant functions.  Don't bother checking for a
21676         REG_UNUSED note before adding it.
21677         (delete_computation): Handle multi-word hard registers
21678         when synthesizing missing REG_DEAD notes for a register
21679         which is both set and used by an insn.
21680
21681 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21682
21683         * loop.c (this_loop_info): New variable.
21684         (loop_has_call, loop_has_volatile, loop_has_tablejump,
21685         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
21686         All uses updated.
21687         (prescan_loop, strength_reduce): New argument loop_info.  All callers
21688         updated.
21689         (scan_loop): New variable loop_info, initialise to address of
21690         this_loop_info.
21691         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
21692         Delete variable loop_has_multiple_exit targets and replace with
21693         field in this_loop_info.
21694         (find_and_verify_loops): Rename this_loop to this_loop_num.
21695         (strength_reduce): Delete loop_iteration_info.  Replace variable
21696         loop_info with function argument of same name.
21697         (insert_bct): Rework test for loop being completely unrolled.
21698
21699         * loop.h (struct loop_info): New fields num, loops_enclosed,
21700         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
21701         has_indirect_jump, and cont.  Redefine use of unroll_number.
21702         (loop_unroll_number): Delete.
21703
21704         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
21705         field of loop_info.
21706         (loop_iterations): Delete variable vtop and instead use
21707         loop_info->vtop computed in prescan_loop.
21708
21709 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
21710
21711         * fix-header.c (main): Do not pass a null pointer to strcmp.
21712
21713 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
21714
21715         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
21716         filenames.
21717         * configure: Rebuilt.
21718
21719 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
21720
21721         * jump.c (jump_optimize_1): Do not delete assignments to
21722         internal_arg_pointer.
21723         * cse.c (delete_trivially_dead_insns): Always consider a set of
21724         the internal_arg_pointer live.
21725
21726 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
21727
21728         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
21729         (update_life_info) [REG_WAS_0]: Search the original insns rather
21730         than the new insns for the note.  Fix typos finding note_dest.
21731         If no dest found, discard the note rather than abort.
21732         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
21733         (replace_insns): Remove the old insn list after update_life_info
21734         not before.
21735
21736 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
21737
21738         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
21739         sched_analyze_insn.
21740         (sched_analyze_1): Let add_dependence care for not adding dups.
21741         (sched_analyze_2): Likewise.
21742         (add_branch_dependences): Likewise.
21743
21744 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21745
21746         * i386/winnt.c (export_list): New type.
21747         (exports_head): Rename to
21748         (export_head):  this.
21749         (i386_pe_record_exported_symbol): Add is_data flag.
21750         (i386_pe_asm_file_end): Emit directive for exported variables.
21751         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
21752         prototype.
21753         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
21754         (ASM_DECLARE_OBJECT_NAME): Likewise.
21755         (ASM_DECLARE_FUNCTION_NAME): Likewise.
21756         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
21757
21758 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
21759
21760         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
21761
21762         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
21763         operand.
21764
21765 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
21766
21767         * config/openbsd.h: Define SET_ASM_OP.
21768         * tm.texi: cross-reference SET_ASM_OP in the index.
21769
21770 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
21771
21772         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
21773         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
21774         and class_narrowest_mode at compile time.  Kill init_rtl.
21775         Mark rtx_length, mode_class, mode_size, mode_unit_size,
21776         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
21777         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
21778         EXTRA_CC_NAMES.
21779         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
21780         format.
21781         * rtl.h: Declare rtx_length and rtx_format as const.
21782         * machmode.def: Define CC().  Use CC() to define CCmode.  If
21783         EXTRA_CC_MODES is defined, expand it here.
21784         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
21785         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
21786         const.  Kill all references to EXTRA_CC_MODES.
21787
21788         * toplev.c: Don't prototype or call init_rtl.
21789         * optabs.c: Don't call init_mov_optab.
21790         * genemit.c: Don't generate init_mov_optab.  Don't call
21791         init_rtl.
21792         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
21793         here.
21794         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
21795         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
21796         genrecog.c: Don't call init_rtl.
21797
21798         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
21799         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
21800         definition of EXTRA_CC_MODES.
21801
21802         * md.texi: Kill ref to EXTRA_CC_NAMES.
21803         * tm.texi: Document new way to define EXTRA_CC_MODES.
21804
21805         * genrecog.c: Do not look up the name of a define_split.
21806         (Unrelated bugfix.)
21807
21808 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
21809
21810         * config/v850/v850.md: Fix typo introduced by previous delta.
21811
21812 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21813
21814         * gcc.c (fatal): Make definition static to match prototype.
21815
21816 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21817
21818         * combine.c (get_last_value): Don't look for earlier sets if the last
21819         known set is somewhere in between the insns being combined.
21820
21821 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
21822
21823         * configure.in: Don't use shell ! to negate exit codes
21824         * configure: Regenerate
21825
21826 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
21827
21828         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
21829         the fact that ALIGN is measured in bits, not bytes.
21830
21831 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
21832
21833         * errors.c: New file; defines functions error, warning, and
21834         fatal, variables have_error and progname.
21835         * errors.h: New file; prototypes and decls for stuff in errors.c.
21836
21837         * Makefile: Add rules to build errors.o and
21838         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
21839         genopinit, genrecog, genextract, genpeep, genattr, and
21840         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
21841         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
21842         genpeep.o, genattr.o, and genoutput.o.
21843
21844         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
21845         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
21846         define or prototype fatal.  Set progname at beginning of main.
21847         * genoutput.c:  Likewise, and don't define or prototype error
21848         either.
21849
21850         * c-typeck.c (c_expand_start_case): Return immediately if exp
21851         is an ERROR_MARK.
21852         * fold-const.c (operand_equal_p): Return immediately if arg1
21853         or arg0 are ERROR_MARKs.
21854         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
21855         fields of type ERROR_MARK when calculating if the record can
21856         go in a register.
21857
21858 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
21859         with much help from Jeffrey A Law and Richard Henderson
21860
21861         * i386.md: In the 6 insns which call output_fix_trunc,
21862         earlyclobber operands[0].
21863
21864 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
21865
21866         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
21867         creating new registers.
21868
21869 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
21870
21871         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
21872         i386_reg_alloc_order, i386_regparm_string,
21873         i386_align_loops_string, i386_align_jumps_string,
21874         i386_align_funcs_string, i386_preferred_stack_boundary_string,
21875         and i386_branch_cost_string as type "const char *".
21876         * i386.c: Define all above strings as type "const char *".
21877
21878 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
21879
21880         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
21881         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
21882
21883 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
21884
21885         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
21886         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
21887
21888 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
21889
21890         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
21891         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
21892         (dwarf2out_line, dwarf2out_finish): Likewise.
21893         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
21894
21895 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21896
21897         * tree.c (lang_unsave_expr_now) : Correct return type.
21898         * tree.h (lang_unsave_expr_now) : Same.
21899
21900 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
21901
21902         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
21903         instead of duplicating code.
21904
21905 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21906
21907         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
21908
21909 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
21910
21911         * tree.h: fancy_abort always takes three args.
21912         * resource.c: Move include of system.h before toplev.h.
21913
21914 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
21915
21916         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
21917         as SYMBOL_REFs.
21918
21919 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
21920
21921         * system.h: Don't redefine abort or trim_filename.
21922         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
21923         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
21924         whether or not __FUNCTION__ is available.
21925         * tree.h: Duplicate rtl.h's definition of abort, for files
21926         that don't include rtl.h.  Delete all code to perform type
21927         checking with a compiler other than GCC.
21928         * varray.h: Delete all code to perform type checking with a
21929         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
21930         its arguments exactly once, using a statement expression.
21931         Adjust the VARRAY_<type> accessor macros to match.
21932         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
21933         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
21934         caller's location.  Define fatal_insn and fatal_insn_not_found
21935         as macros that use _fatal_insn and _fatal_insn_not_found.
21936         (fancy_abort, trim_filename): Kill prototypes.
21937
21938         * rtl.c (trim_filename): Move here from toplev.c.
21939         (fancy_abort): New function.
21940         (DIR_SEPARATOR): Provide default definition.
21941         * tree.c (tree_check_failed, tree_class_check_failed): Go
21942         through fancy_abort.
21943         (tree_check, tree_class_check, cst_or_constructor_check,
21944         expr_check): Delete.
21945         * varray.c (varray_check_failed): New function.
21946         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
21947         _fatal_insn and _fatal_insn_not_found.  Go through
21948         fancy_abort.
21949         (trim_filename, fancy_abort): Delete.
21950
21951         * builtins.c (expand_builtin_args_info): Report ICE with abort.
21952         * except.c (start_catch_handler): Report ICE with error/abort
21953         combo.
21954         * final.c (output_operand_lossage): Likewise.
21955         * flow.c (verify_flow_info): Likewise.
21956
21957         * gcc.c: Prototype fatal.
21958         * gengenrtl.c: Undef abort after including rtl.h not system.h.
21959         * genattr.c, genattrtab.c, genemit.c, genextract.c,
21960         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
21961         Don't define fancy_abort.
21962
21963 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
21964
21965         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
21966         canonization.
21967
21968 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
21969
21970         * m88k.h (VERSION_INFO2): Kill.
21971         (VERSION_STRING): Kill.
21972         (TM_RCS_ID): Kill.
21973         (VERSION_INFO1): Tidy.
21974         (TARGET_VERSION): Update.
21975         * m88k/dgux.h (VERSION_INFO2): Kill.
21976         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
21977         * m88k/luna.h (VERSION_INFO1): Tidy.
21978         * m88k/sysv4.h (VERSION_INFO1): Likewise.
21979         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
21980         (output_file_start): Adjust for death of VERSION_STRING.
21981
21982 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
21983
21984         * cpplib.c (detect_if_not_defined): New function.
21985         (do_if): Use it to detect potential once-only headers.
21986
21987 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
21988
21989         * c-common.c (combine_strings): Always set TREE_CONSTANT.
21990
21991 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
21992
21993         * combine.c (nonzero_bits) : Allow single-ly set registers to be
21994         anywere in the function only if they are pseudos and set before
21995         being used (not live at the start of the function).
21996         (num_sign_bit_copies) : Same.
21997         (get_last_value_validate) : Same.
21998         (get_last_value) : Same.
21999
22000 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
22001
22002         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
22003         where N and M are constant and N is an integer multiple of M.
22004
22005 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22006
22007         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
22008         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
22009         sbitmap_union_of_preds): Add prototypes.
22010         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
22011         the intersection of successors with the new flow graph structures.
22012         (sbitmap_intersection_of_preds): New function to compute the
22013         intersection of predecessors with the new flow graph structures.
22014         (sbitmap_union_of_succs): New function to compute the union of
22015         successors with the new flow graph structures.
22016         (sbitmap_union_of_preds): New function to compute the union of
22017         predecessors with the new flow graph structures.
22018         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
22019         (expr_reaches_here_p): Use edge and basic_block structures instead
22020         of s_preds and s_succs.
22021         (compute_cprop_avinout): Use new sbitmap routines.
22022         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
22023         of s_preds and s_succs.
22024         * flow.c (compute_flow_dominators): Compute dominators using
22025         edges and basic blocks instead of s_preds and s_succs.
22026
22027 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22028
22029         * lists.c (unused_insn_list, unused_expr_list): New file for
22030         maintaining various types of lists. New statics for maintaining a
22031         cache of available INSN_LIST and EXPR_LIST nodes.
22032         (free_list): Static function for freeing a list of INSN/EXPR nodes.
22033         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
22034         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
22035         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
22036         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
22037         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
22038         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
22039         (free_INSN_LIST_node): Free an individual INSN_LIST node.
22040         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
22041         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
22042         (remove_dependence, free_pending_lists): Use new global routines.
22043         (flush_pending_lists, sched_analyze_insn): Use new global routines.
22044         (sched_analyze, compute_block_backward_dependences): Use new routines.
22045         (sched_analyze_1, sched_analyze_2): Use new routines.
22046         (schedule_insns): Use new global routines.
22047         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
22048         prototypes.
22049         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
22050         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
22051         prototypes.
22052         * toplev.c (rest_of_compilation): Initialize node cache.
22053         * Makefile.in (OBJS): Add lists.o to list of object files.
22054         (lists.o): Add dependancies.
22055
22056 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
22057
22058         * config/v850/v850.md: Fix compile time warning messages.
22059         * config/v850/v850.c: Fix compile time warning messages.
22060         * config/v850/v850.h: Fix compile time warning messages.
22061
22062 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22063
22064         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
22065         Remove unused prototype for `init_lengths'.
22066
22067 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22068
22069         * calls.c (emit_call_1): Mark parameter `stack_size' with
22070         ATTRIBUTE_UNUSED.
22071         (expand_call): Initialize variable `insn'.
22072         (emit_library_call): Likewise for variable `high_to_save'.
22073         (emit_library_call_value): Likewise.
22074         (store_one_arg): Likewise for variables `lower_bound' and
22075         `upper_bound'.
22076
22077         * combine.c (try_combine): Likewise for variables `i2_code_number'
22078         and `other_code_number'.
22079         (find_split_point): Likewise for variables `pos', `unsignedp' and
22080         `inner'.
22081         (simplify_if_then_else): Likewise for variables `op' and `c1'.
22082         (simplify_and_const_int): Remove unused variable `width'.
22083         (merge_outer_ops): Likewise.
22084
22085         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
22086         HOST_WIDE_INT' when comparing against one.
22087         (simplify_relational_operation): Likewise.
22088         (cse_insn): Initialize variables `src_eqv_volatile',
22089         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
22090
22091         * final.c (init_final): Constify parameter `filename'.
22092         (final_start_function): Mark parameter `optimize' with
22093         ATTRIBUTE_UNUSED.
22094         (profile_function): Likewise for parameters `first' and `optimize'.
22095         (output_source_line): Likewise for parameter `file'.
22096
22097         * integrate.c (subst_constants): Cast a value to `size_t' when
22098         comparing against one.
22099         (mark_stores): Initialize variable `mode'.  Cast a value to
22100         `size_t' when comparing against one.
22101
22102         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
22103
22104         * loop.c (move_movables): Initialize variable `first'.
22105         (strength_reduce): Likewise for variable `increment'.
22106         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
22107         value to `size_t' when comparing against one.
22108         (load_mems): Initialize variable `end_label'.
22109
22110         * output.h (init_final): Constify parameter.
22111
22112         * reload.c (decompose): Initialize variable `base'.
22113
22114         * reload1.c (reload): Likewise for variable `is_scalar'.
22115         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
22116         (choose_reload_regs): Initialize variable `mode'.
22117         (emit_reload_insns): Likewise for variable `store_insn'.
22118         (reload_cse_noop_set_p): Mark parameter `insn' with
22119         ATTRIBUTE_UNUSED.
22120         (reload_combine): Initialize variable `set'.
22121
22122         * unroll.c (unroll_loop): Likewise for variable `local_label'.
22123         (copy_loop_body): Cast a value to `size_t' when comparing against
22124         one.
22125
22126         * varasm.c (assemble_variable): Initialize variable `size_tree'.
22127         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
22128         (remove_from_pending_weak_list): Mark parameter `name' with
22129         ATTRIBUTE_UNUSED.
22130
22131 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22132
22133         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
22134         gcse dump file.
22135
22136 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
22137
22138         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
22139         (ASM_DECLARE_FUNCTION_NAME): Define.
22140         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
22141         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
22142         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
22143         not already defined.
22144
22145 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
22146
22147         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
22148         of n_popped when call/call_value are not defined.
22149
22150 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
22151
22152         * tm.texi: GNU CC -> GCC conversion.
22153         (CC1_SPEC): Indicate it is used for all language front ends.
22154
22155 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
22156
22157         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
22158         NOTE_INSN_EH_REGION_END correctly.
22159
22160 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
22161                           Jeff Law <law@cygnus.com>
22162
22163         * loop.c (strength_reduce): Automatically unroll loops if the
22164         unrolled loop size is smaller than the rolled loop size.
22165
22166         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
22167         and delete comment that code should be rewritten.
22168
22169 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
22170
22171         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
22172         as reachable.
22173
22174         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
22175
22176 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22177
22178         * fixinc/mkfixinc.sh: Don't fix uwin headers.
22179         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
22180         (LINK_SPEC): Add -u _main when building executables.
22181         (ASM_DECLARE_FUNCTION): Update from Cygwin.
22182         (ASM_FILE_END): Use the default for ix86-pe.
22183         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
22184
22185 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
22186
22187         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
22188         and ASM_CLOSE_PAREN are empty strings.
22189
22190 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
22191                           Geoffrey Keating <geoffk@cygnus.com>
22192
22193         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
22194         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
22195         (unprotoize.o): Ditto.
22196         (test-protoize-simple): Don't define STD_PROTO_DIR.
22197         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
22198         changes to make 'test-protoize-simple' pass.
22199         (STD_PROTO_DIR): Remove define.
22200         (STANDARD_EXEC_PREFIX): Supply default define.
22201         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
22202         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
22203         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
22204         (GET_ENV_PATH_LIST): New macro.
22205         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
22206         (do_processing): Initialize default_syscalls_dir using new
22207         macros.  Use it to initialize syscalls_absolute_filename.
22208
22209 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
22210
22211         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
22212         B into a register before emit_conditional_move.
22213
22214 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
22215
22216         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
22217         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
22218         multiplicand out of (+ (* a b) (* c d)).
22219
22220 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
22221                           Richard Henderson  <rth@cygnus.com>
22222
22223         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
22224         (new_insn_dead_notes): Likewise.
22225         (update_n_sets): Likewise.
22226         (update_flow_info): Move to flow.c, renamed to update_life_info;
22227         extend to handle multiple source insns.
22228         * flow.c: Include resource.h
22229         (unlink_insn_chain): New.
22230         (split_hard_reg_notes): New.
22231         (maybe_add_dead_note): New.
22232         (maybe_add_dead_note_use): New.
22233         (find_insn_with_note): New.
22234         (new_insn_dead_notes): New.
22235         (update_n_sets): New.
22236         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
22237         (maybe_remove_dead_notes): New.
22238         (update_life_info): New.
22239         (prepend_reg_notes): New.
22240         (replace_insns): New.
22241         * output.h (update_life_info): Declare.
22242         * recog.c (split_block_insns): Use update_life_info.
22243         * resource.c (find_free_register): Use reg_alloc_order, don't use
22244         fixed regs, make sure the mode is supported, don't use new regs.
22245         (reg_dead_p): New.
22246         * rtl.h (replace_insns): Declare.
22247
22248 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
22249
22250         * expr.c (expand_expr): Cope with COND_EXPRs with one
22251         non-returning branch.
22252
22253 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
22254
22255         * expr.c (store_expr): Always pass down the target, even when not
22256         doing CSE.
22257
22258 1999-08-24  Nick Clifton  <nickc@cygnus.com>
22259
22260         * configure.in: Define target_cpu_default for v850 targets.
22261         * configure: Regenerate
22262
22263         * config/v850/v850.h (TARGET_CPU_generic): Define.
22264         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
22265         addresses are 4 byte aligned.
22266
22267         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
22268         addresses.
22269
22270 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22271
22272         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
22273         (main): Add prototypes.
22274
22275         * genattrtab.c (substitute_address, write_const_num_delay_slots,
22276         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
22277         (write_attr_get): Emit prototypes along with function definition.
22278         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
22279         (write_complex_function): Emit static prototype along with
22280         function definition.
22281
22282         * genemit.c (gen_split): Emit prototypes along with function
22283         definition.
22284
22285         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
22286         Likewise for predicates and `insn_operand_predicate'.
22287         (process_template): Emit static prototype along with function
22288         definition.
22289
22290         * genrecog.c (make_insn_sequence): Constify a char*.  Add
22291         prototypes for get_split_*().
22292         (write_subroutine): Emit prototypes along with function
22293         definition.
22294
22295 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22296
22297         * gcse.c (find_avail_set): Follow chains of register-register copies.
22298         Use oprs_not_set_p to guarantee that the returned value can be
22299         substituted.
22300         (cprop_insn): Don't verify the return value of find_avail_set with
22301         oprs_not_set_p.
22302
22303         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
22304         (cprop_cc0_jump): New function.
22305         (cprop_insn): Break out new function cprop_jump and use it.
22306         Also use cprop_cc0_jump for machines with CC0.
22307         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
22308
22309         * tree.h (current_function_calls_setjmp,
22310         current_function_calls_longjmp): Delete declarations.
22311         * dsp16xx.c: Include "function.h".
22312         * elxsi.c: Likewise.
22313         * gmicro.c: Likewise.
22314         * h8300.c: Likewise.
22315         * i370.c: Likewise.
22316         * m32r.c: Likewise.
22317         * mn10200.c: Likewise.
22318         * mn10300.c: Likewise.
22319         * ns32k.c: Likewise.
22320         * spur.c: Likewise.
22321         * v850.c: Likewise.
22322
22323         * rtl.h (rtx_equal_function_value_matters): Declare.
22324         * toplev.c (rtx_equal_function_value_matters): Don't declare.
22325         * cse.c: Likewise.
22326         * function.c: Likewise.
22327         * emit-rtl.c: Likewise.
22328
22329 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
22330
22331         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
22332         call.
22333
22334 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
22335
22336         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
22337         exactly.
22338
22339 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
22340
22341         * cpp.texi: Add a node documenting macro varargs (copied
22342         from extend.texi).
22343
22344 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
22345
22346         * cppspec.c: Put a null pointer at the end of the new argv.
22347
22348 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
22349
22350         * configure.in: Remove code to select/de-select the haifa
22351         scheduler.  Every scheduled port gets haifa now.
22352         * configure: Rebuilt.
22353         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
22354         * sched.c Deleted.
22355         * Makefile.in: Corresponding changes.
22356
22357 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22358
22359         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
22360         All callers changed.
22361         (prepare_float_lib_cmp): Likewise.
22362         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
22363         * expr.h (emit_float_lib_cmp): Delete declaration.
22364         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
22365         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
22366         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
22367         specially.
22368         (cmptf): Now conditional on TARGET_HARD_QUAD.
22369
22370 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
22371
22372         * resource.c (mark_target_live_regs): Use
22373         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
22374
22375 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22376
22377         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
22378
22379         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
22380
22381         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
22382
22383 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22384
22385         * rtl.h (rtx_format): Constify a char*.
22386
22387         * rtl.c (rtx_format): Likewise.
22388         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
22389         (init_rtl): Use accessor macro, not `rtx_format'.
22390
22391         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
22392         char*.
22393
22394         * caller-save.c (mark_referenced_regs): Likewise.
22395
22396         * combine.c (subst, make_compound_operation, known_cond,
22397         gen_rtx_combine, update_table_tick, get_last_value_validate,
22398         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
22399
22400         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
22401         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
22402         count_reg_usage): Likewise.
22403
22404         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
22405         Likewise.
22406
22407         * final.c (leaf_renumber_regs_insn): Likewise.
22408
22409         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
22410         dump_edge_info, count_reg_references): Likewise.
22411
22412         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
22413         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
22414         Likewise.
22415
22416         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
22417         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
22418         add_label_notes): Likewise.
22419
22420         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
22421         clear_struct_flag, count_sub_rtxs, count_alternatives,
22422         compares_alternatives_p, contained_in_p, walk_attr_value,
22423         write_expr_attr_cache): Likewise.
22424
22425         * genconfig.c (walk_insn_part): Likewise.
22426
22427         * genemit.c (max_operand_1, gen_exp): Likewise.
22428
22429         * genextract.c (walk_rtx): Likewise.
22430
22431         * genflags.c (num_operands): Likewise.
22432
22433         * genoutput.c (scan_operands): Likewise.
22434
22435         * genpeep.c (match_rtx): Likewise.
22436
22437         * genrecog.c (add_to_sequence): Likewise.
22438
22439         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
22440         Likewise.
22441
22442         * integrate.c (save_constants, copy_for_inline,
22443         copy_rtx_and_substitute, subst_constants, restore_constants):
22444         Likewise.
22445
22446         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
22447         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
22448
22449         * local-alloc.c (contains_replace_regs, memref_referenced_p):
22450         Likewise.
22451
22452         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
22453         add_label_notes, replace_call_address, count_nonfixed_reads,
22454         invariant_p, find_single_use_in_loop, find_mem_givs,
22455         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
22456         Likewise.
22457
22458         * print-rtl.c (reg_names, print_rtx): Likewise.
22459
22460         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
22461
22462         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
22463         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
22464         print_blocks): Likewise.
22465
22466         * regclass.c (fix_register, record_address_regs,
22467         reg_scan_mark_refs): Likewise.
22468
22469         * regmove.c (stable_but_for_p): Likewise.
22470
22471         * reload.c (loc_mentioned_in_p, operands_match_p,
22472         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
22473         copy_replacements, refers_to_regno_for_reload_p,
22474         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
22475         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
22476         Likewise.
22477
22478         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
22479         delete_address_reloads_1, count_occurrences,
22480         reload_cse_mem_conflict_p, reload_combine_note_use,
22481         add_auto_inc_notes): Likewise.
22482
22483         * resource.c (mark_referenced_resources, mark_set_resources):
22484         Likewise.
22485
22486         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
22487         reg_mentioned_p, regs_set_between_p, modified_between_p,
22488         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
22489         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
22490         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
22491         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
22492
22493         * sched.c (sched_analyze_2, attach_deaths): Likewise.
22494
22495         * stupid.c (stupid_mark_refs): Likewise.
22496
22497         * unroll.c (remap_split_bivs): Likewise.
22498
22499         * varasm.c (mark_constants): Likewise.
22500
22501         * a29k/a29k.c (uses_local_reg_p): Likewise.
22502
22503         * alpha/alpha.c (summarize_insn): Likewise.
22504
22505         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
22506         eliminate_lr2ip): Likewise.
22507
22508         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
22509
22510         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
22511         reg_mentioned_in_mem): Likewise.
22512
22513         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
22514         symbolic_reference_mentioned_p): Likewise.
22515
22516         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
22517
22518         * sh/sh.c (regs_used, mark_use): Likewise.
22519
22520         * vax/vax.c (vax_rtx_cost): Likewise.
22521
22522 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22523
22524         * machmode.h (mode_name): Constify a char*.
22525
22526         * rtl.c (mode_name): Likewise.
22527
22528         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
22529
22530         * optabs.c (init_libfuncs): Constify a char*.
22531
22532         * print-tree.c (mode_name): Remove redundant declaration.
22533         (print_node): Use accessor macro, not `mode_name'.
22534
22535         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
22536         not `mode_name'.
22537         (new_spill_reg): Constify a char*.
22538
22539         * tree.c (mode_name): Remove redundant declaration.
22540
22541 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22542
22543         * rtl.c (rtx_name): Constify a char*.
22544
22545         * rtl.h (rtx_name, fix_sched_param): Likewise.
22546
22547         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
22548         (mypr): Use accessor macro, not `rtx_name'.
22549
22550         * genemit.c (print_code): Constify a char*.
22551
22552         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
22553
22554         * genpeep.c (print_code): Constify a char*.
22555
22556         * genrecog.c (print_code): Likewise.
22557
22558         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
22559         end_bb): Add static prototype.
22560         (draw_edge): Constify a char*.
22561         (end_bb): Remove unused parameter.
22562
22563         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
22564         print_block_visualization): Constify a char*.
22565
22566 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
22567
22568         * c-common.c (c_get_alias_set): Update comment.
22569
22570 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
22571
22572         * linux.h (LIB_SPEC): Added.
22573
22574 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22575
22576         * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
22577
22578 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
22579
22580         * tree.c (expr_check): Fix typo in last change.
22581
22582 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
22583
22584         * rtl.def (NOTE): Change format to "iuu0n".
22585         (ADDR_DIFF_VEC): Change format to "eEee0".
22586         (ADDRESSOF): Change format to "eit".
22587
22588         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
22589         (RTVEC_ELT): Change to match.
22590         (XVECEXP): Use XVEC and RTVEC_ELT.
22591         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
22592         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
22593         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
22594         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
22595         TRAP_CONDITION, TRAP_CODE): Use XEXP.
22596         (INTVAL): Use XWINT.
22597         (ADDRESSOF_DECL): Use XTREE.
22598         (SET_ADDRESSOF_DECL): Delete.
22599         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
22600         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
22601         ifdefed out since 2.6 at least.
22602         (gen_rtvec_vv): Delete prototype.
22603
22604         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
22605         not rtunion.
22606         (copy_most_rtx): Handle 't' format letter.
22607         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
22608         (gen_rtvec_vv): Delete function.  All callers changed to use
22609         gen_rtvec_v instead.
22610         * print-rtl.c (print_rtx): Move special casing of NOTEs to
22611         the '0' format letter.
22612
22613         * function.c (gen_mem_addressof): Don't use
22614         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
22615         instead.
22616         * integrate.c (copy_rtx_and_substitute): Likewise.
22617         Copy 't' slots with XTREE.
22618         (subst_constants): Treat 't' slots like '[swi]' slots.
22619         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
22620         * jump.c (rtx_equal_for_thread_p): Likewise.
22621         * rtlanal.c (rtx_equal_p): Likewise.
22622         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
22623         only four arguments.
22624         * gengenrtl.c (type_from_format): Provide correct types for
22625         'b' and 't' slots.
22626
22627
22628         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
22629         If a recent gcc is in use (always in stage2 and beyond), use
22630         statement expressions, so we don't make a function call unless
22631         the check fails.  Evaluate arguments exactly once.
22632         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
22633         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
22634         Delete.
22635         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
22636         they evaluate their arguments exactly once, irrespective of
22637         the compiler in use.
22638
22639         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
22640         is used by the currently-enabled check macros.  This is:
22641         (tree_check_failed, tree_class_check_failed): For gcc.
22642         (tree_check, tree_class_check, cst_or_constructor_check,
22643         expr_check): For other compilers.
22644
22645         * gencheck.c: Do not define any *_CHECK1 macros.
22646
22647 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
22648                           Mark Mitchell <mark@codesourcery.com>
22649
22650         * c-common.c (c_get_alias_set): Fix support for poitners and
22651         references.
22652
22653 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
22654
22655         * alias.c: Include tree.h.
22656         (nonlocal_reference_p, mark_constant_function): New functions.
22657         * flow.c (life_analysis): Call mark_constant_function.
22658         * rtl.h (mark_constant_function): Declare it.
22659
22660 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
22661
22662         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
22663         unrecognisable switches.
22664
22665 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22666
22667         * loop.c (recombine_givs): Set ix field after sorting.
22668         (recombine_givs): Remove bogus index / giv lockstep looping.
22669
22670 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22671
22672         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
22673         on CODE.
22674         (emit_store_flag_force): Use do_compare_rtx_and_jump.
22675         (do_cmp_and_jump): Formatting fixes.
22676         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
22677         do_compare_rtx_and_jump instead of compare_from_rtx.
22678         (do_compare_rtx_and_jump): New function; mostly copied from
22679         compare_from_rtx.
22680         (do_jump_for_compare): Delete.
22681         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
22682         MIN_EXPR.
22683         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
22684         of compare/do_jump_for_compare pairs.
22685         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
22686         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
22687         compare_from_rtx/do_jump_for_compare pairs.
22688         (do_jump_by_parts_equality): Likewise.
22689         (do_jump_by_parts_equality_rtx): Likewise.
22690         * expr.h (do_compare_rtx_and_jump): Declare.
22691         * optabs.c (prepare_cmp_insn): New function, contains most of the code
22692         that used to be in emit_cmp_insn.
22693         (cmp_available_p): New function.
22694         (prepare_operand): New function.
22695         (emit_cmp_and_jump_insn_1): New function, contains some code that used
22696         to be in emit_cmp_insn.
22697         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
22698         parameters to be pointers; don't emit final compare but modify some of
22699         the values pointed to by the args so the caller can perform the
22700         correct comparison.
22701         (expand_binop): Call emit_store_flag_force with signed forms of
22702         comparison code.
22703         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
22704         emit_jump_insn pair.
22705         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
22706         emit_cmp_and_jump_insn_1.  Call emit_queue.
22707         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
22708         arg.
22709         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
22710         jump sets cc0 before deleting it.
22711         * integrate.c (expand_inline_function): Likewise.
22712         * unroll.c (unroll_loop): Similar changes in several places.
22713         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
22714         before deleting it.
22715
22716 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22717
22718         * Makefile.in (insn-recog.o): Update dependencies.
22719         * genrecog.c (main): Make generated file include "function.h".
22720
22721 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
22722
22723         * cse.c (cse_insn): Call never_reached_warning when a jump is
22724         changed to be unconditional.
22725         * flags.h: Declare warn_notreached.
22726         * flow.c (delete_block): Call never_reached_warning when
22727         a block is deleted.
22728         * jump.c (delete_barrier_successors): Call never_reached_warning
22729         when we delete everything after a BARRIER.
22730         (never_reached_warning): New function.
22731         * rtl.h: Declare never_reached_warning.
22732         * toplev.c (warn_notreached): New variable.
22733         (lang_independent_options): Set warn_notreached
22734         when -Wunreachable-code.
22735         (compile_file): We need line numbers for -Wunreachable-code.
22736
22737 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
22738
22739         * haifa-sched.c (insn_unit): Fix typo on out of range test.
22740         * sched.c (insn_unit): Likewise.
22741
22742 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
22743
22744         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
22745
22746 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22747
22748         * flow.c (create_edge_list): Use xmalloc, not malloc.
22749
22750 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
22751
22752         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
22753         C-style comments.  Do not lose the character before double slash.
22754
22755 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22756
22757         * basic-block.h (struct edge_list): Stucture to maintain a vector
22758         of edges.
22759         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
22760          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
22761         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
22762         New function prototypes.
22763         * flow.c (create_edge_list): Function to create an edge list.
22764         (free_edge_list): Discards memory used by an edge list.
22765         (print_edge_list): Debug output showing an edge list.
22766         (verify_edge_list): Internal consistency check for an edge list.
22767         (find_edge_index): Function to find an edge index for a pred and succ.
22768
22769 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
22770
22771         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
22772         hashtable.
22773
22774 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
22775
22776         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
22777
22778 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
22779
22780         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
22781
22782 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
22783
22784         * toplev.c (rest_of_compilation): Allow machine dependent
22785         reorganisation pass to place information into the RTL dump
22786         file if it so wishes.
22787
22788 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
22789
22790         * explow.c (hard_function_value): Use VOIDmode instead of
22791         MAX_MACHINE_MODE.
22792         * stmt.c (expand_return): Likewise.
22793         * stor-layout.c (get_best_mode): Likewise.
22794
22795         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
22796         emit call instead of emit_insn call.
22797
22798 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22799
22800         * configure.in: Handle --disable/enable-win32-registry.
22801         * install.texi: Document --disable/enable-win32-registry.
22802         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
22803         (WIN32_REGISTRY_KEY): New macro.
22804         * prefix.c: Use to enable/disable win32-specific code.
22805         (lookup_key): Use versioned key.
22806         * configure: Regenerate.
22807         * config.in: Likewise.
22808
22809 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
22810
22811         * cpplib.c (read_line_number): New fn, split out of...
22812         (do_line): Here.
22813
22814 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
22815
22816         tree.c (lang_unsave_expr_now) : New.
22817         (unsave_expr_now): Call lang_unsave_expr_now.
22818         tree.h (lang_unsave_expr_now) : New.
22819
22820 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
22821
22822         * toplev.c (flag_new_exceptions): On by default.
22823
22824 1999-08-13  Michael Meissner  <meissner@cygnus.com>
22825
22826         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
22827
22828 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
22829
22830         * dwarfout.c (fundamental_type_code): Return FT_boolean for
22831         INTEGER_TYPE with precision==1, it's __java_boolean.
22832
22833 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22834
22835         * global.c (prune_preferences): Move some invariants out of the
22836         inner loop.
22837
22838 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
22839
22840         * configure.in (alpha*-dec-osf*): Add osf5.
22841
22842 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
22843
22844         * configure.in: Rework handling of ARM GNU/Linux slightly.
22845         (arm*-*-linux-gnuoldld): New target.
22846         * configure: Regenerate.
22847         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
22848         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
22849         * config/arm/linux-oldld.h: New file.
22850         * config/arm/linux-elf26.h: Don't include linux-elf.h.
22851         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
22852         Don't define.
22853         * config/arm/linux-elf.h (ASM_SPEC): Define.
22854         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
22855         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
22856         for 26-bit APCS and old linker.
22857         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
22858         `arm_elf'.
22859         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
22860         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
22861         don't define `arm' or `arm_elf'.
22862         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
22863         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
22864
22865 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
22866
22867         * rtl.texi: Fix typo.
22868
22869 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
22870
22871         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
22872
22873 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
22874
22875         * extend.texi (C++ Signatures): Remove node.
22876         * invoke.texi: Remove discussion of -fhandle-signatures,
22877         signature, sigof, __signature__, and __sigof__.
22878
22879 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
22880
22881         * Makefile.in (JAVAGC): Removed.
22882
22883 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
22884
22885         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
22886
22887 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
22888
22889         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
22890
22891 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
22892
22893         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
22894         a register that is already known to be a pointer.
22895
22896 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
22897
22898         * fixinc/inclhack.tpl: Only install assert.h conditionally.
22899         * fixinc/inclhack.sh: Regenerated.
22900         * fixinc/fixincl.sh: Regenerated.
22901
22902 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
22903
22904         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
22905         Fix documentation of -ansi flag to describe its C++ behavior.
22906         Remove bogus reference to GCC 2.9.
22907
22908 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
22909
22910         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
22911         note if it is non-NULL.
22912
22913 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22914
22915         * except.h (eh_nesting_info): Add new structure defintion.
22916         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
22917         (reachable_handlers, update_rethrow_references): Add function
22918         prototypes.
22919         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
22920         a rethrow symbol instead of an integer exception region number.
22921         * flow.c (Make_edges): Use new exception nesting routines to determine
22922         which handlers are reachable from a CALL or asynchronous insn.
22923         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
22924         goto receivers.
22925         (delete_eh_regions): Update rethrow labels, and don't delete
22926         regions which are the target of a rethrow.
22927         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
22928         avoid overloading the SYMBOL_REF_USED flag.
22929         (rethrow_symbol_map): Use new rethrow_ref field.
22930         (rethrow_used): Use new rethrow_ref field.
22931         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
22932         of an integer.  Fix formatting.
22933         (output_exception_table_entry): Use new rethrow_ref field.
22934         (can_throw): Check for EH_REGION_NOTE before deciding
22935         whether a CALL can throw or not.
22936         (scan_region): Call rethrow_used() instead of accessing data structure.
22937         (update_rethrow_references): New function to make sure only regions
22938         which are still targets of a rethrow are flagged as such.
22939         (process_nestinfo): New static function to initialize a handler
22940         list for a specific region.
22941         (init_eh_nesting_info): New function to allocate and initialize
22942         the list of all EH handlers reachable from all regions.
22943         (reachable_handlers): New function to retrieve the list of handlers
22944         reachable from a specific region and insn.
22945         (free_eh_nesting_info): New function to dispose of a list of
22946         reachable handlers.
22947
22948 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
22949
22950         * flow.c (split_edge): Set JUMP_LABEL field.
22951         (commit_one_edge_insertion): Set head correctly for insert_before.
22952         When inserting insns, update insn block numbers if allocated.
22953
22954 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22955
22956         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
22957         retry_incomplete_types): Add static prototype.
22958         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
22959         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
22960         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
22961         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
22962         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
22963         Constify a char*.
22964
22965         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
22966         dwarf2out_start_source_file, dwarf2out_line): Likewise.
22967
22968 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22969
22970         * output.h (assemble_name): Constify a char*.
22971
22972         * varasm.c (UNIQUE_SECTION, assemble_start_function,
22973         assemble_variable, assemble_name): Likewise.
22974
22975         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
22976
22977         * arm/pe.c (arm_pe_unique_section): Likewise.
22978
22979         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
22980
22981         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
22982
22983         * i386/interix.c (i386_pe_unique_section): Likewise.
22984
22985         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
22986
22987         * i386/winnt.c (i386_pe_unique_section): Likewise.
22988
22989         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
22990
22991         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
22992
22993         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
22994
22995         * pa/pa.c (output_call): Likewise.
22996
22997         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
22998
22999         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
23000
23001         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
23002         Likewise.
23003
23004         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
23005         Likewise.
23006
23007         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
23008
23009         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
23010         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
23011
23012         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
23013
23014 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23015
23016         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
23017
23018 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23019
23020         * tree.h (lang_identify): Constify a char*.
23021         (print_error_function): Add extern prototype.  Constify a char*.
23022
23023         * c-lang.c (lang_identify): Constify a char*.
23024
23025         * objc/objc-act.c (lang_identify): Constify a char*.
23026
23027 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23028
23029         * genpeep.c (main): Make generated file include "function.h".
23030         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
23031
23032 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23033
23034         * Makefile.in: Update dependencies.
23035         * alias.c: Include "function.h"
23036         * c-decl.c: Likewise.
23037         * caller-save.c: Likewise.
23038         * calls.c: Likewise.
23039         * combine.c: Likewise.
23040         * cse.c: Likewise.
23041         * explow.c: Likewise.
23042         * final.c: Likewise.
23043         * global.c: Likewise.
23044         * graph.c: Likewise.
23045         * local-alloc.c: Likewise.
23046         * loop.c: Likewise.
23047         * optabs.c: Likewise.
23048         * profile.c: Likewise.
23049         * recog.c: Likewise.
23050         * regclass.c: Likewise.
23051         * regmove.c: Likewise.
23052         * reload.c: Likewise.
23053         * reorg.c: Likewise.
23054         * resource.c: Likewise.
23055         * sched.c: Likewise.
23056         * stupid.c: Likewise.
23057         * config/1750a/1750a.c: Likewise.
23058         * config/a29k/a29k.c: Likewise.
23059         * config/arc/arc.c: Likewise.
23060         * config/arm/arm.c: Likewise.
23061         * config/arm/thumb.c: Likewise.
23062         * config/c4x/c4x.c: Likewise.
23063         * config/clipper/clipper.c: Likewise.
23064         * config/convex/convex.c: Likewise.
23065         * config/fx80/fx80.c: Likewise.
23066         * config/i860/i860.c: Likewise.
23067         * config/m68k/m68k.c: Likewise.
23068         * config/m88k/m88k.c: Likewise.
23069         * config/mips/mips.c: Likewise.
23070         * config/pdp11/pdp11.c: Likewise.
23071         * config/pyr/pyr.c: Likewise.
23072         * config/romp/romp.c: Likewise.
23073         * config/sh/sh.c: Likewise.
23074         * config/tahoe/tahoe.c: Likewise.
23075         * config/vax/vax.c: Likewise.
23076         * config/we32k/we32k.c: Likewise.
23077         * config/sparc/sparc.c: Include "function.h".
23078         (mem_min_alignment): Test current_function rather than
23079         regno_pointer_align.
23080         * config/pa/pa.c: Likewise.
23081         (compute_frame_size): Delete declaration of
23082         current_function_outgoing_args_size.
23083         * config/arc/arc.h (current_function_varargs): Delete declaration.
23084         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
23085         declaration.
23086         * config/i370/i370.h (current_function_outgoing_args_size): Delete
23087         declaration.
23088         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
23089         current_function_uses_pic_offset_table.
23090         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
23091         of current_function_returns_pointer.
23092         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
23093         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
23094         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
23095         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
23096         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
23097         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
23098         * config/m88k/m88k.c: Include "function.h"
23099         (call_used_regs, current_function_pretend_args_size,
23100         current_function_outgoing_args_size, frame_pointer_needed): Delete
23101         declarations.
23102         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
23103         declaration.
23104         * config/mips/mips.h (current_function_calls_alloca): Delete
23105         declaration.
23106         * config/mn10200/mn10200.h (current_function_needs_context,
23107         rtx_equal_function_value_matters): Delete declarations.
23108         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
23109         flag_pic): Delete declarations.
23110         * config/pa/pa.h (current_function_pretend_args_size,
23111         current_function_decl): Delete declarations.
23112         * config/pa/som.h (current_function_varargs): Delete declaration.
23113         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
23114         declaration.
23115         * config/pyr/pyr.h (current_function_pretend_args_size,
23116         current_function_args_size, current_function_calls_alloca): Delete
23117         declarations.
23118         * config/sh/sh.h (current_function_varargs): Delete declaration.
23119         * config/sparc/sparc.h (current_function_outgoing_args_size,
23120         current_function_calls_alloca, current_function_decl): Delete
23121         declarations.
23122         * config/spur/spur.h (current_function_pretend_args_size,
23123         current_function_calls_alloca): Delete declarations.
23124         * config/v850/v850.c (current_function_outgoing_args_size): Delete
23125         declaration.
23126         * config/vax/vms.h (current_function_name): Delete declaration.
23127         * gcse.c: Include "function.h".
23128         (current_function_name, current_function_calls_setjmp): Delete
23129         declarations.
23130         * haifa-sched.c: Include "function.h".
23131         (forced_labels): Delete declaration.
23132         * jump.c: Likewise.
23133         * reg-stack.c: Likewise.
23134         * reload1.c: Likewise.
23135         * genemit.c (main): Make generated file include function.h.
23136         * genoutput.c (output_prologue): Likewise.
23137
23138         * builtins.c (saveregs_value, apply_args_value): Delete variables.
23139         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
23140         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
23141         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
23142         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
23143         macros for some of them.
23144         (emit_filename, emit_lineno): Delete declarations.
23145         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
23146         regno_pointer_* variables through current_function.
23147         (gen_inline_header_rtx): Delete function.
23148         (save_emit_status): Delete function.
23149         (set_new_last_label_num): New function.
23150         (clear_emit_caches): New function.
23151         (restore_emit_status): Just clear last_labelnum and call
23152         clear_emit_caches.
23153         (get_last_insn_anywhere): Variable sequence_stack is now accessed
23154         through macro seq_stack.
23155         (add_insn_after): Likewise.
23156         (add_insn_before): Likewise.
23157         (remove_insn): Likewise.
23158         (pop_topmost_sequence): Likewise.
23159         (in_sequence_p): Likewise.
23160         (start_sequence_for_rtl_expr): Likewise.
23161         (start_sequence): Likewise, and likewise for
23162         sequence_rtl_expr/seq_rtl_expr.
23163         (push_topmost_sequence): Likewise.
23164         (end_sequence): Likewise.
23165         (init_virtual_regs): Now takes a "struct emit_status *" argument.
23166         All callers changed.  Store into that pointer instead of globals.
23167         (init_emit): Allocate emit elt of current_function.
23168         Changes for sequence_rtl_expr/sequence_stack renaming.
23169         Call clear_emit_caches instead of doing it in-line.
23170         Access regno_pointer_* variables through current_function.
23171         (init_emit_once) Don't clear sequence_stack.
23172
23173         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
23174         Delete variables.
23175         (arg_pointer_save_area): Delete declaration.
23176         (finish_expr_for_function): Renamed from init_queue; no longer static.
23177         (init_expr): Don't call init_queue.
23178         (save_expr_status, restore_expr_status): Delete functions.
23179         (expand_expr): Changes to reflect new layout of struct function.
23180         Don't access current_function_check_memory_usage when current_function
23181         is 0.
23182         * expr.h (forced_labels, save_expr_regs, saveregs_value,
23183         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
23184         current_function_outgoing_args_size, current_function_arg_offset_rtx,
23185         current_function_uses_const_pool, function_call_count,
23186         current_function_uses_pic_offset_table, nonlocal_labels,
23187         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
23188         current_function_check_memory_usage, nonlocal_goto_handler_slots,
23189         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
23190         declarations.
23191         (finish_expr_for_function): Declare.
23192         * flags.h (current_function_has_nonlocal_label,
23193         current_function_has_nonlocal_goto, current_function_is_thunk,
23194         current_function_has_computed_jump): Delete declarations.
23195         * flow.c (forced_labels): Delete declaration.
23196         * function.c (current_function_pops_args,
23197         current_function_returns_struct, current_function_returns_pcc_struct,
23198         current_function_needs_context, current_function_calls_setjmp,
23199         current_function_calls_longjmp, current_function_has_nonlocal_label,
23200         current_function_has_nonlocal_goto, current_function_is_thunk,
23201         current_function_has_computed_jump, current_function_calls_alloca,
23202         current_function_contains_functions, current_function_returns_pointer,
23203         current_function_epilogue_delay_list, current_function_args_size,
23204         current_function_pretend_args_size, current_function_arg_offset_rtx,
23205         current_function_outgoing_args_size, current_function_varargs,
23206         current_function_stdarg, current_function_args_info, cleanup_label,
23207         current_function_name, current_function_uses_const_pool,
23208         current_function_instrument_entry_exit, current_function_return_rtx,
23209         current_function_uses_pic_offset_table, nonlocal_labels,
23210         current_function_internal_arg_pointer, current_function_cannot_inline,
23211         current_function_check_memory_usage, function_call_count,
23212         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
23213         nonlocal_goto_stack_level, return_label, save_expr_regs,
23214         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
23215         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
23216         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
23217         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
23218         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
23219         Delete variables.
23220         (push_function_context_to): Don't save them.  Don't call
23221         save_storage_status, save_emit_status or save_expr_status.
23222         (pop_function_context_from): Don't restore them.  Don't call
23223         restore_storage_status or restore_expr_status.
23224         (get_func_frame_size): New function.
23225         (get_frame_size): Use it.
23226         (assign_outer_stack_local): Reflect some member name changes in struct
23227         function.
23228         (put_reg_into_stack): Likewise.
23229         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
23230         seq_rtl_expr.
23231         (fixup_var_refs): Likewise.
23232         (fix_lexical_addr): Likewise.
23233         (trampoline_address): Likewise.
23234         (prepare_function_start): Clear field inlinable of current_function.
23235         (init_function_for_compilation): New function.
23236         (expand_dummy_function_end): New function.
23237         (expand_function_end): Call finish_expr_for_function.
23238         * function.h (struct emit_status): New; fields moved here from struct
23239         function and from global variables.  Add accessor macros for some of
23240         the fields.
23241         (struct expr_status): Likewise.
23242         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
23243         (struct function): Add fields expr and emit, inlinable, inl_emit,
23244         original_arg_vector, original_decl_initial, inl_last_parm_insn,
23245         inl_max_label_num.  Add many comments.
23246         Add accessor macros for all elts of struct function that no longer
23247         have a global variable.
23248         (cleanup_label, return_label, frame_offset, tail_recursion_label,
23249         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
23250         stack_slot_list): Delete declarations.
23251         (get_func_frame_size): Declare.
23252         (save_expr_status, restore_expr_status, save_emit_status,
23253         save_storage_status, restore_storage_status): Delete declarations.
23254         (init_virtual_regs): Declare.
23255         * output.h (current_function_pops_args,
23256         current_function_returns_struct, current_function_returns_pcc_struct,
23257         current_function_needs_context, current_function_calls_setjmp,
23258         current_function_calls_longjmp, current_function_calls_alloca,
23259         current_function_has_nonlocal_label, current_function_varargs,
23260         current_function_has_computed_jump, current_function_returns_pointer,
23261         current_function_contains_functions, current_function_args_size,
23262         current_function_pretend_args_size, current_function_stdarg,
23263         current_function_outgoing_args_size, current_function_args_info,
23264         current_function_name, current_function_return_rtx,
23265         current_function_epilogue_delay_list,
23266         current_function_uses_const_pool, current_function_cannot_inline):
23267         Delete declarations.
23268         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
23269         regno_reg_rtx): Delete declaration.
23270         (REGNO_POINTER_FLAG): Delete macro.
23271         * stmt.c (expand_goto): Changes to reflect that some fields in struct
23272         function were renamed.
23273         * stor-layout.c (save_storage_status, restore_storage_status): Delete
23274         functions.
23275         * toplev.c: Include "function.h".
23276         (current_function_decl): Delete declaration.
23277         (compile_file): Call init_dummy_function_start and
23278         expand_dummy_function_end around some initializations that need to
23279         emit rtl.
23280         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
23281         Call init_function_for_compilation.
23282         * unroll.c: Include "function.h"
23283         (unroll_loop): Access regno_pointer_* variables through
23284         current_function.
23285
23286         * tree.h (struct tree_decl): Add elt f to saved_insns member.
23287         (DECL_SAVED_INSNS): use it.
23288         (expand_dummy_function_end): Declare.
23289         (init_function_for_compilation): Declare.
23290         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
23291         that it's no longer an INLINE_HEADER.
23292         (expand_call): Likewise.
23293         * integrate.c (finish_inline): Delete function.
23294         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
23295         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
23296         args.  Don't generate an INLINE_HEADER rtx, just return the arg
23297         vector.  All callers changed.
23298         (save_for_inline_copying):  Create a duplicate struct emit_status to
23299         hold the emit state for compiling the current function.  Use this and
23300         the other new fields in struct function that are for integration
23301         instead of an INLINE_HEADER.
23302         Use memcpy instead of bcopy.
23303         Store the current struct function in DECL_SAVED_INSNS of fndecl.
23304         (save_for_inline_nocopy): Similar changes, except no new emit_status
23305         is needed here.
23306         (expand_inline_function): Get information from function structure,
23307         not from an inline header rtx.
23308         (output_inline_function): Lose code to extract the necessary
23309         information from an inline header; simply put back the function
23310         structure into current_function.  Clear its inlinable elt.
23311         * rtl.def (INLINE_HEADER): Delete.
23312         * rtl.h: Delete all accessors for an INLINE_HEADER.
23313         (gen_inline_header_rtx): Delete declaration.
23314         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
23315         Delete declarations.
23316         (REGNO_POINTER_ALIGN): Delete.
23317         (clear_emit_caches): Declare.
23318         (set_new_last_label_num): Declare.
23319
23320 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
23321
23322         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
23323
23324         * except.c (expand_eh_region_start_for_decl): Always start a new block.
23325         * stmt.c (is_eh_region): Make sure current_function is present, too.
23326
23327 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
23328
23329         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
23330         for 64bit PA targets.
23331
23332         * pa.h (SELECT_SECTION): Define.
23333         * som.h (SELECT_SECTION): Delete.
23334
23335 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23336
23337         * alias.c (init_alias_analysis): Wrap call to
23338         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
23339
23340 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
23341
23342         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
23343         <sys/asm.h> contains an asm comment with an apostrophe
23344         * fixinc/inclhack.sh:  regen
23345         * fixinc/fixincl.x:  regen
23346
23347 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
23348
23349         * function.c (init_function_start): Clear prologue & epilogue.
23350         (prologue_epilogue_contains): New function.
23351         * alias.c (init_alias_analysis): Use it.
23352         * rtl.h (prologue_epilogue_contains): Declare it.
23353
23354 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
23355
23356         * jump.c (onlyjump_p): New function.
23357         * rtl.h: Declare it.
23358         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
23359         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
23360
23361 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
23362
23363         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
23364         to invert loops.  Simplify block scanning.
23365
23366 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
23367
23368         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
23369         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
23370
23371 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
23372
23373         * config/sparc/liteelf.h: New file to support sparclite-elf target
23374         * config/sparc/t-sp86x: New file to support sparc86x targets
23375         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
23376         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
23377         * configure.in: Support above target triplets
23378         * configure: Regenerated
23379
23380 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
23381
23382         * fixinc/server.c (server_setup): Do not prefix function used as
23383         parameter with `&'.
23384
23385 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
23386
23387         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
23388         Remove fp reg alternatives.
23389
23390 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
23391
23392         * Makefiin (TAROUTOPTS): Kill.
23393         (install-headers-tar): Use "xpf" for tar headerfile extraction
23394         * i370/x-oe (TAROUTOPTS): Delete.
23395         * m68k/x-apollo68 (TAROUTOPTS): Delete.
23396         * m68k/x-hp320 (TAROUTOPTS): Delete.
23397         * m68k/x-hp320g (TAROUTOPTS): Delete.
23398         * gcc.texi: Update bug reporting text.
23399
23400 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
23401
23402         * reg-stack.c (change_stack) Fixed problem with negative array index.
23403
23404 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
23405
23406         * extend.texi, install.texi: Fix spelling mistakes.
23407
23408         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
23409         (s-attrtab); No longer try to use pre-made insn-attrtab file.
23410         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
23411         PREMADE_ATTRTAB_MD.
23412         * mips/t-ecoff: Likewise.
23413         * mips/t-elf: Likewise.
23414         * mips/t-mips: Likewise.
23415         * mips/t-osfrose: Likewise.
23416         * mips/t-r3900: Likewise.
23417         * mips/t-svr3: Likewise.
23418         * mips/t-svr4: Likewise.
23419         * mips/t-ultrix: Likewise.
23420
23421         * gcc.texi: Document recommend means to provide software floating
23422         point libraries in libgcc.a
23423
23424 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
23425
23426         * c-lex.c (yylex): We can have a number with no digits.
23427
23428 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
23429
23430         * jump.c (delete_prior_computation): New function, broken
23431         out of delete_computation.  Check for side effects with
23432         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
23433         multi-word hard registers.
23434         (delete_computation): Use it.  Check for side effects with
23435         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
23436         missing REG_DEAD note for a register which is both set and
23437         used by an insn.
23438
23439 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
23440
23441         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
23442         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
23443         (ASM_FILE_START): Import _mcount with the right type.
23444         (ASM_DECLARE_FUNCTION_NAME): Define.
23445         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
23446         * pa.c (output_function_prologue): Always emit the function's label
23447         here.
23448         * pa.h (TEXT_SPACE_P): Define.
23449         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
23450         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
23451         * som.h (TEXT_SPACE_P): Delete.
23452         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
23453         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
23454
23455 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
23456
23457         * expr.c (emit_group_load): Allow src to be a CONCAT.
23458
23459 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23460
23461         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
23462         (___mulsi3): Use '!' comment character.
23463
23464 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23465
23466         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
23467
23468 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
23469
23470         * gcc.c: Update URLs and mail addresses.
23471         * gcc.texi: Likewise.
23472
23473 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
23474
23475         * rs6000.c (current_file_function_operand): Return zero for
23476         weak functions.
23477         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
23478         weak symbols.
23479         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
23480         for weak symbols.
23481
23482 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
23483
23484         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
23485         allocate space in the stack frame for the PIC register.
23486
23487 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
23488
23489         * m68k.md (xordi3, anddi3): These patterns are not available on
23490         the coldfire.
23491
23492 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
23493
23494         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
23495         (PUT_REAL): Likewise.
23496
23497 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23498
23499         * final.c (shorten_branches): Don't add an alignment for loops
23500         that have no label inside.
23501
23502 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23503
23504         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
23505         prototypes in macro HAVE_cmpstrsi.
23506
23507         * cpplib.c (cpp_get_token): Remove unused label `op3'.
23508
23509         * emit-rtl.c (operand_subword): Remove unused variable
23510         `bits_per_word'.
23511
23512         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
23513
23514         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
23515
23516 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
23517
23518         * cpphash.c (macroexpand): Delete leading whitespace when arg
23519         is concatenated before.
23520         (unsafe_chars): Correct test for whether + and - can extend a
23521         token.
23522
23523         * cppinit.c (cpp_start_read): Do dependencies for
23524         -include/-imacros files also.
23525
23526         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
23527         tokenizing non-directive lines.
23528         (cpp_expand_to_buffer): Temporarily disable no-output mode.
23529         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
23530         the input file.
23531
23532 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
23533
23534         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
23535
23536         * c-lex.c: Sync with C++ frontend.
23537         (linemode): New variable.
23538         (parse_float): imag, conversion_errno, and type are output only.
23539         (yylex): Adjust.  Move initial '.' case into main switch.
23540         Use linemode.
23541         (handle_generic_pragma): Just deal with tokens.
23542         (readescape): Use ISXDIGIT and ISGRAPH.
23543         * c-parse.in: Add END_OF_LINE token.
23544
23545         * c-lex.c (lang_init): Generalize.
23546         (nextchar): Remove.  Replace uses with UNGETC.
23547         (skip_white_space): Handle linemode here.  Optimize for cpplib.
23548         (skip_white_space_on_line): Remove.
23549         (extend_token_buffer_to): New fn.
23550         (extend_token_buffer): Use it.
23551         (read_line_number, check_newline): Just deal with tokens.
23552         (token_getch, token_put_back): New fns.
23553         (yylex): Use them.  More cpplib optimizations.  Simplify.
23554
23555 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
23556                           Jason Merrill  <jason@yorick.cygnus.com>
23557
23558         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
23559         (consume_string): Make this smart about USE_CPPLIB.
23560         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
23561         (yylex): Rewrite to be intelligent about USE_CPPLIB.
23562         Also, clean up cases where we redundantly set token_buffer[0].
23563         (read_line_number): New fn.
23564         (ignore_escape_flag): New variable.
23565
23566 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
23567
23568         * a29k/t-a29kbare: Fix some comments.
23569         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
23570         (FPBIT, DPBIT): Define.
23571         * a29k/t-vx29k: Likewise.
23572         * arc/t-arc: Likewise.
23573         * arm/t-arm-elf: Likewise.
23574         * arm/t-bare: Likewise.
23575         * arm/t-pe: Likewise.
23576         * arm/t-pe-thumb: Likewise.
23577         * arm/t-semi: Likewise.
23578         * arm/t-thumb: Likewise.
23579         * arm/t-thumb-elf: Likewise.
23580         * arm/t-thumb-linux: Likewise.
23581         * h8300/t-h8300: Likewise.
23582         * i960/t-i960: Likewise.
23583         * i960/t-vxworks960: Likewise.
23584         * m32r/t-m32r: Likewise.
23585         * mips/t-ecoff: Likewise.
23586         * mips/t-elf: Likewise.
23587         * mips/t-r3900: Likewise.
23588         * pa/t-pro: Likewise.
23589         * rs6000/t-aix43: Likewise.
23590         * rs6000/t-beos: Likewise.
23591         * rs6000/t-newas: Likewise.
23592         * rs6000/t-ppccomm: Likewise.
23593         * rs6000/t-rs6000: Likewise.
23594         * rs6000/t-winnt: Likewise.
23595         * rs6000/t-xnewas: Likewise.
23596         * rs6000/t-xrs6000: Likewise.
23597         * sh/t-sh: Likewise.
23598         * sparc/t-elf: Likewise.
23599         * sparc/t-sparcbare: Likewise.
23600         * sparc/t-sparclite: Likewise.
23601         * sparc/t-splet: Likewise.
23602         * v850/t-v850: Likewise.
23603         * mn10200/t-mn10200: Fix comments.
23604         * mn10300/t-mn10300: Likewise.
23605
23606         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
23607         dummy operand.  Allocate a new pseudo for the dummy operand.
23608         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
23609
23610         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
23611
23612 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
23613
23614         * configure: Rebuilt.
23615         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
23616
23617 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
23618
23619         * recog.c (preproces_constraints): Zero recog_op_alt before
23620         processing the constraints.
23621
23622         * arm.c (typedef minipool_node): Renamed from pool_node.
23623         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
23624         (add_minipool_constant): New function.
23625         (dump_minipool): New function.
23626         (find_barrier): Remove special case for getting the insn size of
23627         an insn that references the constant pool.
23628         (minipool_fixup): New structure.
23629         (push_minipool_barrier): New function.
23630         (push_minipool_fix): New function.
23631         (note_invalid_constants): New function.
23632         (add_pool_constant, dump_table, fixit, broken_move): Delete.
23633         (arm_reorg): Rewrite code to fix up the constant pool into a
23634         series of mini-pools embedded in the insn stream.
23635         (arm_output_epilogue): New function, made mainly from the body
23636         of output_func_epilogue.
23637         (output_func_epilogue): Move insn generation part of epilogue code
23638         to arm_output_epilogue.
23639         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
23640         * arm.md (pool_range): New attribute.
23641         (zero_extendqidi2): Add attribute pool_range.
23642         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
23643         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
23644         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
23645         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
23646         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
23647         (epilogue): New expand.
23648         (epilogue_insn): New insn.  Call arm_output_epilogue.
23649
23650         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
23651         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
23652
23653 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
23654
23655         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
23656
23657 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
23658
23659         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
23660
23661 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
23662
23663         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
23664
23665 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
23666
23667         * global.c: Fix comment.
23668
23669 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
23670
23671         * gcc.c (access_check): New static function.
23672         (find_a_file): Use it when searching a directory list.
23673         * collect2.c (find_a_file): Don't accept directories found when
23674         searching a directory list.
23675
23676 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
23677
23678         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
23679         function parameters with `&'.
23680         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
23681
23682 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
23683
23684         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
23685         or tidy_fallthru_edge if the last insn in the block is not
23686         an unconditional jump or a simple conditional jump.
23687
23688 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23689
23690         * Makefile.in (c-decl.o): Depends on defaults.h.
23691
23692 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
23693
23694         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
23695         PA1.1 and above.
23696         (CLASS_MAX_NREGS): Likewise.
23697
23698 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
23699
23700         * cse.c (cse_insn): Fix dumb thinko in last change.
23701
23702 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23703
23704         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
23705         "const char *".
23706
23707 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
23708
23709         * dwarf2out.c (add_location_or_const_value_attribute): Correct
23710         test for sizes of passed and declared parameter types.
23711
23712 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23713
23714         * fixincludes: Fix the return type of bsearch, char* -> void*.
23715
23716         * fixinc/inclhack.def: Likewise.
23717
23718 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
23719
23720         * invoke.texi (-fdump-translation-unit): New option.
23721
23722 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
23723
23724         * expr.h (PROMOTE_PROTOTYPES): Move ...
23725         * defaults.h: ... to here.
23726         * c-decl.c: Include defaults.h instead of expr.h.
23727         * c-typeck.c: Include defaults.h.
23728
23729 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
23730
23731         * toplev.h (errorcount): Declare.
23732         (warningcount): Likewise.
23733         (sorrycount): Likewise.
23734         * c-lex.c (errorcount): Don't declare.
23735         * dwarf2out.c (errorcount): Don't declare.
23736
23737 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
23738
23739         * config/libgloss.h: Add a note discouraging use with ELF.
23740         * configure.in: Don't use libgloss.h for ELF targets.
23741         Always use_collect2 on a.out targets.
23742
23743 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
23744
23745         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
23746         (force_to_mode, case ASHIFTRT): Add shiftrt label.
23747
23748 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23749
23750         * loop.c (strength_reduce): When doing biv->giv conversion, update
23751         reg note of NEXT->insn.
23752
23753 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23754
23755         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
23756
23757 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23758
23759         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
23760         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
23761         Ensure expr.h is included.
23762         * c-typecheck.c (convert_arguments): Ditto.
23763
23764         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
23765
23766         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
23767         * config/convex/convex.h: Ditto.
23768         * config/dsp16xx/dsp16xx.h: Ditto.
23769         * config/fx80/fx80.h: Ditto.
23770         * config/gmicro/gmicro.h: Ditto.
23771         * config/i370/i370.h: Ditto.
23772         * config/i386/i386.h: Ditto.
23773         * config/m32r/m32r.h: Ditto.
23774         * config/m68k/m68k.h: Ditto.
23775         * config/m88k/m88k.h: Ditto.
23776         * config/mips/mips.h: Ditto.
23777         * config/pa/pa.h: Ditto.
23778         * config/pyr/pyr.h: Ditto.
23779         * config/tahoe/tahoe.h: Ditto.
23780         * config/we32k/we32k.h: Ditto.
23781
23782         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
23783         based on arch size.
23784
23785         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
23786
23787         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
23788         from comment.
23789
23790         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
23791
23792 1999-08-02  Richard Henderson  <rth@cygnus.com>
23793
23794         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
23795         for the register spill block.
23796         (m32r_va_arg): New.
23797         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
23798         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
23799
23800         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
23801         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
23802         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
23803
23804 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23805
23806         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
23807         MAX_WCHAR_TYPE defined in sparc.h.
23808         * config/sparc/linuxaout.h: Likewise.
23809         * config/sparc/linux64.h: Likewise.
23810         Also default to -mvis if CPU is UltraSPARC.
23811
23812 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23813
23814         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
23815         (RTX_OK_FOR_OLO10): Likewise.
23816         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
23817         %lo(), allow it in addresses...
23818         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
23819         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
23820         does not make sense.
23821         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
23822         (sparc_output_scratch_registers): New function.
23823         (output_function_prologue, sparc_flat_output_function_prologue): Use
23824         it.
23825         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
23826         defined.
23827         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
23828         * configure.in: Add check for .register pseudo-op support in as and
23829         check for offsetable %lo().
23830         * acconfig.h: Add templates for the above checks.
23831         * configure: Regenerate.
23832
23833 1999-08-02  Richard Henderson  <rth@cygnus.com>
23834
23835         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
23836         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
23837         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
23838
23839 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
23840
23841         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
23842         reg_biv_class.
23843
23844 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
23845
23846         * config/float-sparc.h: New file.
23847         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
23848         sparc-*-linux-gnu and sparc64-*-linux*.
23849
23850 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
23851
23852         * rs6000.c (rs6000_va_list): Type is an array.
23853         (rs6000_va_start): Don't doubly adjust for varargs.
23854         (rs6000_va_arg): Evaluate long long GPR adjustment.
23855
23856 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
23857
23858         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
23859         -maix64 and -maix32.
23860         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
23861         LINK_SPEC): Change appropriately.
23862         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
23863         (u_short_cint_operand): Likewise.
23864         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
23865         for 64-bit hosts.
23866         * rs6000/t-aix43 (MULTILIB): Change to -m64.
23867
23868         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
23869
23870 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
23871
23872         * rs6000/rs6000.c (num_insns_constant_wide): Correct
23873         for type promotion.
23874         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
23875         (non_add_cint_operand): Likewise.
23876         (logical_operand): Likewise.
23877         (non_logical_cint_operand): Likewise.
23878         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
23879         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
23880         (rs6000_select_rtx_section): Suppress warning.
23881         (small_data_operand): Suppress warning.
23882         (rs6000_got_register): Suppress warning.
23883         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
23884         type, so `J' is generally the wrong constraint for a SImode value;
23885         use `L' instead.
23886         (andsi3_internal2): Likewise.
23887         (andsi3_internal3): Likewise.
23888         (iorsi3_internal1): Likewise.
23889         (xorsi3_internal1): Likewise.
23890         (movsi): Likewise.
23891         (movsf_softfloat): Likewise.
23892         (scc insns): Likewise.
23893         (movsi+2): Preserve sign bits of SImode constant.
23894         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
23895         (movdf+1): Sign-extend properly.
23896         (movdi_32+1): Sign-extend properly.
23897         (scc insns): Sign-extend properly.
23898
23899         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
23900         K, L, and T.
23901
23902 1999-08-02  Richard Henderson  <rth@cygnus.com>
23903
23904         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
23905         -mcpu parsing code.
23906         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
23907         * alpha.md (all fp insns): Likewise.
23908
23909 1999-08-02  Nick Clifton  <nickc@cygnus.com>
23910
23911         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
23912         already defined.
23913
23914 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
23915
23916         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
23917         pic_load_label generator directly.
23918         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
23919         No longer a named pattern.
23920
23921 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
23922
23923         * explow.c (force_reg): Call force_operand if X does not
23924         satisfy general_operand.
23925
23926 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
23927
23928         * fix-header.c (main): When testing for CONTINUED, use string
23929         equality, not pointer equality.
23930
23931 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
23932
23933         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
23934
23935 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
23936
23937         * cse.c (cse_insn): Fix loop which deletes insns after a jump
23938         that has become an unconditional jump.
23939
23940         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
23941         (output_function_epilogue): Similarly.
23942
23943 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23944
23945         * tree.h (init_dummy_function_start): Declare.
23946
23947 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23948
23949         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
23950         last_expr_type, last_expr_value, block_start_count, block_stack,
23951         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
23952         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
23953         dynamically in stmt elt of struct function for each function.
23954         (struct nesting): Rename function_call_count elt to n_function_calls,
23955         target_temp_slot_level to block_target_temp_slot_level.  All users
23956         changed.
23957         (struct stmt_status): New structure definition.
23958         Add many accessor macros for stmt_status elements which previously
23959         were global variables.
23960         (init_stmt_for_function): Allocate stmt elt for current_function.
23961         Reflect that block_start_count was renamed to
23962         current_block_start_count.
23963         (save_stmt_status, restore_stmt_status): Delete functions.
23964         (preserve_subexpressions_p): Don't access loop_stack when outside
23965         a function.
23966         (expand_start_bindings): Reflect that block_start_count was renamed to
23967         current_block_start_count.
23968         (expand_fixup): Likewise.
23969         (expand_decl): Don't access block_stack when outside a function.
23970         (expand_decl_cleanup): Likewise.
23971         (expand_dcc_cleanup): Likewise.
23972         (expand_dhc_cleanup): Likewise.
23973         (expand_anon_union_decl): Likewise.
23974         (set_file_and_line_for_stmt): New function.
23975         (in_control_zone_p): New function.
23976
23977         * function.h (struct function): Add new elt stmt.
23978         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
23979         case_stack, nesting_stack, nesting_depth, block_start_count,
23980         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
23981         emit_lineno, goto_fixup_chain.
23982         (save_eh_status, restore_eh_status, save_stmt_status,
23983         restore_stmt_status): Delete declarations.
23984         * function.c (push_function_context_to): Don't call save_stmt_status.
23985         (pop_function_context_to): Don't call restore_stmt_status.
23986         * tree.h (in_control_zone_p): Declare.
23987         * rtl.h (set_file_and_line_for_stmt): Declare.
23988
23989         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
23990         call set_file_and_line_for_stmt.
23991
23992 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
23993
23994         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
23995         Also update copyright.
23996
23997 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23998
23999         * c-pragma.c: Don't include "except.h".
24000         * emit-rtl.c: Likewise.
24001         * stor-layout.c: Likewise.
24002         * tree.c: Likewise.
24003         * varasm.c: Likewise.
24004
24005         * flow.c: Include "function.h".
24006         * tree.h (init_dummy_function_start): Declare new function.
24007
24008         * except.h (struct eh_status): New structure.
24009         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
24010         been included.
24011         (eh_return_stub_label, ehstack, catchstack, ehqueue,
24012         catch_clauses, false_label_stack, caught_return_label_stack,
24013         protect_list, current_function_ehc): Add accessor macros for the
24014         corresponding fields in current_function->eh; delete declarations
24015         for all items that used to be declared here.
24016         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
24017         catch_clauses, false_label_stack, caught_return_label_stack,
24018         protect_list, current_function_ehc): Delete variables.
24019         (init_eh_for_function): Allocate current_function->eh.
24020         (save_eh_status, restore_eh_status): Delete functions.
24021
24022         * function.h (struct function): Add fields next_global and eh.
24023         Delete all exception handling related fields.
24024         * function.c (current_function): New variable.
24025         (all_functions): New variable.
24026         (push_function_context_to): Don't allocate a struct function,
24027         use current_function instead.  Call init_dummy_function_start when
24028         outside a function.  Clear current_function before returning.
24029         (pop_function_context_from): Restore current_function.
24030         Don't free the restored struct function.
24031         (prepare_function_start): New function.
24032         (init_dummy_function_start): New function.
24033         (init_function_start): Break out some code into prepare_function_start
24034         and call it here.
24035
24036         * stmt.c (save_stmt_status): Don't call save_eh_status.
24037         (restore_stmt_status): Don't call restore_eh_status.
24038
24039         * Makefile.in: Update dependencies.
24040
24041 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
24042
24043         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
24044         of depending on a magic constant value.  Update comments.
24045         (hppa_expand_prologue): Similarly.
24046
24047         * pa.md (reload_indi, reload_outdi): Allow any register for the
24048         original reload register.
24049
24050 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
24051
24052         * cccp.c (print_help): Change marcos to macros.
24053
24054 1999-07-30  Richard Henderson  <rth@cygnus.com>
24055
24056         * c-typeck.c (initializer_constant_valid_p): Move ...
24057         * c-common.c (initializer_constant_valid_p): ... here.  Use
24058         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
24059         of label addresses.
24060         * c-common.h (initializer_constant_valid_p): Declare.
24061         * c-tree.h (initializer_constant_valid_p): Remove.
24062
24063 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
24064
24065         * config/i386/sol2-c1.asm: Align the stack.
24066         * config/i386/sol2-gc1.asm: Likewise.
24067
24068 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
24069
24070         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
24071         -Asparclite for sparc86x.
24072         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
24073         sparc86x.
24074         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
24075
24076 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
24077
24078         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
24079         the user if using the non-default arch size in BI_ARCH configuration.
24080         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
24081
24082         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
24083         Fix patterns so that they actually match.
24084         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
24085         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
24086         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
24087         TARGET_HARD_MUL32.
24088         (mulsidi3): Reflect this in the expand.
24089         (smulsi3_highpart): Only on TARGET_ARCH32.
24090         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
24091         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
24092         (umulsidi3): Reflect this in the expand.
24093         (umulsi3_highpart): Only on TARGET_ARCH32.
24094         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
24095         don't require g0 to be zero.
24096         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
24097         ({,u}divsi3): New expands.
24098         ({,u}divsi3_sp64): New patterns.
24099         (after lshrdi3_v8plus): Four new patterns to help combiner
24100         optimizing nested mixed mode shifts.
24101
24102         * config/sparc/sparc.c (sparc_override_options): Use deprecated
24103         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
24104         speed things up. Don't use them by default on plain v9 in 64bit
24105         mode, according to what SPAMv9 sais.
24106
24107         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
24108         top 32 bits of %[og][0-7] in signal handlers.
24109         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
24110
24111 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
24112
24113         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
24114         (ashlsi3): Corresponding changes.
24115
24116         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
24117
24118 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
24119
24120         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
24121
24122 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24123
24124         * arm.h (Hint): Delete macro.
24125         Substitute HOST_WIDE_INT for Hint in some prototypes.
24126         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
24127
24128 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
24129
24130         * builtins.c (expand_builtin_setjmp): Use force_operand to
24131         make sure that the buffer address is in a suitable form to be
24132         passed to force_reg.
24133
24134 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
24135
24136         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
24137         them here.
24138
24139 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
24140
24141         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
24142         proper mode in the condition string.
24143         (icacheflush, dcacheflush): Remove modes from match_operands.
24144
24145         * pa.c (emit_move_sequence): Always convert scratch_reg to the
24146         proper mode before using it.
24147
24148         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
24149         pair.
24150
24151         * pa.c (store_reg): Do not call add_high_const generator directly.
24152         (load_reg, set_reg_plus_d): Likewise.
24153         * pa.md (add_high_const): No longer a named pattern.
24154
24155         * pa.c (legitimize_address): Consistently use Pmode rather than
24156         SImode.  Do not call gen_pic2_highpart directly anymore.
24157         * pa.md (pic2_highpart): No longer a named pattern.
24158         (pic2_lo_sum): Similarly.  Reformat to make more readable.
24159
24160         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
24161         needed.
24162
24163         * README: Update.
24164
24165 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
24166
24167         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
24168
24169 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
24170
24171         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
24172         and tag the spill mems.
24173         (hppa_va_start): New.
24174         (hppa_va_arg): New.
24175         * pa.h (EXPAND_BUILTIN_VA_START): New.
24176         (EXPAND_BUILTIN_VA_ARG): New.
24177
24178 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
24179
24180         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
24181         and tag the spill mems.
24182         (mn10300_va_start): New.
24183         (mn10300_va_arg): New.
24184         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
24185         (EXPAND_BUILTIN_VA_ARG): New.
24186
24187 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
24188
24189         * mn10200.c (mn10200_va_arg): New.
24190         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
24191
24192 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
24193
24194         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
24195         rather than play with TREE_INT_CST_LOW.
24196
24197 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
24198
24199         * config/arm/telf.h: Include dbxelf.h.
24200         (CPP_PREDEFINES): Only define if not already defined.
24201         (ASM_IDENTIFY_GCC): Likewise.
24202         (SUBTARGET_EXTRA_SECTIONS): Likewise.
24203         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
24204         * config/arm/thumb.h (LINK_SPEC): Only define if not already
24205         defined.
24206         (DBX_DEBUGGING_INFO): Don't define.
24207         * config/arm/linux-telf.h: New file.
24208         * config/arm/linux-tgas.h: New file.
24209         * config/arm/t-thumb-linux: New file.
24210         * config/arm/uclinux-elf.h: New file.
24211         * config/arm/uclinux-telf.h: New file.
24212         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
24213         thumb-*-uclinux): New targets.
24214         * configure: Regenerate.
24215
24216 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
24217
24218         * pa.md (post_store, pre_load): New expanders.
24219         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
24220         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
24221         need to directly generate RTL for them.
24222         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
24223         changes.
24224
24225 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
24226
24227         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
24228         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
24229         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
24230         (secndary_reload_class): Make TARGET_ELF conditional compile.
24231         (print_operand_address): Similar.
24232         (output_toc): Print all values as hex.
24233         (get_issue_rate): Rearrange and add RS64A and PPC630.
24234         * rs6000.h (processor_type): Add RS64A and PPC630.
24235         (PROCESSOR_POWERPC64): New.
24236         (PROMOTE_MODE): Use word_mode.
24237         (RTX_COSTS): Add RS64A and PPC630.
24238         * rs6000.md (scheduling information): Add lmul and ldiv
24239         representing 64-bit integer multiply and divide.  Add rs64a and
24240         PPC630 information.
24241         (ashldi3): Add support for "rldic" instruction.
24242         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
24243
24244 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
24245
24246         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
24247         instead of V8 for sparclite86x in cpu_table.
24248
24249 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24250
24251         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
24252         output_file_directive.
24253
24254 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
24255
24256         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
24257         tree for op1, not the rtl.
24258
24259 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
24260
24261         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
24262         to m88k_va_start, leaving only the register spill.
24263         (m88k_build_va_list): New.
24264         (m88k_va_start): New.
24265         (m88k_va_arg): New.
24266         * m88k.h (BUILD_VA_LIST_TYPE): New.
24267         (EXPAND_BUILTIN_VA_START): New.
24268         (EXPAND_BUILTIN_VA_ARG): New.
24269
24270 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
24271
24272         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
24273         Rename from expand_builtin_saveregs.
24274         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
24275
24276 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
24277
24278         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
24279         for the register spill block.
24280         (i960_build_va_list): New.
24281         (i960_va_start): New.
24282         (i960_va_arg): New.
24283         * i960.h (BUILD_VA_LIST_TYPE): New.
24284         (EXPAND_BUILTIN_VA_START): New.
24285         (EXPAND_BUILTIN_VA_ARG): New.
24286         * i960.md (store_multiple): Use change_address on individul mems.
24287
24288 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
24289
24290         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
24291         an ARRAY_TYPE.
24292         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
24293         (expand_builtin_va_end): Evaluate arg for side effects.
24294         * c-common.c (c_common_nodes_and_builtins): Construct a
24295         va_list_arg_type_node to handle array decomposition to pointer.
24296
24297 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
24298
24299         * except.c (st_dynamic_cleanup): Use force_operand on the
24300         buffer's address.
24301
24302 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
24303
24304         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
24305         * c4x.c (c4x_va_arg): New.
24306
24307 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
24308
24309         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
24310         has manual_pop set.
24311
24312 1999-07-26  Nathan Sidwell  <nathan@acm.org>
24313
24314         * eh-common.h (__eh_matcher): Prototype correctly.
24315
24316 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
24317
24318         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
24319         (TARGET_SINGLE_PIC_BASE): Likewise.
24320         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
24321         definitions.
24322         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
24323         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
24324         (TARGET_OPTIONS): Add -mpic-register=N.
24325         (OUTPUT_INT_ADDR_CONST): New macro.
24326         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
24327         LEGITIMATE_PIC_OPERAND_P): Likewise.
24328         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
24329         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
24330         output_addr_const directly.
24331         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
24332         ARM port.
24333         (thumb_pic_register, thumb_pic_register_string): Declare.
24334
24335         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
24336         from arm.c.
24337         (label_mentioned_p): New function: Imported from arm.c.
24338         (legitimize_pic_address): New function: Imported from arm.c.
24339         (is_pic):New function: Imported from arm.c.
24340         (thumb_finalize_pic):New function: Imported from arm.c.
24341         (add_constant): Cope with PIC constants.
24342         (fixit): Cope with PIC constants.
24343         (output_return): Do not treat the PIC register as live if
24344         TARGET_SINGLE_PIC_BASE is true.
24345         (thumb_function_prologue): Do not treat the PIC register as live if
24346         TARGET_SINGLE_PIC_BASE is true.
24347         (thumb_expand_prologue): Do not treat the PIC register as live if
24348         TARGET_SINGLE_PIC_BASE is true.
24349         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
24350         TARGET_SINGLE_PIC_BASE is true.
24351         (thumb_print_operand): Accept '|'.
24352         (thumb_override_options): Process PIC options.
24353
24354         * config/arm/thumb.md (movsi): Support PIC.
24355         (call_insn): Change "i" constraint to "X".
24356         (call_value_insn): Likewise.
24357         (consttable_4, consttable_8, consttable_end): Set and clear
24358         "making_const_table" as appropriate.
24359         (pic_load_addr, pic_add_dot_plus_four): New insns.
24360
24361         * invoke.texi (Thumb Options): Fix spelling.  Document new
24362         options -msingle-pic-base and -mpic-register=.
24363
24364 1999-07-26  Andrew Haley  <aph@cygnus.com>
24365
24366         * config/m32r/initfini.c (__init): Use a full word immediate for
24367         __fini: this allows it to be placed in any memory region.
24368
24369         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
24370         -mmodel=medium.  This is OK for all memory models.
24371
24372 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
24373
24374         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
24375         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
24376
24377 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
24378
24379         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
24380         defined.
24381
24382         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
24383
24384 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
24385
24386         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
24387         (BUILD_VA_LIST_TYPE): New.
24388         (EXPAND_BUILTIN_VA_START): New.
24389         (EXPAND_BUILTIN_VA_ARG): New.
24390         * i860.c (output_delayed_branch): Disable.
24391         (output_delay_insn): Likewise.
24392         (i860_saveregs): New.
24393         (i860_build_va_list): New.
24394         (i860_va_start): New.
24395         (i860_va_arg): New.
24396         * i860.md: Disable all peepholes using output_delayed_branch.
24397         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
24398
24399 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
24400
24401         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
24402         (BUILD_VA_LIST_TYPE): New.
24403         (EXPAND_BUILTIN_VA_START): New.
24404         (EXPAND_BUILTIN_VA_ARG): New.
24405         * clipper.c (clipper_builtin_saveregs): Only dump registers.
24406         Return the address of the save area.
24407         (clipper_build_va_list): New.
24408         (clipper_va_start): New.
24409         (clipper_va_arg): New.
24410
24411 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
24412
24413         * arc.h (EXPAND_BUILTIN_VA_START): New.
24414         (EXPAND_BUILTIN_VA_ARG): New.
24415         * arc.c (arc_setup_incoming_varargs): Set alias set of
24416         varargs save area.
24417         (arc_va_start): New.
24418         (arc_va_arg): New.
24419
24420 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
24421
24422         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
24423         (BUILD_VA_LIST_TYPE): New.
24424         (EXPAND_BUILTIN_VA_START): New.
24425         (EXPAND_BUILTIN_VA_ARG): New.
24426         * alpha.c (alpha_builtin_saveregs): Delete.
24427         (alpha_build_va_list): New.
24428         (alpha_va_start): New.
24429         (alpha_va_arg): New.
24430
24431 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
24432
24433         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
24434         column zero.
24435         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
24436         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
24437
24438         * gcc.texi: More changes related to list conversion.
24439         * invoke.texi: Likewise.
24440
24441 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
24442
24443         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
24444         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
24445         (expand_builtin_next_arg): Accept ARGLIST not EXP.
24446         (stabilize_va_list): New function.
24447         (std_expand_builtin_va_start): New function.
24448         (expand_builtin_va_start): New function.
24449         (get_varargs_alias_set): New function.
24450         (std_expand_builtin_va_arg): New function.
24451         (expand_builtin_va_arg): New function.
24452         (expand_builtin_va_end): New function.
24453         (expand_builtin_va_copy): New function.
24454         (expand_builtin): Call them.
24455         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
24456         __builtin_{varargs_start,stdarg_start,end,copy}.
24457         (build_va_arg): New function.
24458         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
24459         (build_va_arg): Declare.
24460         * c-decl.c (ptr_type_node, va_list_type_node): New.
24461         * c-parse.gperf (__builtin_va_arg): New.
24462         * c-parse.in (VA_ARG): New token.
24463         (unary_expr): Recognize it.
24464         * expr.c (expand_expr): Expand VA_ARG_EXPR.
24465         * expr.h (std_expand_builtin_va_start): Declare.
24466         (std_expand_builtin_va_arg): Declare.
24467         (expand_builtin_va_arg): Declare.
24468         (get_varargs_alias_set): Declare.
24469         * tree.def (VA_ARG_EXPR): New.
24470         * tree.h (BUILT_IN_VARARGS_START): New.
24471         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
24472         (ptr_type_node, va_list_type_node): Declare.
24473         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
24474         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
24475         * m88k.h, m88k.c: Likewise.
24476         * mn10300.h, mn10300.c: Likewise.
24477         * pa.h, pa.c: Likewise.
24478         * rs6000.h, rs6000.c: Likewise.
24479         * sh.h, sh.c: Likewise.
24480         * sparc.h, sparc.c: Likewise.
24481
24482         * emit-rtl.c (operand_subword): Copy alias set.
24483         (change_address): Likewise.
24484
24485 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
24486
24487         * pa.c (compute_frame_size): Scan all the used callee saved registers,
24488         not just the first one.
24489
24490 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
24491
24492         * config/arm/arm.h (TARGET_SWITCHES): Add
24493         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
24494         (TARGET_OPTIONS): Add -mpic-register=.
24495         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
24496         (arm_pic_register_string): Declare.
24497         (NEED_PLT_GOT): Delete, replace with ...
24498         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
24499         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
24500         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
24501         * config/arm/arm.c (arm_override_options): Add new option
24502         -mpic-register=N.
24503         (arm_pic_register_string): New variable.
24504         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
24505         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
24506         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
24507         (output_return_instruction): Likewise.
24508         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
24509         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
24510         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
24511
24512         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
24513         mention of -msched-prolog.  Document new options -msingle-pic-base
24514         and -mpic-register=.
24515
24516 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
24517
24518         * haifa-sched.c (reemit_notes): Tidy.
24519         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
24520         haifa's routine.
24521
24522 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
24523
24524         * explow.c (trunc_int_for_mode): New function.
24525         (plus_constant_wide): Use it.
24526         * combine.c (simplify_and_const_int): Likewise.
24527         (merge_outer_ops): Likewise.
24528         (simplify_shift_const): Likewise.
24529         * cse.c (simplify_unary_operation): Likewise.
24530         (simplify_binary_operation): Likewise.
24531         * emit-rtl.c (operand_subword): Likewise.
24532         * rtl.h: Declare it.
24533
24534 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24535
24536         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
24537         (use NUM_REGS instead of NUM_INTS).
24538
24539 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24540
24541         * builtins.c: New file.
24542         * expr.c (saveregs_value, apply_args_value):  Delete definition,
24543         moved into builtins.c.
24544         (string_constant): No longer static.
24545         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
24546         apply_args_size, apply_result_size, result_vector,
24547         expand_builtin_apply_args, expand_builtin_apply,
24548         expand_builtin_return): Delete functions, moved into builtins.c.
24549         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
24550         * expr.h (saveregs_value, apply_args_value): Declare variables.
24551         (expand_builtin, string_constant): Declare functions.
24552         * Makefile.in: Update to build builtin.o.
24553
24554 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
24555
24556         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
24557         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
24558         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
24559         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
24560         false.
24561         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
24562         Define to zero.
24563
24564 1999-07-21  Michael Meissner  <meissner@cygnus.com>
24565
24566         * print-rtl.c (print_rtx): Print the names of the virtual
24567         registers.
24568
24569 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
24570
24571         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
24572         introduced in previous delta.
24573
24574 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24575
24576         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
24577         to avoid name clash.
24578
24579 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24580
24581         * c-lex.c (yylex) : Correct the test for overflow when lexing
24582         integer literals.
24583
24584 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
24585
24586         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
24587         (adjust_priority): Always call ADJUST_PRIORITY.
24588         (schedule_insn): Only put insns into the ready at cost 0.
24589         (schedule_block): Remove redundant initial sort.  Give clock_var
24590         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
24591         is not 0.
24592         * tm.texi (MD_SCHED_REORDER): Update docs.
24593
24594         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
24595         * sparc.c (ultra_reorder_called_this_block): Delete.
24596         (ultrasparc_sched_init): Don't set it.
24597         (ultrasparc_sched_reorder): Don't check it.
24598
24599 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
24600
24601         * rs6000.h (struct rs6000_args): Add sysv_gregno.
24602         * rs6000.c (init_cumulative_args): Init sysv_gregno.
24603         (function_arg_boundary): Align DFmode.
24604         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
24605         to get fp reg and stack overflow correct.
24606         (function_arg): Likewise.
24607         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
24608         (setup_incoming_varargs): Restructure for ABI_V4; use
24609         function_arg_advance to skip final named argument.
24610         (expand_builtin_saveregs): Properly unskip the last integer arg
24611         when doing varargs.  Adjust overflow location calculation.
24612
24613         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
24614         explicitly unsigned.
24615         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
24616         (__VA_GP_REGSAVE): Similarly.
24617         (__va_longlong_p): Delete.
24618         (__va_arg_type_violation): New declaration.
24619         (va_arg): Restructure.  Flag promotion errors.  Align double.
24620         TFmode passed by reference.
24621
24622         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
24623         in the HOST_BITS_PER_WIDE_INT > 32 case.
24624
24625 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
24626
24627         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
24628
24629 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
24630
24631         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
24632         * toplev.c (documented_lang_options): Add -fpreprocessed.
24633         * cpplib.h (struct cpp_buffer): Add preprocessed.
24634         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
24635         (cpp_start_read): Don't expand macros or emit an initial #line
24636         directive if -fpreprocessed.
24637
24638 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
24639
24640         * cpplib.h (struct cpp_buffer): Added manual_pop for
24641         better C++ tokenization.
24642         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
24643         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
24644         * c-common.c (cpp_token): Make non-static.
24645
24646 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24647
24648         * c-common.h: New file.
24649         * c-common.c (permanent_obstack): Delete unused declaration.
24650         (c_global_trees): New array.
24651         (c_common_nodes_and_builtins): New function; split off common code
24652         from init_decl_processing in both c-decl.c and cp/decl.c.
24653         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
24654         c_global_trees and accessor macros defined in c-common.h.
24655         Include c-common.h.
24656         * c-decl.c: Delete definitions for tree nodes that were replaced by
24657         c_global_trees.
24658         (init_decl_processing): Build void_list_node.
24659         Call c_common_nodes_and_builtins; delete code to generate the common
24660         builtins here.
24661         * objc/objc-act.c (build_module_descriptor): Rename variable
24662         void_list_node to avoid clash with c-common.h.
24663
24664         * Makefile.in: Update dependencies.
24665         * objc/Make-lang.in: Likewise.
24666
24667 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
24668
24669         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
24670         (UNIQUE_SECTION_P): Likewise.
24671         (UNIQUE_SECTION): Likewise.
24672
24673 1999-07-19  Linas Vepstas  <linas@linas.org>
24674
24675         * config/i370/README: New file.
24676         * config/i370/linux.h: New file.
24677         * config/i370/mvs.h: New file.
24678         * config/i370/oe.h: New file.
24679         * config/i370/t-linux: New file.
24680         * config/i370/t-mvs: New file.
24681         * config/i370/t-oe: New file.
24682         * config/i370/x-oe: New file.
24683         * config/i370/xm-linux.h: New file.
24684         * config/i370/xm-mvs.h: New file.
24685         * config/i370/xm-oe.h: New file.
24686
24687         * i370.c (label_node_t): Add first_ref_page, label_addr,
24688         label_first_ref, label_last_ref members.
24689         (mvs_need_base_reload): Renamed from mvs_label_emitted.
24690         (MAX_MVS_LABEL_SIZE): Define.
24691         (MAX_LONG_LABEL_SIZE): Define.
24692         (alias_node_t, alias_anchor, alias_number): New.
24693         (mvs_function_table): Reorder for EBCDIC.
24694         (ascebc, ebcasc): Unconditionally define.
24695         (i370_branch_dest, i370_branch_length): New functions.
24696         (i370_short_branch, i370_label_scan): New functions.
24697         (mvs_get_label): Renamed from mvs_add_label.  Search for
24698         an existing label before creating a new one.
24699         (mvs_add_label): New function.
24700         (mvs_get_label_page): New function.
24701         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
24702         over the entire list.
24703         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
24704         (mvs_check_page) [TARGET_ELF_ABI]: New function.
24705         (mvs_add_alias, mvs_need_alias): New functions.
24706         (mvs_get_alias, mvs_check_alias): New functions.
24707         (handle_pragma): New function.
24708         (mvs_function_check): New function.
24709         (unsigned_jump_follows_p): Search harder.
24710         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
24711         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
24712         * i370.h (TARGET_VERSION): Delete.
24713         (CPP_SPEC, CPP_PREDEFINES): Delete.
24714         (mvs_label_emitted): Delete.
24715         (TARGET_EBCDIC): Delete.
24716         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
24717         (HANDLE_PRAGMA): Define.
24718         (HARD_REGNO_NREGS): Handle complex modes.
24719         (HARD_REGNO_MODE_OK): Likewise.
24720         (CLASS_MAX_NREGS): Likewise.
24721         (RET_REG): Likewise.
24722         (EXTRA_CONSTRAINT): Define.
24723         (RETURN_IN_MEMORY): True for DImode.
24724         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
24725         (FUNCTION_PROFILER): Delete.
24726         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
24727         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
24728         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
24729         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
24730         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
24731         (ASM_FILE_START): Add "RMODE ANY".
24732         (ASM_OUTPUT_EXTERNAL): Check for aliases.
24733         (ASM_GLOBALIZE_LABEL): Likewise.
24734         (ASM_OUTPUT_LABELREF): Likewise.
24735         (ASM_OUTPUT_COMMON): Likewise.
24736         (PRINT_OPERAND): Handle 'K', 'W', default.
24737         (PRINT_OPERAND_ADDRESS): New.
24738         (Lots of defines): Add support for TARGET_ELF_ABI.
24739         * i370.md (attr length): New.  Define for all patterns.
24740         (*): Lots of tweeks to assembly output and constraints.
24741
24742 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
24743
24744         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
24745         Disable patterns performing SImode comparisons with SImode values
24746         if TARGET_POWERPC64 and instruction does not sign-extend or does
24747         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
24748         differ for signed quantities.
24749         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
24750         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
24751         (decrement_and_branch_on_count): Add 64-bit variant.
24752
24753 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24754
24755         * final.c (output_asm_insn): When searching for the matching string
24756         for a given dialect, don't run past the end of the list of
24757         alternatives if there are fewer alternatives in the template than
24758         dialects.
24759
24760 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
24761
24762         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
24763         Removed paragraph about compression of files and size limitation,
24764         duplicated in the FAQ.  Use gcc-patches for posting patches.
24765         * gcc.c (main): Updated URL with bug reporting instructions to
24766         gcc.gnu.org.  Removed e-mail address.
24767         * system.h (abort): Likewise.
24768
24769 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24770
24771         * Makefile.in (stmp-multilib-sub): Make the files extracted
24772         from $(LIBGCC1) writable.
24773
24774 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
24775
24776         * config/arm/aout.h: Reformat for improved readability.
24777
24778         * config/arm/arm.h: Reformat for improved readability.
24779         Replace uses of fprintf with asm_fprintf where appropriate.
24780         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
24781         function declaration assembler actions.
24782         (NUM_INTS): New macro: Convert from bytes to words.
24783         (NUM_REGS): New macro: Compute number of registers required to
24784         hold a quanitity of tyep MODE.
24785         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
24786         types.
24787         (NUM_ARG_REGS): New macro: The number of argument registers
24788         available.
24789         (ARG_REGISTER): New macro: Compute the register number of the Nth
24790         argument register.
24791         (LAST_ARG_REGNUM): New macro: The number of the last argument
24792         register.
24793         (SP_REGNUM): New macro: Register number of the stack pointer.
24794         (FP_REGNUM): New macro: Register number of the frame pointer.
24795         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
24796         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
24797         CUMULATIVE_ARGS so that it counts registers not bytes.
24798
24799         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
24800         TARGET_INTERWORK.
24801         Replace uses of fprintf with asm_fprintf where appropriate.
24802         (output_ascii_pseudo_op): Replace with version from thumb.c
24803
24804         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
24805
24806         * config/arm/elf.h (CPP_PREDEFINES): Replace with
24807         SUBTARGET_CPP_SPEC.
24808         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
24809         (ASM_FILE_START): Emit ASM_APP_OFF.
24810
24811 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
24812
24813         * pa.c (compute_frame_size): Round frame according to
24814         STACK_BOUNDARY rather than a hardwired value.
24815
24816         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
24817
24818         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
24819         of "1".
24820         * configure: Rebuilt.
24821
24822         * configure.in (hppa*-*-linux*): New configuration.
24823         * configure: Rebuilt.
24824         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
24825         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
24826         * pa/pa-linux.h: New file.
24827         * pa/t-linux: New file.
24828         * pa/xm-linux.h: New file.
24829
24830         * pa.c (hppa_legitimize_address): Change references from SImode to
24831         either Pmode or word_mode as appropriate.
24832         (emit_move_sequence, store_reg, load_reg): Likewise.
24833         (set_reg_plus_d, hppa_expand_prologue): Likewise.
24834         (output_mul_insn): Likewise.
24835         * pa.h (PROMOTE_MODE): Likewise.
24836         (INITIALZE_TRAMPOLINE): Likewise.
24837         (Pmode): Define to word_mode.
24838
24839         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
24840         value of 4.  Allocate 8 bytes for each FP register save.
24841         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
24842         value of 4.
24843         (hppa_expand_prologue): Likewise.
24844         * pa.h (PROMOTE_MODE): Likewise.
24845         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
24846         (FUNCTION_ARG_BOUNDARY): Likewise.
24847
24848         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
24849
24850         * pa.c (out_of_line_prologue_epilogue): Delete.
24851         (override_options): Remove -mspace related code.
24852         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
24853         (compute_frame_size): Only allocate space for register that
24854         actually need to be saved.
24855         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
24856         (TARGET_SWITCHES): Remove -mspace, -mno-space
24857         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
24858         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
24859         * pa/ee.asm, pa/ee_fp.asm: Delete.
24860
24861         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
24862
24863         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
24864         directive in column zero.
24865
24866 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
24867
24868         * m68k.c (output_function_prologue): Fix computation of save mask
24869         when generating PIC code.
24870
24871 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
24872
24873         * tree.c (build_type_attribute_variant): Move current_obstack restore
24874         after build_qualified_type call.
24875
24876 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
24877
24878         * configure.in: Use t-iris6, even with GNU LD.
24879         * config/mips/iris6gld.h: Fix typo in linker spec.
24880         * config/mips/t-iris6gld: Remove.
24881
24882 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
24883
24884         * rs6000.md (insv, extzv): Remove SImode dependence in named
24885         patterns.  Explicitly generate DImode RTL if PowerPC64 and
24886         operand is DImode.
24887         (insvdi): Reverse start and size in instruction template.
24888
24889 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
24890
24891         * invoke.texi: Typo fixes.
24892
24893 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
24894
24895         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
24896         handle at this time instead of silently generating incorrect code.
24897         (gen_imagpart): Likewise.
24898
24899         * reload.c (find_reloads): Emit a USE for a pseudo register without
24900         a hard register if we could not create an optional reload for the
24901         pseudo.
24902
24903 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24904
24905         * c-typeck.c (output_init_element, process_init_element):
24906         When advancing constructor_unfilled_fields for a RECORD_TYPE,
24907         check for nameless bit fields.
24908
24909 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
24910
24911         * regclass.c (scan_one_insn): Notice subregs that change the
24912         size of their operand.
24913         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
24914
24915 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
24916
24917         * configure.in (alpha*-*-*): Include alpha/t-ieee.
24918         * configure: Rebuilt.
24919         * alpha/t-ieee: New file.
24920
24921 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
24922
24923         * rs6000.c (find_addr_reg): Do not select r0 as an address
24924         register.
24925
24926 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
24927
24928         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
24929
24930 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
24931
24932         * rs6000.md (movsf): Do not force easy FP constants into memory.
24933
24934         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
24935         immed_double_const to ensure they are properly truncated then
24936         sign extended.
24937
24938 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
24939
24940         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
24941         always unless NO_DEBUG is used.  Compile this code
24942         unconditionally.
24943         (replace_symbols_in_block): Compile it unconditionally.
24944
24945 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
24946
24947         * configure.in (i?86-*-elf*): New target.
24948         * configure: Rebuilt.
24949         * i386/i386elf.h, i386/t-i386elf: New files.
24950
24951 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
24952
24953         * toplev.c (main): Don't complain about saying -gdwarf.
24954         (rest_of_compilation): Remove redundant code.
24955
24956 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
24957
24958         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
24959
24960 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
24961
24962         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
24963         "Li960R:", to avoid name clash.
24964
24965 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24966
24967         * loop.c (check_dbra_loop): When reversing a loop, delete all
24968         REG_EQUAL notes referencing the reversed biv except those which are
24969         for a giv based on it.
24970
24971 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
24972
24973         * version.c: Drop "gcc-" prefix from version #.
24974
24975 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
24976
24977         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
24978         the label if we're being verbose.
24979
24980 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
24981
24982         * m68k.c (output_function_prologue): Add pic register to mask
24983         if live and flag_pic.
24984         (output_function_epilogue): Likewise.
24985
24986 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
24987
24988         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
24989         directives in column zero.
24990
24991         * pa/elf.h (ASM_FILE_START): Define.
24992         * pa/som.h (ASM_FILE_START): Include .level directives.
24993         * pa/hpux10.h (ASM_FILE_START): Delete.
24994         * pa/hpux11.h (ASM_FILE_START): Delete.
24995
24996         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
24997
24998 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24999
25000         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
25001         when reload_out equals reload_in.
25002
25003 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
25004
25005         * invoke.texi (Spec Files): New node: Describe the contents of
25006         spec files.
25007
25008 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
25009
25010         * invoke.texi (DEC Alpha Options): Put @end table at
25011         beginning of line, to avoid confusing texi2html.
25012
25013 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
25014
25015         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
25016         introduced in previous delta.
25017
25018 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
25019
25020         * reload1.c (gen_reload): When synthesizing a 3 operand add
25021         sequence, improve test for when to reload OP1 into the reload
25022         register instead of OP0.
25023
25024 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
25025
25026         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
25027
25028 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
25029
25030         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
25031         string literal.
25032
25033 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
25034
25035         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
25036         (va_dcl): Use __builtin_va_alist_t.
25037
25038 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
25039
25040         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
25041         on the permanent_obstack.
25042         * dwarfout.c (output_type): Likewise.
25043
25044 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
25045
25046         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
25047         Merged from c-typeck.c and cp/typeck.c.
25048         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
25049         Merged into c-common.
25050
25051 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
25052
25053         * c-lex.c (errorcount): Declare it.
25054         (finish_parse): Update errorcount when using CPPLIB.
25055
25056 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
25057
25058         * fixinc/inclhack.def(end_else_label): Double the backslash so
25059         sed gets a chance to see it.
25060         * fixinc/inclhack.sh: regen
25061         * fixinc/fixincl.x: regen
25062
25063 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
25064
25065         Add framework to support armv5 architecture when it becomes
25066         available:
25067
25068         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
25069         (arm_arch5): New variable.
25070         (all_architectures): Add armv5 line.
25071         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
25072         -march=armv5 is specified on the command line.
25073         (arm_arch5): Export this variable.
25074         * invoke.texi: Document new string accepted by -march= switch for
25075         ARM ports.
25076
25077         * config/arm/arm.h: Replace use of constant 12 as a register
25078         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
25079         * config/arm/arm.c: Replace use of constant 12 as a register
25080         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
25081
25082         * config/arm/elf.h: Tidy up.
25083         * config/arm/coff.h: Tidy up.
25084
25085 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
25086
25087         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
25088         * gcc/config/mips/t-iris6gld: New file.
25089         * gcc/config/mips/iris6gld.h: Likewise.
25090
25091 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
25092
25093         * c-decl.c (widest_integer_literal_type_node,
25094         widest_unsigned_literal_type) : New.
25095         (init_decl_processing): Handle/use the two new types.
25096         * c-common.c (type_for_size,type_for_mode) : Same.
25097         * c-lex.c (yylex) : Same.
25098         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
25099         Same.
25100         * c-tree.h (widest_integer_literal_type_node,
25101         widest_unsigned_literal_type) : New.
25102
25103 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
25104
25105         * dwarfout.c (field_byte_offset): Correctly compute the object's
25106         byte offset for the first bit of a field which crosses an alignment
25107         boundary on a !BYTES_BIG_ENDIAN target.
25108
25109 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
25110
25111         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
25112         ntohs.
25113
25114 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
25115                           Jeff Law <law@cygnus.com>
25116
25117         * ginclude/varargs.h (va_dcl): Use word_mode for type of
25118         __builtin_va_list.
25119
25120         * except.c: Include intl.h.
25121         (expand_eh_return): Set current_function_cannot_inline.
25122         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
25123         * function.h (struct function): Add eh_return_stub_label.
25124         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
25125         * Makefile.in (except.o): Depend on intl.h.
25126
25127 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
25128
25129         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
25130         same as offsettable in cases 1 and 2.
25131
25132 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
25133
25134         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
25135         (extlh, extwh): Likewise.
25136
25137 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
25138
25139         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
25140
25141 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
25142
25143         * configure.in: Add arm-pe and thumb-pe targets.
25144         * configure: Regenerate.
25145
25146         * thumb.c (arm_naked_function_p): New function: Determines if
25147         a function is naked (has no gcc generated prologue/epilogue).
25148         (is_called_in_ARM_mode): Return true if the func has the
25149         interfacearm attribute.
25150         (output_return): Do not generate a return for naked functions.
25151         (thumb_function_prologue): Do not generate a prologue for
25152         naked functions.
25153         (thumb_expand_prologue): Do not generate a prologue for naked
25154         functions.
25155         (thumb_expand_epilogue): Do not generate an epilogue for naked
25156         functions.
25157         (arm_valid_machine_decl_attribute): New function, copied from
25158         arm.c:  Permit naked and interfacearm attributes.
25159
25160         * config/arm/pe.c: New file: Support code for arm-pe target.
25161         * config/arm/pe.h: New file: Header file for arm-pe target.
25162         * config/arm/tpe.h: New file: Header file for thumb-pe target.
25163         * config/arm/t-thumb-pe: New file: Makefile fragment for
25164         thumb-pe target.
25165
25166 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
25167
25168         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
25169         -fPIC or -fpic is specified.
25170
25171 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
25172
25173         * expr.c (emit_block_move): Use copy_to_mode_reg for
25174         !TARGET_MEM_FUNCTIONS case too.
25175
25176         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
25177         appropriate.
25178         * configure: Rebuilt.
25179         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
25180         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
25181         definitions made redundant by dbxelf.h inclusion.  Delete
25182         lots of definitions related to assembly output that are
25183         specific to the SOM object format.
25184         * pa.c (output_function_prologue): Do not emit the function's
25185         name for OBJ_ELF.
25186         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
25187         * pa-pro.h: Deleted.
25188         * som.h: New file with SOM specific definitions.
25189         * elf.h: New file with ELF specific definitions.
25190
25191         * elfos.h (const_section): Output a tab before assembler directives.
25192         (ctors_section, dtors_section): Likewise.
25193         (ASM_OUTPUT_SECTION_NAME): Likewise.
25194
25195         * pa/pa1.h: Delete unused file.
25196
25197 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
25198
25199         * configure.in (hppa*-hp-hpux11*): New configuration.
25200         * configure: Rebuilt.
25201         * pa/pa-hpux11.h: New file.
25202         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
25203         command line.
25204
25205         * mips.md (leasi, leadi): New patterns.
25206
25207         * expr.c (emit_block_move): Properly handle case where one of the
25208         block move arguments has a queued increment or decrement.
25209         (clear_storage): Similarly.  Fix formatting goof.
25210
25211 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
25212
25213         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
25214         semicolon from the BSD VA_LIST replacement expression.
25215
25216         * fixinc/inclhack.sh: regen
25217         * fixinc/fixincl.x: regen
25218
25219         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
25220         now use the fixincl program.
25221
25222 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
25223
25224         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
25225         case.  Also make the PIC register call_used.
25226
25227         * m68k.h (FINALIZE_PIC): Delete.
25228         * m68k.c (finalize_pic): Delete.
25229
25230 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
25231
25232         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
25233         to memory.
25234
25235 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
25236
25237         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
25238
25239 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
25240
25241         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
25242
25243 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
25244
25245         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
25246
25247 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
25248
25249         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
25250
25251 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
25252
25253         * rs6000.c (output_toc): Always use hex values for floating-point
25254         constants.  Store single-precision values in upper-half of TOC
25255         entry in 64-bit mode.
25256         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
25257         to final constraints.
25258         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
25259         (fctiwz): Improve accuracy of RTL for pattern.
25260
25261 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
25262
25263         * expr.c (expand_expr): Allow RTL_EXPR's through the
25264         MAX_INTEGER_COMPUTATION_MODE checks.
25265
25266 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
25267
25268         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
25269         such that MASK_SUPPORT_ARCH is not negative.
25270
25271 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
25272
25273         * loop.c (verify_dominator): Properly handle ADDR_VEC and
25274         ADDR_DIFF_VEC insns that appear inside loops.
25275
25276 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
25277                           Jeff Law <law@cygnus.com>
25278
25279         * rs6000.md (movdf_hardfloat32): Revert previous patch.
25280         Handle LO_SUM the same as offsettable in cases 1 and 2.
25281         * rs6000.c (find_addr_reg): Revert previous patch.
25282
25283 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
25284
25285         * system.h (strstr): New external function declaration.
25286         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
25287         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
25288         * config.in, configure: Rebuilt.
25289
25290 1999-06-24  Tom Tromey  <tromey@cygnus.com>
25291
25292         * gcc.c (main): Read user-specified specs files after computing
25293         additional startfile_prefixes.
25294
25295 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
25296
25297         Revert these two patches:
25298
25299         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25300         * loop.c (strength_reduce): When doing biv->giv conversion, update
25301         reg note of NEXT->insn.
25302
25303         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25304         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
25305         reg_biv_class.
25306         (recombine_givs): Set ix field after sorting.
25307
25308 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25309
25310         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
25311         for the parts of an UNSPEC / UNSPEC_VOLATILE.
25312
25313 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
25314
25315         *fixinc/inclhack.def:  Add fix development commentary
25316         (read_ret_type): reactivate and add selection clause
25317         (zzz_*): tweak output file name to match what is used in hackshell.tpl
25318         *fixinc/{fixincl.x|inclhack.sh}: regen
25319
25320 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
25321
25322         * expr.c (expand_expr): STRIP_NOPS before checking against
25323         MAX_INTEGER_COMPUTATION_MODE
25324         (check_max_integer_computation_mode): Likewise.
25325
25326 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
25327
25328         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
25329
25330 1999-06-22  Jim Wilson  <wilson@cygnus.com>
25331
25332         * expr.c (store_expr): When target is a promoted subreg, return a
25333         promoted subreg as a result.
25334
25335 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
25336
25337         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
25338         coding standards.
25339         (dwarf2out_define): Mark unused parameters appropriately.
25340         (gen_unspecified_parameters_die): Ditto.
25341         (gen_subprogram_die): Fix signed/unsigned warnings.
25342         (gen_variable_die): Ditto.
25343
25344 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
25345
25346         * fixinc/inclhack.def(end_else_label): combined else_label
25347         and endif_label and fixed the sed expression.
25348         *fixinc/{fixincl.x|inclhack.sh}: regen
25349
25350 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
25351
25352         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
25353         'x' when handling non-offsettable addresses
25354
25355 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
25356
25357         * final.c (shorten_branches): Don't try to split an insn that has
25358         been deleted.
25359
25360 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
25361
25362         * config/mips/mips.c (symbolic_expression_p): New function.
25363         (mips_select_rtx_section): Put symbolic expressions in the
25364         data section, not the read-only data section.
25365
25366 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
25367
25368         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
25369
25370 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
25371
25372         * collect2.c (main): Log frame table count.
25373         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
25374         (scan_prog_file) [COFF]: Handle frame tables.
25375
25376         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
25377         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
25378         * alpha/elf.h: Undef them again.
25379         * alpha/vms.h: Remove their definitions.
25380
25381 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25382
25383         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
25384         remove the clobber of r0 and change the REG_UNUSED note to
25385         REG_INC.
25386
25387 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
25388
25389         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
25390         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
25391         fits in HOST_WIDE_INT and one uses union to access a long constant
25392         as double.
25393
25394 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
25395
25396         * sparc.c (sparc_override_options): Don't allow profiling for
25397         code models other than medlow.
25398         (sparc_function_profiler): New function from old FUNCTION_PROFILER
25399         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
25400         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
25401         (sparc_block_profiler): Likewise.
25402         (sparc_function_block_profiler_exit): Likewise.
25403         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
25404         (FUNCTION_BLOCK_PROFILER): Likewise.
25405         (BLOCK_PROFILER): Likewise.
25406         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
25407         (MCOUNT_FUNCTION): New.
25408         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
25409         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
25410         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
25411         (MCOUNT_FUNCTION): New.
25412         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
25413         (BLOCK_PROFILER): Delete.
25414         (MCOUNT_FUNCTION): New.
25415
25416 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
25417
25418         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
25419
25420 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
25421
25422         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
25423         Add the macros.
25424
25425         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
25426         Ditto.
25427
25428         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
25429         Ditto.
25430
25431         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
25432         Ditto.
25433
25434 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
25435
25436         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
25437         types.
25438
25439 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
25440
25441         * i386/djgpp.h (LIB_SPEC): New.
25442         (STARTFILE_SPEC): New.
25443
25444         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
25445
25446 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
25447
25448         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
25449         compiler flags.
25450
25451         * system.h (WSTOPSIG): New macro.
25452
25453 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25454
25455         * c-pragma.c (push_alignment): Don't ignore alignments greater than
25456         4 bytes.
25457         (insert_pack_attributes): Take into account member natural
25458         alignment.
25459
25460         * i386/winnt.c (exports_head): New static variable.
25461         (i386_pe_record_exported_symbol): New function.
25462         (i386_pe_asm_file_end): Use.
25463         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
25464         symbols to be emitted at end of assembly.
25465         (ASM_DECLARE_OBJECT_NAME): Likewise.
25466         (ASM_DECLARE_FUNCTION_NAME): Likewise.
25467
25468         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
25469         -iwithprefix.
25470
25471 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
25472
25473         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
25474         in last change.
25475
25476 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
25477
25478         * haifa-sched.c (sched_analyze_1): Use free_list instead of
25479         zapping reg_last_uses directly.
25480         (sched_analyze_2, sched_analyze_insn): Likewise.
25481         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
25482
25483 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
25484
25485         * rs6000.md (movdf_hardfloat32): Use worst case insn length
25486         attributes for cases 1 and 2.
25487
25488 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
25489
25490         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
25491         instead of set.
25492
25493 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
25494
25495         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
25496
25497 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
25498
25499         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
25500         PIC_OFFSET_TABLE_REGNUM for general alloaction.
25501         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
25502         must be stacked if it is used for PIC accesses.
25503         * arm.c (use_return_insn): Handle PIC register specially.
25504         (output_return_instruction): Likewise.
25505         (output_func_{prologue,epilogue}): Likewise.
25506         (output_expand_prologue): Likewise.
25507
25508         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
25509         (*strsi_predec): Renamed from *strqi_predec.
25510         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
25511         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
25512
25513         * arm.c (arm_override_options): Remove warning about PIC code
25514         not being supported.
25515
25516 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
25517
25518         * rs6000.c (find_addr_reg): New function.
25519         * rs6000.h (find_addr_reg): Declare.
25520         (offsettable_addr_operand): Delete.
25521         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
25522         from and stores to GPRs.
25523
25524 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
25525
25526         * alpha.c (alpha_expand_block_move): Use get_insns rather than
25527         gen_sequence as argument to emit_no_conflict_block.
25528
25529 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25530
25531         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
25532         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
25533         *fixinc/fixincl.x: regen
25534         *fixinc/inclhack.sh: regen
25535
25536 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
25537
25538         * added support for -mpcrel (PC relative addressing for m68k)
25539         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
25540         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
25541         * m68k.c (print_operand_address): Handle 32-bit PIC case.
25542         (comments for general_src_operand): Add some explanation
25543         about EXTRA_CONSTRAINTS.
25544         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
25545         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
25546         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
25547         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
25548         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
25549         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
25550         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
25551         if not already set.
25552         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
25553         * m68k.h (TARGET_PCREL): New target flag.
25554         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
25555         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
25556         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
25557         contains a SYMBOL_REF.  Relax this constraint during reload, since
25558         we want to use the predicates, not reload's built-in concept of a
25559         valid memory address, to control what insns need reloading.
25560         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
25561         operands (essentially 'g', 'm', and 's' under normal circumstances).
25562         * m68k.c (print_operand): Cause printing of pc-relative addresses
25563         to include pc register.
25564         (print_operand_address): Ditto.
25565         (general_src_operand): Accept operands that are not only
25566         general_operands, but are also valid when used as a pc-relative
25567         source.
25568         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
25569         (memory_src_operand): Similar, for memory_operands.
25570         (pcrel_address): New predicate to accept the special case of a
25571         pc-relative address.
25572         * m68k.md (many patterns): Rewrite common SImode, HImode, and
25573         QImode insns to accept *_src_operand instead of *_operand where
25574         pc-relative operands can fit.  For example, a pc-relative operand
25575         can be used as a memory source operand for addsi3, but not as a
25576         memory destination.
25577         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
25578
25579 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
25580
25581         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
25582         .thumb_set pseudo op to mark aliases of thumb functions.
25583
25584 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
25585
25586         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
25587         preference to ASM_OUTPUT_DEF, if it is defined.
25588
25589         * tm.texi: Document new, optional target macro
25590         ASM_OUTPUT_DEF_FROM_DECLS.
25591
25592 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25593
25594         * fixincludes: ISCNTL patch
25595         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
25596         (dgux_int_varargs): new for DG/UX
25597         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
25598
25599 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
25600
25601         * invoke.texi (ia32 options): Fix typo.
25602
25603 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25604
25605         * loop.c (strength_reduce): When doing biv->giv conversion, update
25606         reg note of NEXT->insn.
25607
25608 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
25609
25610         * loop.c (move_movables): Note issues with replacing REGs with
25611         SUBREGs.
25612         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
25613
25614 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
25615
25616         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
25617
25618         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
25619         the reference to `mcount' was not correct for the ELF on FreeBSD.
25620
25621 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25622
25623         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
25624         reg_biv_class.
25625
25626         (recombine_givs): Set ix field after sorting.
25627
25628 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
25629
25630         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
25631         to safe to extract a subword out of a REG.
25632
25633 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25634
25635         * sh.md (mulsi3): Don't add a no-op move at the end.
25636
25637 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25638
25639         * cse.c (cse_insn): Don't put hard register source into tables for
25640         the last insn of a libcall.
25641
25642 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25643
25644         * loop.c (strength_reduce): Insert sets of derived givs at every
25645         biv increment, even if it's the only one.
25646
25647 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
25648
25649         * dwarfout.c (add_incomplete_type): New fn.
25650         (output_type): Call it.
25651         (retry_incomplete_types): New fn.
25652         (dwarfout_finish): Call it.
25653
25654         From Eric Raskin <ehr@listworks.com>:
25655         (output_type): Output types for bases.
25656
25657 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
25658
25659         * mips.c (mips_output_conditional_branch): Add `break'
25660         between `default' label and `close braces'.
25661
25662 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
25663
25664         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
25665         specifications and make it realistic.
25666         (LIB_SPEC): Likewise.
25667
25668 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
25669
25670         * config/mips/mips.c (mips_secondary_reload_class): Check for
25671         (PLUS (SP) (REG)) and return appropriate register class.
25672         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
25673         Handle (PLUS (SP) (REG)).
25674         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
25675         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
25676         of emit_insn for tablejump.
25677
25678 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
25679
25680         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
25681         asm_fprintf format string by itself.
25682         (output_function_profiler): Likewise.
25683
25684 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
25685
25686         * combine.c (simplify_logical, case AND): Only call
25687         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
25688         or the constant is positive.
25689
25690 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
25691
25692         * configure.in: Fix typo in rs6000-ibm-aix4 case.
25693         * configure: Regenerate.
25694
25695 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
25696
25697         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
25698         require a sub-version #.
25699         * configure: Rebuilt.
25700
25701 1999-06-14  Robert Lipe  (robertlipe@usa.net)
25702
25703         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
25704
25705 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
25706
25707         * c-typeck.c (process_init_element): Detect excess elements in
25708         char array initializer.
25709
25710 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
25711
25712         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
25713
25714 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
25715
25716         * invoke.texi (Option Summary): Add -fpermissive flag.
25717
25718 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
25719
25720         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
25721         that require PIC code sequences.
25722
25723 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
25724
25725         * configure.in: Add new target: thumb-elf.
25726         * configure: Regenerate.
25727         * config/arm/t-thumb-elf: New file: Makefile fragment for
25728         thumb-elf build.
25729         * config/arm/telf.h: New file: Header file for thumb-elf
25730         build.
25731
25732 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
25733
25734         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
25735         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
25736         initializers is some circumstances.
25737
25738         * fixinc/inclhack.def (endif_label): Add additional selector for
25739         more bogus stuff after #endif statements.
25740         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
25741
25742 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25743
25744         * i386/cygwin.h (SET_ASM_OP): Define.
25745
25746 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25747
25748         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
25749
25750 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25751
25752         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
25753         latter.
25754
25755         * sh.md (ic_invalidate_line_i): Remove second alternative.
25756
25757 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25758
25759         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
25760         test for the presence of valid prototypes.  Delete bypass expr.
25761         (ioctl_fix_ctrl): Correct the selection expression.
25762         (no_double_slash): Correct quoting rules
25763         *fixinc/fixincl.x: regen
25764         *fixinc/inclhack.sh: regen
25765
25766 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
25767
25768         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
25769
25770 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
25771
25772         * rs6000.md (movsi_got_internal_mem): Delete.
25773         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
25774         (GOT_TOC_REGNUM): Delete.
25775         (PIC_OFFSET_TABLE_REGNUM): Define.
25776         (FINALIZE_PIC): Disable.
25777         * rs6000.c (rs6000_got_register): New code for fixed pic register.
25778         (rs6000_replace_regno): Delete.
25779         (rs6000_finalize_pic): Likewise.
25780         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
25781
25782 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25783
25784         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
25785         is a note; use <= for the compare; advance P while it is
25786         a NOTE.
25787
25788 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
25789
25790         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
25791         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
25792
25793         * varasm.c (remove_from_pending_weak_list): Verify t->name
25794         is non-NULL before passing it to strcmp.
25795
25796 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25797
25798         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
25799         the typed arguments are not part of a comment
25800         (ioctl_fix_ctrl): Added a purpose comment
25801         *fixinc/fixincl.x: regenerate
25802         *fixinc/inclhack.sh: regenerate
25803
25804 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
25805
25806         * invoke.texi: Add C4x invocation docs.
25807
25808 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
25809
25810         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
25811         Define new macros.
25812         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
25813         TARGET_EXPOSE_LDP.
25814         (c4x_legitimize_reload_address): New function.
25815         * config/c4x/c4x.md: Update docs.
25816
25817 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
25818
25819         * fixincludes: Avoid removing '.'.
25820         * fixinc/fixinc.svr4: Likewise.
25821         * fixinc/fixinc.winnt: Likewise.
25822         * fixinc/inclhack.tpl: Likewise.
25823         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
25824
25825 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25826
25827         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
25828         pattern.
25829         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
25830
25831 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
25832
25833         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
25834         correctly.
25835
25836 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
25837
25838         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
25839         * configure: Regenerate.
25840
25841 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
25842
25843         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
25844         values.
25845
25846 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
25847
25848         * fixinc/inclhack.def (avoid_bool): Also catch
25849         "typedef [unsigned] int bool".
25850         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
25851
25852         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
25853         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
25854         * configure: Rebuilt.
25855
25856 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
25857
25858         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
25859         such that we can override its definitions if necessary.
25860         (CPP_SPEC): New define.  Support processor specific predefines via
25861         %(cpp_cpu).
25862         (CC1_SPEC): New define.  Support processor specific compiler
25863         options via %(cc1_cpu).
25864         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
25865         -static.
25866
25867 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25868
25869         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
25870         between sed's -e flag, and the open-quote following it.
25871         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
25872
25873 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
25874                           Jeffrey A Law  (law@cygnus.com)
25875
25876         * varasm.c (assemble_start_function): Remove the function
25877         from the pending weak decls list when we define a function.
25878         (assemble_variable): Similarly for variables.
25879         (weak_finish): Ignore items on the list with a NULL name.
25880         (remove_from_ending_weak_list); New function to "remove" an item
25881         from the pending weak declarations list.
25882
25883 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
25884
25885         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
25886
25887 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
25888
25889         * c-lex.c (GETC): Redefine to call getch.
25890         (UNGETC): Redefine to call put_back.
25891         (putback_buffer): New structure type.
25892         (putback): New static structure.
25893         (getch): New function.
25894         (put_back): New function.
25895         (yylex): Replace unused bytes from bad multibyte character.
25896
25897 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
25898
25899         * cpplib.c (do_define): Cast `alloca' return value.
25900         (do_include, do_undef, do_pragma): Likewise.
25901         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
25902         values.
25903         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
25904         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
25905
25906 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
25907
25908         * sparc.md (abstf2): This should be an expand.
25909         (split after abstf2_notv9): Fix mode.
25910         (abstf2_hq_v9): New pattern.
25911         (abstf2_v9): Only use when no hard quad.
25912         (absdf2_v9): Fix if target is not the same as source.
25913         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
25914         Add correct output constraints.
25915
25916 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
25917
25918         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
25919         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
25920
25921 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
25922
25923         * mips.h (mips_output_conditional_branch): New function.
25924         (mips_adjust_insn_length): Likewise.
25925         (ASSEMBLER_SCRATCH_REGNUM): New macro.
25926         (ADJUST_INSN_LENGTH): Likewise.
25927         * mips.c (print_operand): Add `F' and `W' for floating-point
25928         comparison opcodes.
25929         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
25930         are now in bytes.
25931         (mips_adjust_insn_length): New function.
25932         (mips_output_conditional_branch): New function.
25933         * mips.md (length): Adjust attribute definition to handle
25934         conditional branches.  Change lengths to bytes, rather than
25935         instructions throughout.  Remove length attribute from
25936         instructions whose length is four bytes, and rely on the default
25937         instead.
25938         (dslot): Fix typo in comment.
25939         Reword conditional branch patterns to use
25940         mips_output_conditional_branch.
25941
25942 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
25943
25944         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
25945         (LIB_SPEC): Likewise.
25946         Link with -lprof1_r for -g/-pg.
25947
25948 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
25949
25950         * loop.c (check_dbra_loop): Fix change of Jan 19.
25951
25952 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
25953
25954         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
25955         (STARTFILE_SPEC):  Define, override the svr4.h version.
25956         (ENDFILE_SPEC):  Likewise.
25957
25958 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
25959
25960         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
25961         * fixinc/fixincl.x: Regenerated.
25962         * fixinc/inclhack.sh: Regenerated.
25963
25964 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25965
25966         * sh.c (barrier_align): Don't return early for normal branch/barrier
25967         when optimizing for SH2.
25968
25969 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
25970
25971         * i386/udk.h (LINK_SPEC): Correct linker search path for
25972         system libraries.
25973
25974 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25975
25976         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
25977         (braf_label_ref_operand): Delete.
25978         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
25979         * sh.md (casesi_jump_2): Operand1 is now the inside of a
25980         label_ref, and has no predicate.
25981         The patten has a predicate to guard against invalid substitutions.
25982         (dummy_jump): Delete.
25983         (casesi): Update use of casesi_jump_2.
25984
25985 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
25986
25987         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
25988         *fixinc/fixincl.x: regenerate
25989         *fixinc/inclhack.sh: regenerate
25990
25991 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
25992
25993         * dwarf2out.c (add_incomplete_type): New fn.
25994         (gen_struct_or_union_type_die): Call it.
25995         (retry_incomplete_types): New fn.
25996         (dwarf2out_finish): Call it.
25997
25998 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
25999
26000         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
26001         current block starts with a CODE_LABEL and ends with a CALL and
26002         we can not find all the argument setup instructions for the CALL.
26003
26004 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
26005
26006         Revert this change:
26007         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
26008         something is a candidate for optimize_bit_field_compare.
26009
26010 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26011
26012         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
26013
26014 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
26015
26016         * alpha.c (override_options): Thinko in last patch.
26017
26018         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
26019         (LIB_SPEC): Recognize -pthread.
26020
26021 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
26022
26023         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
26024         definition in config/arm/coff.h
26025         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
26026
26027 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
26028
26029         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
26030         fixes that need "file=xxx\n" prepended before invocation
26031         (start_fixer - new): starting the fixer process is complex enough
26032         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
26033         (process): uses the new routine; omit usage of putenv()
26034         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
26035         * fixinc/fixincl.x: regenerate
26036
26037 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
26038
26039         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
26040         and version #s (1.1 -> 2.96) as needed.
26041         * README.g77: Kill way out of date file in the toplevel directory.
26042
26043 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
26044
26045         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
26046         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
26047         * configure: Rebuilt.
26048         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
26049         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
26050         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
26051         (SWITCH_TAKES_ARG): Likewise.
26052         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
26053         * config/t-freebsd: Moved from config/i386/ so it can used for all
26054         FreeBSD targets.
26055
26056 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
26057
26058         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
26059
26060 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
26061
26062         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
26063         * configure: Rebuilt.
26064
26065 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
26066
26067         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
26068         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
26069         * rs6000/rs6000.c (rs6000_file_start): Use putc.
26070         (rs6000_output_load_toc_table): Same.
26071         (output_prolog, output_mi_thunk): Same.
26072         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
26073         (ASM_GLOBALIZE_LABEL): Use putc.
26074
26075 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
26076
26077         * alpha.md (reload_*_help): New patterns and splitters.
26078         (reload_*): Use them.
26079         (mov[qh]i): Likewise.
26080
26081 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
26082
26083         * cccp.c (handle_directive): Handle backslash-newlines in quoted
26084         strings correctly.
26085
26086 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
26087
26088         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
26089
26090 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
26091
26092         * flow.c (mark_regs_live_at_end, insn_dead_p,
26093         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
26094         and HARD_FRAME_POINTER_REGNUM special treatment if reload
26095         hasn't run or the frame pointer is needed.
26096         * haifa-sched.c (attach_deaths): Likewise.
26097         * sched.c (attach_deaths): Likewise.
26098
26099 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
26100
26101         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
26102         calculate_can_reach_end returns nonzero.
26103
26104         * configure.in (native gas tests): Search for an assembler in the
26105         same manner that the installed compiler will.
26106         * configure: Rebuilt.
26107         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
26108
26109         * alias.c (find_base_term): Improve handling of addresses
26110         constructed from binary operations.
26111
26112 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
26113
26114         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
26115
26116 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
26117
26118         * function.h (cleanup_label, frame_offset): Declare.
26119         (tail_recursion_label, tail_recursion_reentry): Likewise.
26120         (arg_pointer_save_area, rtl_expr_chain): Likewise.
26121         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
26122         (tail_recursion_label, tail_recursion_reentry): Likewise.
26123         (arg_pointer_save_area, rtl_expr_chain): Likewise.
26124
26125 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
26126
26127         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
26128         defined.
26129         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
26130         (MAX_OFILE_ALIGNMENT): Define.
26131
26132 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
26133
26134         * fixincl.c: Replace local include scheme with #includes of
26135         gansidecl.h and system.h.
26136         * procopen.c:  Likewise.
26137         * server.c:  Likewise.
26138
26139 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
26140
26141         * i386/t-dgux (EXTRA_PARTS): Add crti.o
26142         (crti.o): Add build rule and dependencies.
26143         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
26144
26145 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
26146
26147         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
26148         (LIB_LINUX_SPEC): Likewise.
26149         (LIB_LINUX_SPEC): Add support for -pthread
26150         (CPP_OS_LINUX_SPEC): Likewise.
26151         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
26152         specified.
26153
26154 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
26155
26156         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
26157         conditional move.
26158         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
26159         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
26160         for IEEE math and CC_FCOMI.
26161         (put_jump_code): No IEEE if CC_FCOMI is set.
26162
26163 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
26164
26165         * fold-const.c (fold_truthop): Make the field reference unsigned
26166         when converting a single bit compare.
26167
26168 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26169
26170         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
26171
26172 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
26173
26174         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
26175         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
26176         version did.
26177
26178         * reload.c (push_reload): Do not call remove_address_replacements
26179         when presented with identical optional reloads.
26180
26181 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
26182
26183         * alpha.h (MASK_FIX, TARGET_FIX): New.
26184         (MASK_*): Reorganize constants.
26185         (CPP_AM_FIX_SPEC): New.
26186         (TARGET_SWITCHES): Add FIX.
26187         (EXTRA_SPECS): Likewise.
26188         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
26189         (SECONDARY_MEMORY_NEEDED): Likewise.
26190         (REGISTER_MOVE_COST): Likewise.
26191         * alpha.c (override_options): Add FIX support.  Always use
26192         ALPHA_TP_PROG for ev6.
26193         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
26194         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
26195         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
26196
26197 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
26198
26199         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
26200         something is a candidate for optimize_bit_field_compare.
26201
26202 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
26203
26204         * gcc.texi (Passes): Document branch-shortening.
26205         * invoke.texi (Debugging Options): Document the fact that `-dp'
26206         outputs length information for instructions.
26207
26208 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
26209
26210         * flow.c: Revert previous delta.
26211
26212 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
26213
26214         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
26215         FRAME_POINTER_REGNUM.
26216         (mark_set_1): Ditto.
26217         (mark_used_regs): Ditto.
26218
26219 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
26220
26221         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
26222         (GOT_PCREL): New macro.  Define to 1 if not already defined.
26223         * arm/elf.h (GOT_PCREL): Define to 0.
26224         * arm.c (arm_finalize_pic): Take into account the setting of
26225         GOT_PCREL.
26226
26227 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
26228
26229         * output.h (STRIP_NAME_ENCODING): Provide default definition.
26230         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
26231
26232         * flow.c (mark_set_1): Do not record BLKmode stores as dead
26233         store elimination candidates.
26234
26235 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
26236
26237         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
26238         TARGET_GAS.
26239
26240 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
26241
26242         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
26243         Add use of x-aix41-gld.
26244
26245 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
26246
26247         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
26248         (ASM_OUTPUT_DESTRUCTOR): Define.
26249
26250 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
26251
26252         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
26253         last CODE_LABEL in a loop if we have previously passed a jump
26254         to the top of the loop.
26255
26256 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
26257
26258         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
26259         applying Philip's patch.
26260
26261 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
26262
26263         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
26264         are not VAR_DECLs.
26265
26266 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
26267
26268         * loop.c (strength_reduce): Grow reg_single_usage as needed.
26269
26270 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
26271
26272         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
26273         Also remove a useless comment.
26274
26275 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
26276
26277         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
26278
26279 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
26280
26281         * collect2.c (main): Only generate import or export file and add
26282         to link arguments if non-empty.  Use xmalloc not alloca.
26283         (write_{export,import}_file): Delete.
26284         (write_aix_file): New function.
26285         (locatelib): Use xmalloc not malloc.
26286         (GCC_OK_SYMBOL): Do not check type if aix64.
26287
26288 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
26289
26290         Based on patch by Scott Bambrough and Pat Beirne:
26291         * config/arm/arm.c (making_const_table): New variable.
26292         * config/arm/arm.h (making_const_table): Declare.
26293         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
26294         appropriate.
26295         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
26296         Keep track of when we are building the constant table.
26297
26298 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
26299
26300         * config/arm/arm.c (arm_override_options): Fix erroneous warning
26301         message.
26302
26303 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
26304
26305         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
26306         defined.
26307
26308 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
26309
26310         * tm.texi (FUNCTION_ARG): Correct description of a stack element
26311         in a PARALLEL.
26312
26313 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
26314
26315         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
26316
26317 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
26318
26319         * rs6000.c (output_mi_thunk): Enable full support again.
26320
26321 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26322
26323         * sh.h (BRANCH_COST): Define.
26324
26325 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
26326
26327         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
26328
26329 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
26330
26331         * function.c (assign_stack_local): Align stack slot propertly.
26332         (assign_outer_stack_local): Likewise.
26333
26334 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
26335
26336         * expr.h (lang_expand_constant): Declare.
26337         * toplev.c (lang_expand_constant): Define it.
26338         * varasm.c (output_constant): Use it.
26339
26340 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26341
26342         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
26343         Change function definitions to K&R style.
26344
26345 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
26346
26347         * fixinc/fixincl.c: We must not ignore SIGCLD now.
26348
26349 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
26350
26351         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
26352         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
26353         (several places): omit static initialization
26354         (process): use single fd, since only the read fd is used
26355         * fixinc/gnu-regex.c: define 'const' away, if not supported
26356         * fixinc/procopen.c(several places): omit static initialization
26357         * fixinc/server.c: define 'volitile' away, if not supported
26358
26359 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
26360
26361         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
26362         asm_fprintf and %L to generate the label name.
26363         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
26364         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
26365
26366 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
26367
26368         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
26369         insn for a conditional jump can not be found.
26370
26371 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
26372
26373         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
26374         on variables in specific sections other than .sbss and .sdata.
26375
26376 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
26377
26378         * stmt.c (expand_return): Call start_cleanup_deferral and
26379         end_cleanup_deferral around conditional code.
26380
26381 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
26382
26383         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
26384         filename lists.  Utilizes new "krstr" AutoGen function.
26385         * fixinc/fixincl.x: Rebuilt.
26386
26387 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
26388
26389         * i386.c (output_float_compare): Avoid GNU-C extensions.
26390
26391 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
26392
26393         * version.c: Bump to distinguish mainline tree from the
26394         gcc-2.95 branch.
26395
26396 See ChangeLog.1 for earlier changes.