OSDN Git Service

* configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-05-01  Richard Henderson  <rth@cygnus.com>
2
3         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
4         reference to alpha/t-linux.
5         (alpha*-*-linux-gnu*): Likewise.
6         * configure: Rebuild.
7
8         * calls.c (expand_call): Don't emit reg notes for a sibcall.
9
10         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
11         if not in SSA form.
12
13         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
14
15 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
16
17         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
18         TREE_THIS_VOLATILE.
19
20 2000-05-01  Richard Henderson  <rth@cygnus.com>
21
22         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
23         emit_conditional_move.
24
25 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
26
27         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
28         as the dynamic linker.
29
30 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
31
32         * cppfiles.c (open_include_file): Open file in blocking mode.
33         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
34         Only exclude block devices and directories.
35
36         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
37         static.  Allocate the hashnode and its string in the same
38         block of memory.
39         (del_HASHNODE): Don't free h->name.
40         (_cpp_lookup): If there is no entry for this string, create
41         one, of type T_VOID.
42         (_cpp_lookup_slot): Delete.
43         * cpphash.h: Update prototypes.
44
45         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
46         not hp == NULL.
47         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
48         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
49         node here, just fill in the value field properly.  "Delete"
50         entries by setting the value field to T_VOID.  Check for
51         hp->type == T_VOID, not hp == NULL.
52
53         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
54         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
55         hashtab.h.
56
57 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
58
59         * config/mn10300/mn10300.c (print_operand_address): Do not add
60         zero to SP.
61
62         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
63         adjusted by less than 256 bytes, use ret regardless of having any
64         callee-saved register to restore.
65
66 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
67
68         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
69
70 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
71
72         * config/i386/djgpp.h (INT_ASM_OP): Define.
73         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
74         (ASM_WEAKEN_LABEL): Define.
75         (MASK_BNU210): Define.
76         (SUBTARGET_SWITCHES): Define.
77         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
78         (MAKE_DECL_ONE_ONLY): Define.
79         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
80
81 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
82
83         * i386/cygwin.h (INT_ASM_OP): Define.
84
85 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
86
87         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
88         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
89
90 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
91
92         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
93         __tmp_reg__ and __zero_reg__ initialization.
94
95 2000-04-30  Richard Henderson  <rth@cygnus.com>
96
97         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
98
99         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
100         referenced bewteen the condition and the jump.  Don't delete
101         anything but the jump.
102
103 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
104
105         * bb-reorder.c (scope_def): New struct.
106         (scope_forest_info): New struct.
107         (struct reorder_block_def): New member "scope".
108         (REORDER_BLOCK_SCOPE): New macro.
109         (relate_bbs_with_scopes): New function and prototype.
110         (make_new_scope): Likewise.
111         (build_scope_forest): Likewise.
112         (remove_scope_notes): Likewise.
113         (insert_intra_1): Likewise.
114         (insert_intra_bb_scope_notes): Likewise.
115         (insert_inter_bb_scope_notes): Likewise.
116         (rebuild_scope_notes): Likewise.
117         (free_scope_forest_1): Likewise.
118         (free_scope_forest): Likewise.
119         (dump_scope_forest): Likewise.
120         (dump_scope_forest_1): Likewise.
121         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
122         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
123         block.
124         (reorder_basic_blocks): Added calls to build_scope_scope_forest
125         and remove_scope_notes before reordering is done. Added calls to
126         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
127         after reordering is done.
128
129 2000-40-30  Bruce Korb  <bkorb@gnu.org>
130
131         * fixinc/inclhack.def:  Added definitions needed by OSR5,
132         removed two stale entries (defined away with OLD_CPP).
133         * fixinc/inclhack.sh: regen
134         * fixinc/fixincl.x: regen
135
136 2000-04-30  Richard Henderson  <rth@cygnus.com>
137
138         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
139         from the last insn in the sequence.
140
141 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
142
143         * cpplex.c (cpp_idcmp): New function.
144         * cpplib.h: Prototype it.
145         * scan_decls.c (scan_decls): Use it to inspect token names.
146         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
147         the file being run through the preprocessor.
148         (check_macro_names): Provide length of token to cpp_defined.
149
150         * Makefile.in: Remove stale warning message.
151
152         * cppfiles.c (redundant_include_p): Provide length of token to
153         cpp_defined.
154         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
155         values are unsigned int.
156         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
157         (_cpp_lookup_slot): Do not calculate the hash, either.
158         * cpphash.h: Update prototypes.
159         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
160         Hashes are unsigned int.  Calculate hash here, pass by value
161         to _cpp_lookup_slot.
162
163 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
164
165         * simplify-rtx.c (check_value_useless): Delete function.
166         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
167         by hand.
168         (cselib_invalidate_regno): Likewise.
169         (cselib_invalidate_mem_1): Likewise.
170         (references_value_p): Recognize useless values by the fact that they
171         have no locations.
172         (discard_useless_values): Likewise.
173         (cselib_record_set): This may turn a useless value
174         into a useful one.
175
176 2000-04-30  Richard Henderson  <rth@cygnus.com>
177
178         * config/d30v: New port.
179
180         * configure.in (d30v-*): Set fp format.
181         * configure: Rebuild.
182
183 2000-04-30  Richard Henderson  <rth@cygnus.com>
184
185         * ifcvt.c: New file.
186         * Makefile.in (OBJS): Add it.
187         (ifcvt.o): New target.
188         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
189         and conditional arithmetic.
190         (find_insert_position): Remove.
191         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
192         * toplev.c (DFI_ce, DFI_ce2): New.
193         (dump_file): Add ce and ce2 dumps.
194         (rest_of_compilation): Run if_convert a couple o times.  Set
195         cse_not_expected after cse2.  Don't set no_new_pseudos until
196         after sched1 or recompute_reg_usage.
197
198 2000-04-30  Richard Henderson  <rth@cygnus.com>
199
200         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
201         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
202
203 2000-04-30  Richard Henderson  <rth@cygnus.com>
204
205         * flow.c (struct reg_cond_life_info): New.
206         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
207         (init_propagate_block_info): Initialize them.
208         (free_propagate_block_info): Destruct them.
209         (mark_set_1): Consider conditional life before killing a register.
210         (mark_regno_cond_dead): New.
211         (free_reg_cond_life_info): New.
212         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
213         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
214         (mark_used_reg): Record conditional life.
215
216         * haifa-sched.c (schedule_insns): Disable death counting
217         sanity check for HAVE_conditional_execution.
218
219 2000-04-30  Richard Henderson  <rth@cygnus.com>
220
221         * Makefile.in (TIMEVAR_H): New.
222         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
223         (timevar.h): Remove rule.
224
225 2000-04-29  Richard Henderson  <rth@cygnus.com>
226
227         * config/alpha/crtend.asm: Use C comments instead of #.
228         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
229
230         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
231
232 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
233
234         * cpphash.h (enum node_type: Take out T_MCONST.
235         (union hashval): Move into struct hashnode.
236         (struct hashnode): Pack tighter.  Remove file, line, col
237         members.
238         * cpphash.c: Constify most of the macro-definition structures.
239         (struct definition): Replace by struct object_defn
240         and struct funct_defn.  Put file, line, column information
241         here.  All users updated to match.
242         (_cpp_create_definition, _cpp_macroexpand): Remove special
243         case for #define WORD OTHERWORD.
244         * cpplib.c (do_undef): Remove T_MCONST case.
245
246         * cpphash.h: Move struct reflist, struct definition, and the
247         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
248         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
249         * cpphash.c (_cpp_free_definition): Free data pointed to by
250         MCONST, XCONST, MACRO, and FMACRO nodes properly.
251         (_cpp_create_definition, del_HASHNODE): Just call
252         _cpp_free_definition to clear out a hashnode.
253         * cpplib.c (do_pragma_poison): Likewise.
254
255 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
256
257         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
258         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
259         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
260         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
261         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
262         REGNO_AM33_P): Redefine in terms of the new macros.
263         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
264         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
265         STRUCT_VALUE): Likewise.
266         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
267         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
268
269 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
270
271         * regmove.c (struct record_stack_memrefs_data): New.
272         (record_stack_memrefs): New function.
273         (combine_stack_adjustments_for_block): Use it.
274
275 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
276
277         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
278         use special_function_p to detect alloca.
279
280 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
281
282         * gcc.texi: Fixes for makeinfo 4.0 --html.
283
284 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
285
286         * pcp.h: Delete file.
287
288 2000-04-28  Kazu Hirata  <kazu@hxi.com>
289
290         * h8300.c (function_epilogue): Clean up flags when the last insn
291         in a function is a barrier.
292
293 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
294
295         * configure.in (sparc-hal-solaris2*): protect [] glob from
296         my expansion.
297         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
298         rather than hard-coded constants in target_cpu_default2.
299         * configure: Regenerate.
300
301 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
302
303         * tree.c (get_callee_fndecl): Extract the initial value from
304         a readonly decl.
305
306 2000-04-28  Richard Henderson  <rth@cygnus.com>
307
308         * varasm.c (record_constant_1): Record the CODE_LABEL when
309         taking the address of a LABEL_REF.
310
311 2000-04-28  Richard Henderson  <rth@cygnus.com>
312             Jan Hubicka  <jh@suse.cz>
313
314         * calls.c (combine_pending_stack_adjustment_and_call): Return the
315         adjustment; don't do the stack adjust.
316         (expand_call): Call compute_argument_block_size right before
317         allocating the block; update comment; don't do alignment sanity
318         checking for sibling call; use args_size instead of
319         unadjusted_args_size before args_size is adjusted.  Use
320         combine_pending_stack_adjustment_and_call to compute stack adjust
321         for must_preallocate case.
322
323         * expr.c (push_block): Remove shadow `temp' in inner scope.
324
325 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
326
327         * toplev.c (rest_of_compilation): Call
328         note_deferral_of_defined_inline_function even if the function
329         can't be inlined.
330
331 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
332
333         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
334
335 2000-04-28  Richard Henderson  <rth@cygnus.com>
336
337         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
338
339 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
340
341         * timevar.c (init_timevar): DeANSIfy function definition.
342
343 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
344
345         * Makefile.in (timevar.o): Depend on flags.h.
346         * timevar.c (unused_stack_instances): New variable.
347         (timevar_push): Take a timevar_stack_def from
348         unused_stack_instances if available.
349         (timevar_pop): Push the popped timevar_stack_def onto
350         unused_stack_instances.
351         (TIMEVAR_ENABLE): New macro.
352         (timevar_def): Make standalone a 1-bit field.  Add field used.
353         (get_time): Rename parameter to now.  Return after clearing it if
354         not TIMEVAR_ENABLE.
355         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
356         (timevar_pop): Likewise.
357         (timevar_stop): Likewise.
358         (timevar_push): Likewise.  Mark the timing variable as used.
359         (timevar_start): Likewise.
360         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
361         timevars that were never used.
362
363 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
364
365         * c-commom.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
366         always TREE_READONLY.
367
368 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
369
370         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
371         for call instruction with mode QImode.
372
373 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
374
375         * Makefile.in (OBJS): Add timevar.o.
376         (toplev.o): Depend on timevar.h.
377         (ggc-simple.o): Likewise.
378         (ggc-page.o): Likewise.
379         (timevar.o): New rule.
380         (timevar.h): New rule.
381
382         * timevar.h: New file.
383         * timevar.c: Likewise.
384         * timevar.def: Likewise.
385
386         * toplev.h (gc_time, parse_time, varconst_time): Remove.
387         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
388         throughout.
389         (TIMEVAR): Remove macro.
390         (gc_time, parse_time, varconst_time, integration_time, jump_time,
391         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
392         flow_time, combine_time, regmove_time, sched_time,
393         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
394         sched2_time, dbr_sched_time, reorder_blocks_time,
395         rename_registers_time, shorten_branch_time, stack_reg_time,
396         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
397         all_time): Remove.
398         (compile_file): Don't initialize time variables.  Call
399         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
400         of many calls to print_time.
401         (rest_of_compilation): Add timing for reload_cse_regs.
402         (get_run_time): Removed to timevar.c.
403         (print_time): Likewise.
404         (get_run_time): Implement using TV_TOTAL time variable.
405         (print_time): Get total run time from get_run_time.
406         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
407         computing elapsed time explicitly.
408         * ggc-simple.c (ggc_collect): Likewise.
409         (gc_time): Remove declaration.
410
411 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
412
413         * calls.c (combine_pending_stack_adjustment_and_call): New function.
414         (expand_call): Use it.
415
416 2000-04-27  Jan Hubicka  <jh@suse.cz>
417
418         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
419         fields.
420
421 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
422
423         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
424         registers.
425
426 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
427
428         * function.c (epilogue_done): Pass whole insn to record_insns.
429
430 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
431
432         * cse.c (CSE_ADDRESS_COST): Remove.
433         (find_best_addr): Add new parameter "MODE", use address_cost instead
434         of CSE_ADDRESS_COST
435         (address_cost): New.
436         (fold_rtx): Update call of find_best_addr.
437         * rtl.h (address_cost): Declare.
438         * loop.c (general_induction_var): Add new parameter "MODE", use
439         address_cost instead of ADDRESS_COST
440         (init_loop): Use address_cost instead of ADDRESS_COST.
441         (check_insn_for_givs): Update call of general_induction_var.
442         (find_mem_givs): Likewise.
443         (consec_sets_giv): Likewise.
444         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
445         * i386.c (ix86_address_cost): New.
446         * i386-protos.h (ix86_address_cost): Declare.
447
448 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
449
450         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
451         registers.
452
453 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
454
455         * expr.c (store_expr): Use clear_storage instead of direct memset
456         libcall.
457
458 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
459
460         * config/mn10300/mn10300.c (mn10300_address_cost): Test
461         ASHIFT, AND and LABEL_REF.
462
463 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
464
465         * invoke.texi (-foptimize-sibling-calls): Fix.
466
467 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
468
469         * loop.c (load_mems)  Don't use hard registers for the hoisting.
470
471         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
472         calculation; rename const_equiv array in the preconditioning code
473         from loop_unroll to loop_unroll_precondition
474
475 2000-04-27  Richard Henderson  <rth@cygnus.com>
476
477         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
478         add new_set.
479         (propagate_one_insn): Clear it.  Don't update reg_live here.
480         (init_propagate_block_info): Update for pbi member changes.
481         (free_propagate_block_info): Likewise.
482         (mark_set_1): Know that zero_extract, sign_extract, and
483         strict_low_part don't kill their argument.  Alter hard subregs.
484         Update new_set for non-CLOBBER sets.  Update reg_live.
485         (find_auto_inc): Update reg_live, not new_dead.
486         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
487         to determine if the reg in question was set this insn.  Only update
488         reg info with PROP_REG_INFO.
489
490 2000-04-26  Richard Henderson  <rth@cygnus.com>
491
492         * flow.c (allocate_reg_life_data): Set max_regno here ...
493         (life_analysis): ... not here.
494
495         * flow.c (calculate_global_regs_live): Force stack pointer
496         live at end.
497
498 2000-04-26  Richard Henderson  <rth@cygnus.com>
499
500         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
501         commit change group changes.
502         (invert_exp_1): Similarly.
503         (redirect_exp, invert_exp): Use them.
504         (redirect_jump_1): New.
505         (invert_jump_1): New.
506         (jump_optimize_1): Remove code subsumed by condexec.c.
507         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
508
509 2000-04-26  Richard Henderson  <rth@cygnus.com>
510
511         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
512
513         * genconfig.c (main): Set all HAVE_foo to 1.
514
515         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
516
517 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
518
519         * invoke.texi: Document -fssa flag.
520
521 2000-04-26  Richard Henderson  <rth@cygnus.com>
522
523         * flow.c (count_reg_sets_1): Remove.
524         (count_reg_sets, count_reg_references): Remove.
525         (recompute_reg_usage): Implement with update_life_info.
526         Reallocate life data.
527
528 2000-04-26  Richard Henderson  <rth@cygnus.com>
529
530         * flow.c (update_life_info): Consider blocks null to mean the
531         universal set.
532         (calculate_global_regs_live): Likewise.
533         (life_analysis): Do that instead of collecting all_blocks.
534
535 2000-04-26  Richard Henderson  <rth@cygnus.com>
536
537         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
538         a still-valid conditional jump.
539
540 2000-04-26  Richard Henderson  <rth@cygnus.com>
541
542         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
543
544         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
545         * flow.c (calculate_loop_depth): Remove.
546         * output.h (calculate_loop_depth): Don't declare.
547         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
548         inline; run estimate_probability at the same time.
549
550 2000-04-26  Neil Booth  <NeilB@earthling.net>
551
552         * cpplib.h: "~=" is not a single pp-token.
553         * cpplex.c: Correct commentary.
554
555 2000-04-26  Richard Henderson  <rth@cygnus.com>
556
557         * flow.c (mark_set_1): New arguments code and flags; update all
558         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
559         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
560         loop_depth when optimizing for size.  Do new_dead update after
561         emitting REG_UNUSED notes.  Merge mark_set_reg code.
562         (mark_set_reg): Remove.
563         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
564         arrange to not emit REG_UNUSED notes.
565
566 2000-04-26  Richard Henderson  <rth@cygnus.com>
567
568         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
569         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
570
571 2000-04-26  Richard Henderson  <rth@cygnus.com>
572
573         * flow.c (propagate_one_insn): Break out from propagate_block.
574         (init_propagate_block_info): Likewise.
575         (free_propagate_block_info): Likewise.
576         (propagate_block): Use them.  Export.
577         * basic-block.h: Declare them all.
578
579 2000-04-26  Richard Henderson  <rth@cygnus.com>
580
581         * basic-block.h (life_analysis): Declare here ...
582         * output.h: ... not here.
583         * flow.c (life_analysis): Remove nregs parameter; replace
584         remove_dead_code with flags.  Remove ssa dead code check.
585         Only init alias analysis if we'll use it.
586         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
587         * ssa.c (convert_to_ssa): Likewise.
588         (convert_from_ssa): Likewise.
589         * toplev.c (rest_of_compilation): Likewise.
590
591 2000-04-26  Richard Henderson  <rth@cygnus.com>
592
593         * flow.c (flow_delete_block): Rename from delete_block.  Export.
594         * basic-block.h (flow_delete_block): Declare.
595
596 2000-04-26  David S. Miller  <davem@redhat.com>
597
598         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
599         taking a PATTERN of it.
600
601 2000-04-26  <NeilB@earthling.net>
602
603         * cpplex.c (spell_other, spell_char): Remove.
604         (SPELL_CHAR): New.
605         (token_spelling, trigraph_map): Use unsigned chars.
606         (_cpp_lex_line): Tidy up the switch statement.
607         * cpplib.h: Implement spell_char with spell_string.
608         (C): New.
609
610 2000-04-26  <RodneyBrown@pmsc.com>
611
612         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
613         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
614
615 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
616
617         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
618         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
619         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
620         dwarf2out_return_save, dwarf2out_return_reg,
621         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
622         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
623         gen_compile_unit_die, dwarf2out_init): Constify a char*.
624
625         * dwarf2out.h (dwarf2out_init): Likewise.
626
627         * dwarfout.c (filename_entry, primary_filename, last_filename,
628         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
629
630         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
631         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
632         dwarf2out_return_reg): Likewise.
633
634 2000-04-26  Andreas Jaeger  <aj@suse.de>
635
636         * extend.texi (Function Attributes): Fix description of pure
637         attribute.
638
639 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
640
641         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
642         before calling rest_of_compilation.
643
644 2000-04-26  Andreas Jaeger  <aj@suse.de>
645
646         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
647         last patch.
648
649 2000-04-25  Richard Henderson  <rth@cygnus.com>
650
651         * cse.c (cse_insn): Emit barrier after unconditional jump.
652
653         * calls.c (expand_call): Disable tail call generation once
654         rtx_equal_function_value_matters is false.
655
656         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
657         like EDGE_EH edges.
658
659 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
660
661         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
662
663         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
664
665         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
666         is the primary DIE for a member function.
667         (gen_decl_die): Call set_decl_origin_self here.
668         * dwarfout.c (output_decl): And here.
669         * integrate.c (output_inline_function): Not here.
670         Don't clear DECL_INLINE until after calling rest_of_compilation.
671         (set_decl_origin_self): No longer static.
672         * tree.h: Add prototype.
673         * toplev.c (note_deferral_of_defined_inline_function): Only write
674         out abstract instance for actual inlines.
675
676 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
677
678         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
679         EXTENDED_REGS only if TARGET_AM33.
680         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
681         SP_REGS to register allocation and reloading unless absolutely
682         necessary.
683         (movsi3): Remove special-case of adding non-constants to SP.
684
685 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
686
687         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
688         INCLUDES to search and does not provide any of its own.  Also it
689         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
690         parameters.  Also it does not call AC_DEFINE.
691         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
692         AC_DEFINE and provides for automatic entries for autoheader.
693         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
694
695         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
696         so we can pass -I flags and include gansidecl.h/system.h in this
697         test.
698
699         * acconfig.h: Delete all NEED_DECLARATION_* entries.
700
701 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
702
703         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
704         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
705         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
706
707         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
708         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
709         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
710         for these macros.  Clean up spacing and linewraps.
711
712 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
713
714         * calls.c (expand_call): Use get_callee_fndecl.
715
716         * print-tree.c (print_node): Print the chain of an _EXPR.
717
718 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
719                           Jim Wilson  <wilson@cygnus.com>
720                           Andrew Haley  <aph@cygnus.com>
721
722         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
723         and gp save/restore problems.
724         * config/ia64/crtend.asm: Add IA-64 unwind support.
725         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
726         in fr_pad_size calculation.
727         (save_restore_insns): Move PR save area.  Correct uses of
728         RTX_FRAME_RELATED_P.
729         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
730         (ia64_expand_epilogue): Add eh_epilogue support.
731         (ia64_function_prologue): Emit .prologue directive.
732         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
733         (ia64_override_options): Set init_machine_status and
734         mark_machine_status.
735         (rtx_needs_barrier): Handle bsp reads and writes.
736         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
737         New static variables.
738         (process_set, process_for_unwind_directive): New functions.
739         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
740         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
741         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
742         macros.
743         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
744         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
745         (struct machine_function): Define.
746         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
747
748 2000-04-25  Bruce Korb  <bkorb@gnu.org>
749
750         * fixinc/Makefile.in: make the removal of old programs more
751         robust
752         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
753         install-bin and install-sh
754
755 2000-04-25  Nick Clifton  <nickc@cygnus.com>
756
757         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
758         defined, define to return zero.
759         (function_cannot_inline_p): If a function has any target
760         specific attributes, then use the macro
761         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
762         whether it can be inlined.  If it cannot, issue a suitable
763         explanation.
764
765         * tm.texi: Add a new node 'Inlining' to document the new macro
766         FUNCTION_ATTRIBUTE_INLINABLE_P.
767
768 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
769
770         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
771         commentary.
772
773 2000-04-25  Neil Booth  <NeilB@earthling.net>
774
775         Restore previous patch, plus the following fixes:
776
777         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
778         flags, not CPP_OPEN_PAREN.
779         * cpplex.c (expand_token_space, init_token_list,
780         cpp_free_token_list): Put the dummy token at list->tokens[-1].
781         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
782
783 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
784
785         * config/i386/freebsd.h (INT_ASM_OP): Define.
786
787 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
788
789         * loop.c (strength_reduce): Fix typo in the last checkin.
790
791 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
792
793         * stor-layout.c (finalize_record_size): Simplify to use existing
794         functions.
795         (compute_record_mode): No longer static.
796         * tree.h (compute_record_mode): New declaration.
797
798 2000-04-25  Neil Booth  <NeilB@earthling.net>
799
800         * Revert my patch below until cause of build failures
801         determined.
802
803 2000-04-25  Richard Henderson  <rth@cygnus.com>
804
805         * combine.c (combine_instructions): Add missing argument
806         to try_combine.
807
808         * toplev.c (rest_of_compilation): Delay sibcall optimization
809         until after emit_eh_context.
810
811 2000-04-24  Nick Clifton  <nickc@redhat.com>
812
813         * combine.c (combine_instructions): Do not try to combine a
814         sequence of insns when the second insn has been replaced by a
815         note.
816
817 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
818
819         * gcc.c (load_specs): New static function.
820         (read_specs): Use it.
821
822         * gcc.c (lookup_compiler): Make multiple passes for case
823         insensitive filesystems.
824
825 2000-04-24  Neil Booth  <NeilB@earthling.net>
826
827         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
828         * cpphash.h (_cpp_check_directive): new.
829         * cpplex.c (handle_newline, cpp_free_token_list,
830         init_trigraph_map, trigraph_ok, trigraph_replace,
831         backslash_start, skip_block_comment, skip_line_comment,
832         skip_whitespace, parse_name, parse_number, parse_string,
833         copy_comment, _cpp_lex_line, spell_char, spell_string,
834         spell_comment, spell_name, spell_other, _cpp_lex_file,
835         _cpp_output_list): new.
836         (expand_name_space): take length argument.
837         (init_token_list): add comment list initialisation.
838         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
839         instead of HSPACE_BEFORE.
840
841         * cpplib.c (_cpp_check_directive): new
842         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
843         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
844         (HSPACE_BEFORE): delete.
845         (TTYPE_TABLE): rearrange.
846         (struct cpp_toklist): update.
847
848 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
849
850         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
851         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
852         argument form of AC_DEFINE.
853
854         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
855         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
856         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
857         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
858         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
859
860         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
861
862 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
863
864         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
865         deduced.h): Use -isystem, not -I, for including system headers.
866
867 2000-04-24  Nick Clifton  <nickc@cygnus.com>
868
869         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
870         the source register is the frame pointer or arg pointer.
871         (addsi3_small_int): Disallow if source register is the frame
872         pointer or arg pointer.
873
874 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
875
876         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
877         call to AC_MSG_RESULT.
878
879 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
880
881         * invoke.texi: Correct grammatical errors, document
882         -fno-gnu-keywords as identical to -fno-asm for C++.
883
884 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
885
886         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
887         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
888         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
889         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
890         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
891
892         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
893         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
894         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
895         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
896         new macros names.
897
898 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
899
900         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
901         (pop_alignment): Likewise.
902         (handle_pragma_token): Likewise.
903
904 2000-04-24  Robert Lipe <robertlipe@usa.net>
905
906         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
907
908 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
909
910         * combine.c (try_combine): Update reg_nonzero_bits of
911         newi2pat before newpat.
912
913 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
914
915         * loop.c (strength_reduce): Simplify test to INSN_P.
916         (record_giv): Attempt to simplify the add value, use CONSTANT_P
917         expressions instead of CONST_INT.
918         (express_from_1): Likewise.
919
920 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
921
922         * regs.h (reg_n_max): Don't declare.
923         * flow.c (reg_n_max): Don't define.
924         * regclass.c (renumber): Don't initialize to zero.
925         (regno_allocated): Likewise.
926         (reg_n_max): Define.
927         (allocate_reg_info): Don't initialize unnecessarily.
928
929 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
930
931         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
932         and blockage_p in the newly allocated attribute.
933
934 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
935
936         * config/mn10300/mn10300.md (addsi): `inc4' on address
937         registers does not modify cc, but `inc' on an extended
938         register does.
939
940 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
941
942         * reload.c (find_equiv_reg): Checks all valueno regs
943         as a reload_reg_p regs.
944
945 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
946
947         * cpphash.c (collect_objlike_expansion): Add sanity check.
948         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
949         the buffer is the empty string, return.  Mark __DATE__ and
950         __TIME__ as XCONST nodes, not MCONST.
951         (_cpp_macroexpand): Avoid pushing an empty buffer.
952         (funlike_macroexpand): Don't pop token_buffer here.
953
954 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
955
956         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
957         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
958         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
959         (REGNO_OK_FOR_BASE_P): Define in terms of them.
960         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
961         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
962         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
963
964 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
965
966         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
967         constant MULT givs.
968
969 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
970
971         * cpphash.h (struct definition): Move file, line, col members...
972         (struct hashnode): ... here.  Also add 'disabled' flag.
973         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
974         T_IDENTITY.  Remove T_DISABLED.
975         Update prototypes.
976
977         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
978         (collect_expansion): Split into collect_objlike_expansion and
979         collect_funlike_expansion.
980         (_cpp_macroexpand): Split out scan_arguments, stringify, and
981         funlike_macroexpand.
982         (_cpp_compare_defs): Rename compare_defs, make static.
983         (_cpp_make_hashnode): Initialize hp->disabled.
984         (macro_cleanup): Adjust for new token types.  Clear
985         m->disabled.
986         (_cpp_create_definition): Move code here to determine what
987         sort of macro it is, and code to check for redefinitions, from
988         do_define.  Implement a few simple cases without creating a
989         full DEFINITION.
990         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
991         Handle the simple cases.
992         (push_macro_expansion): Set buf->has_escapes and hp->disabled
993         here.
994
995         * cppinit.c (builtin_array): Change MCONST to XCONST
996         everywhere.
997         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
998         fix check for disabled and function-like macros.
999         * cpplib.c (do_define): Move most logic to
1000         _cpp_create_definition.
1001         (do_undef): Handle new special token types.
1002
1003 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1004
1005         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
1006         of CONSTANT_P for mult_val; always use validate_change to update insn.
1007
1008 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
1009
1010         * cpphash.c (trad_stringify, add_pat): New functions.
1011         (collect_expansion): Restore support for -traditional syntax.
1012         Use trad_stringify and add_pat.
1013         (_cpp_macroexpand): Restore support for -traditional semantics.
1014         * cpplex.c (_cpp_scan_line): Don't change space_before if we
1015         get a COMMENT token.
1016         (_cpp_lex_token): Provide COMMENT tokens to caller if
1017         traditional and parsing_define_directive.
1018         (skip_comment): Warn about // comments if -Wtraditional.
1019         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
1020         proper node type.
1021         (do_undef): Don't warn about undefining EMPTY nodes.
1022
1023 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1024
1025         * loop.c (strength_reduce): Fix biv removal code.
1026
1027 2000-04-22  Richard Henderson  <rth@cygnus.com>
1028
1029         * predict.c (estimate_probability): Examine both sides of
1030         a branch for no exits.  Use 90% not 50% for predict taken.
1031         Reorg for one copy of note generation code.
1032
1033 2000-04-22  Richard Henderson  <rth@cygnus.com>
1034
1035         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
1036
1037 2000-04-22  Richard Henderson  <rth@cygnus.com>
1038
1039         * diagnostic.c (init_output_buffer): Don't initialize format_args.
1040         (output_clear): Likewise.
1041         (output_printf): Use va_copy.
1042         (vline_wrapper_message_with_location): Likewise.
1043         (v_message_with_decl): Likewise.
1044         (line_wrapper_printf): VA_START infor buffer.format_args directly.
1045         * system.h (va_copy): Provide default implementation.
1046
1047 2000-04-22  Richard Henderson  <rth@cygnus.com>
1048
1049         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
1050         the collected condition is not a constant.
1051
1052 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
1053
1054         * diagnostic.h: New file.
1055
1056         * Makefile.in (diagnostic.o): Depends on diagnostic.h
1057
1058         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
1059         various function prototypes.
1060         (diagnostic.h): #include.
1061         (struct output_buffer): Move into diagnostic.h.
1062         (get_output_prefix): Rename to output_get_prefix.  Export.
1063         (init_output_buffer): Export. Break out.  Ajust intialization.
1064         (output_space_left, output_append): Export.
1065         (output_newline): Rename to output_add_newline.  Export.
1066         (output_clear): Nullify additional output_buffer fields.
1067         (output_puts): Rename to output_add_string.  Export.
1068         (dump_output): Rename to output_flush_on.  Export.
1069         (build_location_prefix): Constify return-type.
1070         (emit_output_prefix): Rename to output_emit_prefix. Export.
1071         (set_real_maximum_length): New function.
1072         (output_set_maximum_length): Ditto
1073         (output_clear): Ditto.
1074         (output_add_character): Ditto.
1075         (output_add_integer): Ditto.
1076         (output_add_space): Ditto.
1077         (output_format): Ditto.
1078         (output_printf): Adjust buffer initialization.
1079         (vline_wrapper_message_with_location): Ditto.
1080         (v_message_with_decl): Ditto.  Adjust call to output_puts
1081         and get_output_prefix.
1082         (default_print_error_function): Adjust buffer intialization.
1083
1084 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1085
1086         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
1087         of VOID_TYPE.
1088
1089 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
1090
1091         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
1092         of explicit 0.
1093
1094 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
1095
1096         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
1097         accurate data about SP moves.
1098
1099 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
1100
1101         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
1102         aliases to AM33 registers.
1103
1104 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
1105
1106         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
1107         to all EXTENDED bitmaps.
1108
1109 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
1110
1111         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
1112         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
1113         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
1114
1115 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
1116
1117         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
1118         the operand is not constant.
1119
1120 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
1121
1122         * reload.c (find_equiv_reg): Checks all valueno and regno regs
1123         as a call-clobbered regs.
1124
1125 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1126
1127         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
1128         * rtl.h: Likewise.
1129         * rtl.def: Update comment.
1130         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
1131         * integrate.c (expand_inline_function): Likewise.
1132         * profile.c (branch_prob): Likewise.
1133         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
1134         * print-rtl.c (print_rtx): Likewise.
1135         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
1136         (reemit_notes): Likewise; also use enum insn_note.
1137
1138         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
1139         (place_field): Properly compute know and actual alignment.
1140
1141         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
1142         in proper format.
1143
1144         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
1145         note for REG1.
1146
1147 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
1148
1149         * cpphash.c (struct arg, struct arglist): Const-ify strings.
1150         (warn_trad_stringify, duplicate_arg_p): New helper functions.
1151         (collect_expansion): Rewrite to scan over a token list.
1152         Remove -traditional support.
1153         (collect_formal_parameters): Rename to collect_params; rewrite
1154         to scan over a token list.
1155         (_cpp_create_definition): Adjust to scan a token list.
1156         (_cpp_macroexpand): Remove -traditional support.
1157         (_cpp_compare_defs): Whitespace is now canonicalized.
1158         (comp_def_part): Delete function.
1159
1160         * cpphash.h: Update prototypes.
1161         * cpplex.c (init_token_list): Don't set lineno if there is no
1162         buffer.
1163         (pedantic_whitespace): New function.
1164         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
1165         consume a newline.  Use pedantic_whitespace.
1166         (_cpp_lex_token): Remove support for -traditional macros.
1167         (_cpp_get_define_token): Delete.
1168         (_cpp_get_directive_token): Do the real work here.  Use
1169         pedantic_whitespace.
1170         (_cpp_init_input_buffer): Initialize pfile->directbuf.
1171
1172         * cpplib.c (get_macro_name): Delete.
1173         (do_define): Read the entire line into pfile->directbuf, then
1174         feed the token list to _cpp_create_definition.
1175         * cpplib.h (HSPACE_BEFORE): new define.
1176         (struct cpp_reader): Add a toklist member, "directbuf".
1177
1178         * predict.c (estimate_probability): New heuristic: if a jump
1179         branches around a block with no successors, predict it taken.
1180         Disentangle control flow.
1181
1182 2000-04-20  Richard Henderson  <rth@cygnus.com>
1183
1184         * loop.c (emit_iv_add_mult): Revert last change.
1185
1186 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
1187
1188         * cpplib.h (enum cpp_ttype): Add token types for all
1189         punctuators.  Distinguish pp-numbers from valid C numbers.
1190         Give some tokens better names.  Initialize from macro.
1191         (struct cpp_name, cpp_token, cpp_toklist): New data
1192         structures.
1193         Update prototypes.
1194         * cpplex.c (bump_column, expand_name_space,
1195         expand_token_space, init_token_list, cpp_output_list,
1196         _cpp_scan_line):  New functions.
1197         (output_line_command): Add third argument, new line number.
1198         * cpphash.h: Update prototypes.
1199         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
1200         token names.
1201
1202 2000-04-20  Richard Henderson  <rth@cygnus.com>
1203
1204         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
1205
1206 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
1207
1208         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
1209         object pointed to.
1210
1211 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1212
1213         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
1214         REG_EQUAL note explaining the calculated value.
1215
1216         * calls.c (expand_call): Avoid unnecesary precalculation
1217         and outgoing parameters space guarding for sibling calls.
1218         (store_one_arg): Likewise.
1219
1220 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1221
1222         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
1223         (rest_of_compilation): Write sibling dump file and account
1224         for time as jump time.
1225         * invoke.texi: Update documentation on dump flags.
1226
1227 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
1228
1229         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
1230
1231 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
1232
1233         * cpphash.c (special_symbol): Represent an empty macro with
1234         "\r \r " not just "\r ".
1235         (_cpp_macroexpand): Correct condition for the foo ( ) special
1236         case.
1237         (unsafe_chars): Handle EOF as second argument.
1238         (push_macro_expansion): Simplify test for removing escape at
1239         end.  Do not trim both escapes if there is no text in between.
1240
1241 2000-04-19  Jim Blandy  <jimb@redhat.com>
1242
1243         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
1244         of PTR_SIZE, when appropriate.
1245
1246 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
1247
1248         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
1249         (USE_ENUM_BITFIELDS): Fix typo.
1250
1251 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1252
1253         * stor-layout.c (place_field): Set rli->offset_align properly.
1254
1255 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1256
1257         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
1258         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
1259         PARM_BOUNDARY): Remove unnecessary casts.
1260
1261 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1262
1263         * calls.c (precompute_arguments): Remove must_preallocate and
1264         args_size calls.
1265         (expand_call): Update call of precompute_arguments.
1266
1267         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
1268         check_insn_for_givs): Break out from ...
1269         (strength_reduce) ... here; use for_every_insn_in_loop to call
1270         check_insn_for_givs.
1271         * loop.h (for_every_insn_in_loop): Declare.
1272         (loop_insn_callback): New type.
1273
1274 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
1275
1276         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
1277         not nul-terminated.
1278
1279 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
1280
1281         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
1282         flag_pic and RELOC.
1283
1284 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
1285
1286         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
1287
1288         * configure.in: Delete --disable-cpplib option and all
1289         references to cpp_main.
1290         * configure: Regenerate.
1291         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
1292         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
1293         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
1294         cpp$(exeext).  Add --no-headers to makeinfo command line when
1295         generating INSTALL.  Install and uninstall cpp.1 manpage, not
1296         cccp.1.
1297         * install.texi: Delete all references to cexp.y/cexp.c.
1298         Delete ancient instructions for compiling GCC on 3b1.
1299         * INSTALL: Regenerate.
1300
1301         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
1302         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
1303         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
1304         cexp.c/cexp.y.
1305         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
1306         which is no longer tested anywhere.
1307
1308         * cppinit.c (handle_option): Don't run error message through
1309         gettext twice.
1310
1311 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1312
1313         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
1314         * cpperror.c (hashtab.h): Now include.
1315         * cppexp.c (hashtab.h): Likewise.
1316         * cpplex.c (hashtab.h): Likewise.
1317         * cppfiles.c (hashtab.h): Likewise.
1318         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
1319         to htab_find_slot_with_hash.
1320         * cpphash.c (hashtab.h): Now include.
1321         (_cpp_lookup_slot): INSERT is now enum insert_option.
1322         * cpphash.h (_cpp_lookup_slot): Likewise.
1323         * cppinit.c (hashtab.h): Include earlier.
1324         (initialize_builtins): Pass enum to htab_find_slot.
1325         * cpplib.c (hashtab.h): Now include.
1326         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
1327         (do_pragma_poison, do_assert): Likewise.
1328         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
1329         htab_find_slot_with_hash.
1330         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
1331         * tree.c (type_hash_add): Likewise.
1332         (build1): Minor cleanup.
1333
1334         * ggc-common.c: Add missing blanks.
1335         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
1336         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
1337
1338         * stmt.c (mark_case_node): New function.
1339         (mark_case_nesting): Call it.
1340
1341         * expmed.c (emit_store_flag): If comparing two-word integer
1342         with zero, can optimize NE, EQ, GE, and LT.
1343
1344         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
1345         * conflict.c: Minor cleanups.
1346         * optabs.c: Add blank line
1347         * simplify-rtx.c: Minor cleanups.
1348
1349 2000-04-18  Stan Cox  <scox@cygnus.com>
1350
1351         * gengenrtl.c (genlegend): Fix misspelling.
1352
1353 2000-04-18  Robert Lipe  <robertlipe@usa.net>
1354
1355         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
1356         bitfields of the host compiler are not signed quantities.
1357         * config.in: Regenerate.
1358         * configure: Regenerate.
1359         * system.h (USE_ENUM_BITFIELDS): Added.
1360         (ENUM_BITFIELDS): Added.
1361         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
1362         (SHORT_ENUM_BUG): Deleted.
1363         * tree.h (tree_common): Members `code', `mode', `built_in_class',
1364         now ENUM_BITFIELD.
1365         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
1366         (CODE_FIELD_BUG): Likewise.
1367         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
1368         (OLD_CC): Likewise.
1369         * config/m68k/x-ccur (X_CFLAGS): Likewise.
1370
1371 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
1372
1373         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
1374         mark is active.
1375
1376 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
1377
1378         * cppexp.c (lex): Don't assume tokens are NUL terminated.
1379         * cpplib.c (do_include, do_import, do_include_next,
1380         read_line_number, detect_if_not_defined): Likewise.
1381         * cpphash.c (collect_expansion): Likewise.
1382         (special_symbol, _cpp_macroexpand): Check return from
1383         cpp_file_buffer.
1384         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
1385         macros.  Delete all uses.
1386
1387         * gcc.dg/cpp-mi.c: Add two more test cases.
1388         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
1389
1390 2000-04-17  Richard Henderson  <rth@cygnus.com>
1391
1392         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
1393         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
1394
1395 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
1396
1397         * function.c (expand_function_start): Use hard_function_value to
1398         compute the RTL to use for DECL_RESULT.
1399
1400 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1401
1402         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
1403         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
1404          x86_memory_mismatch_stall): New global variables.
1405         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
1406         alloved; fix load penalties for Athlon.
1407         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
1408         x86_memory_mismatch_stall): Declare.
1409         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
1410          TARGET_MEMORY_MISMATCH_STALL): New.
1411         * i386.md (athlon scheduling parameters): Fix latencies according to
1412         Athlon Optimization Manual.
1413         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
1414         vector.
1415         (fsqrt instruction patterns): Set athlon_decode to direct.
1416         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
1417         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
1418         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
1419         and TARGET_PARTIAL_REGISTER_STALL machines.
1420         (pushdf_nointeger): New pattern.
1421         (pushdf_integer): Rename from pushdf.
1422         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
1423         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
1424
1425 2000-04-17  Richard Henderson  <rth@cygnus.com>
1426
1427         * loop.c (canonicalize_condition): Add WANT_REG argument.
1428         Stop the search if we match it.
1429         * expr.h (canonicalize_condition): Update decl.
1430         * predict.c (expected_value_to_br_prob): Use it.  Track last
1431         expected value note.
1432         (find_expected_value): Remove.
1433
1434         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
1435
1436 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
1437
1438         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
1439         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
1440         a plain file.
1441         * configure.in: Call AC_FUNC_MMAP_FILE.
1442         * configure: Regenerate.
1443         * config.in: Regenerate.
1444
1445         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
1446         * fixinc/fixincl.c: Likewise.
1447
1448 2000-04-17  Richard Henderson  <rth@cygnus.com>
1449
1450         * builtins.c (expand_builtin_expect): New.
1451         (expand_builtin): Call it.
1452         * builtins.def (BUILT_IN_EXPECT): New.
1453         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
1454         * extend.texi: Document it.
1455
1456         * predict.c (expected_value_to_br_prob): New.
1457         (find_expected_value): New.
1458         * basic-block.h (expected_value_to_br_prob): Declare.
1459         * toplev.c (rest_of_compilation): Invoke it.
1460
1461         * rtl.h (NOTE_EXPECTED_VALUE): New.
1462         (NOTE_INSN_EXPECTED_VALUE): New.
1463         * rtl.c (note_insn_name): Update.
1464         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
1465         cases; handle NOTE_INSN_EXPECTED_VALUE.
1466
1467 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
1468
1469         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
1470         leaf sibcall delay slot if flag_pic.
1471         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
1472
1473 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1474
1475         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
1476
1477         * fixproto: If fix-header fails, exit with an error.
1478
1479 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1480
1481         * cse.c (struct check_depdendence_data): New.
1482         (check_dependence): New function.
1483         (invalidate): Use check_depdenence.
1484
1485 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
1486
1487         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
1488         UNITS_PER_WORD is unsigned.
1489
1490         * tree.h (struct tree_common): Remove misleading comment.
1491
1492 2000-04-16  Dave Pitts  <dpitts@cozx.com>
1493
1494         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
1495         message in quotes. Otherwise, IBM's make program treats the '#' as the
1496         start of a comment and ignores the remainder of the line.
1497
1498         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
1499         upper case.
1500         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
1501         * cexp.y (initialize_random_junk): Likewise.
1502         * cppfiles.c (find_include_file): Cast alloca return value.
1503         * cppinit.c (initialize_standard_includes): Likewise.
1504         * cpplib.c (cpp_define, cpp_undef): Likewise.
1505         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
1506         * final.c (output_asm_insn): Allow for holes in EBCDIC.
1507         * fold-const.c (CHARMASK): New.
1508         (real_hex_to_f): Use it.
1509         * real.c (CHARMASK): New.
1510         (etoasc, asctoeg): Use it.
1511         (asctoeg): EBCDIC lower case characters preceed upper case.
1512
1513         * i370.c (mvs_add_label): Change spacing for coding conventions.
1514         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
1515         outputing case vectors.
1516         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
1517         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
1518         since vector in in the data CSECT.
1519         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
1520         * i370.md (Many patterns): Put the length in the XL directives.
1521         (movdi): Put back STM and MVC in definition.
1522         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
1523         pattern using the TCA.
1524         * oe.h (CPP_SPEC): Added to allow trigraphs.
1525         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
1526         not support the "long long" type.
1527
1528 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
1529
1530         * config/mips/mips-protos.h (mips_legitimate_address_p): New
1531         function.
1532         (mips_reg_mode_ok_for_base_p): Likewise.
1533         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
1534         (REG_OK_FOR_INDEX_P): Define unconditionally.
1535         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
1536         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
1537         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
1538         that GET_MODE_SIZE is unsigned.
1539         (mips_reg_mode_ok_for_base_p): Define.
1540         (mips_legitimate_address_p): Likewise.  Adjust now
1541         that GET_MODE_SIZE is unsigned.
1542         (block_move_loop): Make the number of bytes unsigned.
1543         (expand_block_move): Likewise.
1544         (function_arg): Make the loop counter unsigned to match the
1545         boundary condition.
1546
1547 2000-04-16  Richard Henderson  <rth@cygnus.com>
1548
1549         * rtl.h (enum insn_note): New enumeration.  Subsume
1550         NOTE_INSN_DELETED and friends.
1551         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
1552         * rtl.c (note_insn_name): Tweak string order.
1553
1554 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
1555
1556         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
1557         to offset * 2.
1558
1559         * cpplex.c (output_line_command): Remove debugging prints.
1560         (cpp_output_tokens): Don't write out a zero-length buffer or
1561         try to see if it has a newline in it.
1562         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
1563         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
1564         the end of the loop.  Use memmove.  Don't read past the end of
1565         the buffer.  Remove trailing newlines from error messages.
1566
1567 2004-04-16  Neil Booth  <NeilB@earthling.net>
1568
1569         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
1570         * cpplib.c: Add new syntax flags to directive table, and
1571         supporting macros.
1572
1573 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
1574
1575         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
1576         using ret $N.
1577
1578 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
1579
1580         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
1581         * haifa-sched.c: Update -fsched-verbose comments to use "=".
1582
1583 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1584
1585         * Makefile.in (ggc-page.o): Now includes toplev.h.
1586         * ggc-page.c (toplev.h): Now included.
1587         (gc_time): Remove declaration.
1588         (ggc_collect): TIME now long.
1589         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
1590         others static.
1591         * toplev.h (gc_time, parse_time, gc_time): New declarations.
1592
1593         * toplev.c: Make *_time variable long to reduce chance of overflow.
1594         (TIMEVAR): Likewise for `otime'.
1595         (print_time): Arg is now long; compute percentage in FP and round.
1596         * toplev.h (print_time): Arg is long.
1597
1598         * tree.c: Minor whitespace changes.
1599
1600         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
1601         * configure: Rebuilt.
1602         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
1603         (__fixunsxfDI): Renamed from __fixunsxfdi.
1604         (__fixunsdfDI): Renamed from __fixunsdfdi.
1605         (__fixunssfDI): Renamed from __fixunssfdi.
1606         (__floatdisf): Use proper type in REP_BIT macro.
1607         (__fixunsxfSI): Renamed from __fixunsxfsi.
1608         (__fixunsdfSI): Renamed from __fixunsdfsi.
1609         (__fixunssfSI): Renamed from __fixunssfsi.
1610         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
1611         Change location of macros and upper-case some names as above.
1612         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
1613         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
1614
1615         * varasm.c (assemble_variable): Add cast to remove warning.
1616         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
1617
1618         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
1619         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
1620         region number to -1.
1621
1622 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
1623
1624         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
1625         call unshare_all_rtl.
1626
1627         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
1628
1629 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
1630
1631         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
1632         Use .s1 not .s0 for all FP instructions.
1633
1634 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
1635
1636         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
1637         interfaces.
1638         (safe_fwrite, output_line_command): New static functions.
1639         (cpp_expand_to_buffer): Now private to cpplib.
1640         (cpp_scan_buffer): Take a printer.
1641
1642         * cpphash.h: Update prototypes.
1643         * cpplib.h: Update prototypes.
1644         (cpp_printer): New.
1645         (cpp_buffer): Remove last_nominal_fname.
1646         (cpp_reader): Remove lineno.
1647
1648         * cppmain.c: Use a cpp_printer.
1649         * fix-header.c: No need to inhibit line commands.  Call
1650         cpp_start_read with no printer.
1651
1652         * cpperror.c (cpp_notice_from_errno): Provide default name.
1653         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
1654         (find_include_file, cpp_read_file): Use make_IHASH.
1655         (file_cleanup): Set control_macro and clear
1656         input_stack_listing_current here.
1657         (_cpp_execute_include): Don't output entering-file marker.
1658         * cpphash.c (special_symbol): Look for the line number in the
1659         buffer, not the reader.
1660         (_cpp_macroexpand): No need to disable line commands.
1661         (_cpp_dump_definition): No need to generate line commands.
1662         (dump_hash_helper): Remove excess newline from output.
1663         * cppinit.c (dump_special_to_buffer): No need to generate line
1664         commands.
1665         (cpp_printer_init): New.
1666         (cpp_start_read): Take a printer, and start it up if it's not
1667         NULL.  No need to generate line commands.
1668         (cpp_finish): Expect no buffers stacked at all.  Take a
1669         printer argument, and flush the output buffer if it's not
1670         NULL.
1671         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
1672         Don't put two hashes at the beginning of an assertion.
1673         (cpp_get_token): Don't increment pfile->lineno or emit line
1674         commands here.  Return EOF if there's no buffer when we get
1675         EOF.
1676         * cpplib.c (do_define, skip_if_group):
1677         No need to disable line commands.
1678         (_cpp_output_line_command): Delete function.
1679         (do_line): Don't emit line commands here, but set things up so
1680         they will be emitted if necessary.  Use _cpp_fake_ihash to
1681         make unique nominal_fnames if necessary.
1682         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
1683         with 0 for column, not -1.
1684         (_cpp_handle_eof): Don't set the control macro here.  Don't
1685         clear input_stack_listing_current here.  Don't emit line
1686         commands.
1687
1688 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
1689
1690         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
1691         always, use the default SVR4 start address.
1692
1693         * config/rs6000/linux.h (LINK_SPEC): Don't define.
1694         (LINK_SHLIB_SPEC): Define.
1695         (LINK_START_DEFAULT_SPEC): Define.
1696         (LINK_OS_DEFAULT_SPEC): Define.
1697
1698         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
1699
1700         * config/rs6000/eabi.asm (__eabi): Call __init rather than
1701         __do_global_ctors to handle constructors.
1702         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
1703         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
1704         (STARTFILE_MVME_SPEC): Likewise.
1705         (STARTFILE_SIM_SPEC): Likewise.
1706         (ENDFILE_ADS_SPEC): Use crtend.
1707         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
1708         (ENDFILE_MVME_SPEC): Likewise.
1709         (ENDFILE_SIM_SPEC): Likewise.
1710         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
1711         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
1712         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
1713         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
1714         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
1715         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
1716         (CRTSTUFF_T_CFLAGS_S): Define.
1717         * config/rs6000/eabi-ctors.c: Delete.
1718
1719         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
1720         boundary.
1721         (__fini): Likewise.
1722         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
1723         boundary.
1724         (__fini): Likewise.
1725
1726 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
1727
1728         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
1729         plus mask size is smaller or equal to the mode size.
1730
1731 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1732
1733         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
1734         not yet set.
1735
1736         * expr.c (reload.h): Now included.
1737         (emit_block_move): Set volatile_ok when checking for movstr.
1738         (emit_move_1): Check for replacements in addresses in multi-word case.
1739         * Makefile.in (expr.o): Now includes reload.h.
1740
1741         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
1742         Never have a LIBCALL end a basic block.
1743         (find_basic_blocks_1): Likewise.
1744         Reorganize CALL_INSN cases.
1745
1746         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
1747
1748 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
1749
1750         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
1751         completers from mov.ret instruction.
1752
1753 2000-04-14  Richard Henderson  <rth@cygnus.com>
1754
1755         * fold-const.c (extract_muldiv): Don't distribute and widen
1756         multiply across plus for non-sizetype unsigned types.
1757
1758 2000-04-14  Richard Henderson  <rth@cygnus.com>
1759
1760         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
1761         If the original source is dead in the incr insn, it's dead now.
1762
1763 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1764
1765         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
1766         see if DECL_BIT_FIELD needs to still be set.
1767
1768         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
1769
1770         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
1771         print_int_cst_octal with something that's not an INTEGER_CST.
1772
1773         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
1774         and not a SUBREG to a FLOAT rtl.
1775
1776 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
1777
1778         * emit-rtl.c (try_split): Avoid infinite loop if the split
1779         results in a sequence that contains the original insn.
1780
1781 2000-04-13  Andreas Jaeger  <aj@suse.de>
1782
1783         * config/mips/mips.c (expand_block_move): Pass alignment
1784         argument to move_by_pieces in bits, not bytes.
1785
1786         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
1787         __pic__ for little endian.
1788
1789 2000-04-13  Andreas Jaeger  <aj@suse.de>
1790
1791         * config/i386/i386-protos.h: Add prototype for
1792         uno_comparison_operator.
1793
1794 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1795
1796         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
1797         * calls.c (ECF_PURE): New flag.
1798         (emit_call_1): Handle ECF_PURE calls.
1799         (initialize_argument_information): Unset ECF_PURE flag too.
1800         (precompute_arguments): Precompute for ECF_PURE too.
1801         (expand_call): Handle ECF_PURE calls too.
1802         (emit_library_call_value_1): Rename no_queue argument to fn_type,
1803         accept value of 2 as pure function.
1804         (emit_library_call_value, emit_library_call): Rename no_queue argument
1805         to fn_type.
1806         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
1807
1808         * tree.h (DECL_IS_PURE): New macro.
1809         (struct tree_decl): Add pure_flag.
1810         * c-common.c (enum attrs): Add attribute "pure".
1811         (init_attributes): Initialize attribute "pure"
1812         (decl_attributes): Handle attribute "pure".
1813         * extend.texi (Attribute "pure"): Document.
1814         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
1815         in pure function.
1816         (flags_from_decl_or_type): Support attribute "pure".
1817
1818 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
1819
1820         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
1821         the token except for numbers and identifiers.
1822
1823 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
1824
1825         * i386.c (ix86_expand_binary_operator,
1826         ix86_expand_unary_operator): Check no_new_pseudos
1827         instead of reload_in_progress and reload_completed.
1828         (ix86_split_ashldi, ix86_split_ashrdi,
1829         ix86_split_lshrdi): Check no_new_pseudos instead
1830         of reload_completed.
1831
1832 2000-04-12  Jeffrey A Law  (law@cygnus.com)
1833
1834         * function.c (purge_addressof): Unshare any shared rtl created by
1835         purge_addressof and its children.
1836
1837 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
1838
1839         * function.c (aggregate_value_p): VOID_TYPE nodes are never
1840         aggregates.
1841
1842 2000-04-05  Andreas Jaeger  <aj@suse.de>
1843
1844         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
1845         not compiling PIC code, add flags for mabi=64.
1846         (SUBTARGET_CPP_SIZE_SPEC): New.
1847         (SUBTARGET_CPP_SPEC): New.
1848         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
1849         for MIPS/Linux and lots of code needs these defines.
1850
1851 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
1852
1853         * reorg.c (fill_slots_from_thread): Check side_effects_p when
1854         trying the "opposite arithmetic" approach.
1855
1856 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1857
1858         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
1859         (struct sh_args): Add new field force_mem.
1860         (INIT_CUMULATIVE_ARGS): Initialize it.
1861         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
1862
1863 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1864
1865         * calls.c (expand_call): Do not reverse args in "equal from" field.
1866         (emit_library_call_value_1): Emit_libcall_block for const and pure
1867         function.
1868
1869 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1870
1871         * reload1.c (reload_combine): Don't enable optimization for fixed
1872         registers when encountering a BARRIER.
1873
1874 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1875
1876         * builtins.c (expand_builtin_memcmp): Do expansion even with
1877         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
1878
1879         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
1880         stack is propertly aligned; add sanity checking for aligned
1881         stack pointer.
1882         (expand_library_call_value_1): Add sanity checking for aligned
1883         stack pointer.
1884
1885 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
1886
1887         * calls.c (emit_library_call_value_1): Change 3rd arg to
1888         locate_and_pad_parm to disregard the setting of partial.
1889
1890 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1891
1892         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
1893
1894         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
1895         CALL_INSN from the normal case.
1896
1897 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1898
1899         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
1900         New global variables.
1901         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
1902         adjustment.
1903         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
1904         Declare,
1905         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
1906          TARGET_ADD_ESP_8): New macros.
1907         * i386.md: Add peep2s to convert esp adjustments to push and pop
1908         instructions.
1909         (pushsi_prologue, popsi_epilogue): New patterns.
1910
1911 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
1912
1913         * real.c (toe64): Remove stale #endif from the last change.
1914
1915 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
1916
1917         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
1918         * real.c (toe64): Revert previous change.
1919
1920 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
1921
1922         * objc/objc-act.c: Include ggc.h.
1923         (objc_tree_index, objc_global_trees): Convert most of the
1924         static tree variables into a static array with previous names
1925         as defines.
1926         (objc_ellipsis_node): New variable.
1927         (lang_init): Call objc_act_parse_init and c_parse_init.
1928         Create objc_ellipsis_node.
1929         (build_selector_translation_table): Use objc_ellipsis_node instead
1930         of (tree)1.
1931         (hack_method_prototype): Likewise.
1932         (get_arg_type_list): Likewise.
1933         (start_method_def): Likewise.
1934         (continue_method_def): Likewise.
1935         (gen_method_decl): Likewise.
1936         (ggc_mark_imp_list): New function.
1937         (ggc_mark_hash_table): New function.
1938         (objc_act_parse_init): New function.
1939         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
1940         * c-parse.in (c_parse_init): For objc add roots of objc specific
1941         local tree variables.
1942         * objc/objc-parse.y: Rebuilt.
1943         * objc/objc-parse.c: Rebuilt.
1944         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
1945
1946 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
1947
1948         * cse.c (delete_trivially_dead_insns): Also delete insns
1949         that copy a register to itself where the destination is
1950         a strict_low_part.
1951
1952 2000-04-11  Richard Henderson  <rth@cygnus.com>
1953
1954         * flow.c (struct propagate_block_info): Add new_dead, new_live.
1955         (propagate_block): Initialize them.  Use them in parallel instead
1956         of one tmp variable, ie revert much of the 0408 and 0407 functional
1957         changes, but keep the structural changes.
1958         (mark_set_regs): Take new_dead from propagate_block_info instead.
1959         (mark_set_1, mark_set_reg): Likewise.
1960         (mark_used_regs): Likewise with new_live.
1961         (mark_used_reg): Likewise.  Revert 0408 change.
1962
1963 2000-04-11  Nick Clifton  <nickc@cygnus.com>
1964
1965         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
1966         restriction.
1967         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
1968
1969 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1970
1971         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
1972         const section to output a CONSTRUCTOR based on the same conditions
1973         used for VAR_DECLs.
1974
1975 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
1976
1977         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
1978         * pa/pa-protos.h (output_call): Add additional argument indicating
1979         if the call is a sibling/tail call.
1980         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
1981         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
1982         (function_arg, function_arg_partial_nregs): Likewise
1983         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
1984         (emit_move_sequence): Zero extend certain constants as needed
1985         for TARGET_64BIT.
1986         (compute_zdepdi_operands, output_64bit_and): New functions.
1987         (output_64bit_ior, function_arg): Likewise.
1988         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
1989         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
1990         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
1991         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
1992         (output_bvb): Likewise.
1993         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
1994         (output_call): New argument 'sibcall'.  Generate sibcall sequences
1995         as needed.
1996         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
1997         (ouput_arg_descriptor): Do not emit argument descriptors for
1998         TARGET_64BIT.
1999         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
2000         defined.
2001         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
2002         (FUNCTION_OK_FOR_SIBALL): Define.
2003         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
2004         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
2005         (CPP_SPEC): Use new spec infrastructure.
2006         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
2007         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
2008         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
2009         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
2010         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
2011         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
2012         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
2013         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
2014         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
2015         (FUNCTION_ARG); Call out to C code.
2016         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
2017         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
2018         (MIN_UNITS_PER_WORD): Likewise.
2019         * pa/pa.md (cmpdi): New expander.
2020         (scc patterns, movstrsi): Not available for TARGET_64BIT.
2021         (64bit conditional arithmetic): New patterns.
2022         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
2023         (movsicc): Not available if modes on all the operands to not match.
2024         (movdicc): New expander and associated patterns.
2025         (64bit branches): New patterns.
2026         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
2027         (pre_ldd, post_std): New patterns.
2028         (64bit addil, load low part): New patterns.
2029         (special movsf constant): Not available for TARGET_64BIT.
2030         (movsf, movdf expanders): Force constants into memory.
2031         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
2032         (64bit movdf/movdi patterns): New patterns.
2033         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
2034         for TARGET_64BIT.
2035         (extendqidi2, extendhidi2, extendsidi2): Similarly.
2036         (adddi3 expander): Allow "arith_operand" for second input.
2037         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
2038         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
2039         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
2040         (muldi3): New expander for TARGET_64BIT.
2041         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
2042         for TARGET_64BIT.
2043         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
2044         patterns for TARGET_64BIT.
2045         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
2046         patterns for TARGET_64BIT.
2047         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
2048         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
2049         (sibcall_epilogue): New expander.
2050         (casesi): Tweak for TARGET_64BIT.
2051         (call expanders): Set & use the outgoing argument pointer.  Use the
2052         64bit call patterns as needed. Add additional arg to output_call.
2053         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
2054         (sibcall, sibcall_internal_symref): New expanders.
2055         (sibcall_value, sibcall_value_internal_symref
2056         (interspace_jump): Turn into an expander + matching patterns.
2057         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
2058         * pa/pa64-regs.h: Eliminate trigraph sequences.
2059         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
2060
2061 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
2062
2063         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
2064         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
2065         cpp_token with cpp_ttype everywhere.
2066         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
2067         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
2068         CPP_BUF_COL.  Line and column numbers are unsigned int, not
2069         long.
2070         * cpplex.c (cpp_buf_line_and_col): Delete.
2071         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
2072         'long lineno' to 'unsigned int lineno'.
2073         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
2074
2075 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2076
2077         * extend.texi: ISO C99 is not a draft anymore.
2078         * invoke.texi: ISO C++ is not a draft anymore.
2079         * cpp.texi: __cplusplus is required by the ISO standard.
2080
2081         * extend.texi (-fthis-is-variable): Undocument.
2082         * flags.h (warn_template_debugging): Remove declaration.
2083         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
2084         -Wenum-clash, -Wtemplate-debugging): Undocument.
2085
2086 2000-04-10  Nick Clifton  <nickc@cygnus.com>
2087
2088         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
2089         integer.
2090         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
2091         integer.
2092         (ARM_SIGN_EXTEND): Use HOST_UINT.
2093         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
2094         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
2095         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
2096         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
2097
2098         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
2099         (arm_gen_constant): Use HOST_UINT.
2100         (arm_canonicalize_constant): Use HOST_UINT.
2101         (arm_reload_in_hi): Use HOST_UINT.
2102         (arm_reload_out_hi): Use HOST_UINT.
2103         (output_multi_immediate): Use HOST_UINT.
2104         (int_log2): Use HOST_UINT.
2105         (arm_poke_function_name): Use HOST_UINT.
2106         (arm_output_epilogue): Use arm_volatile_func().
2107         (output_thumb_prologue): Use arm_strip_name_encoding().
2108
2109 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2110
2111         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
2112         of sequence point problems.
2113
2114 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
2115
2116         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
2117         Recomment.
2118         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
2119
2120 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2121
2122         * sbitmap.h: Whitespace changes and use upper-case macro args.
2123         (struct simple_bitmap_def): All sizes now unsigned.
2124         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
2125         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
2126         (sbitmap_vector_alloc): Parms and local vars now unsigned.
2127         (sbitmap_zero): Cast bzero arg to PTR.
2128         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
2129         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
2130         loop to make structure clearer.
2131         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
2132         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
2133         (sbitmap_a_and_b_or_c): Likewise.
2134         (sbitmap_intersection_of_succs): Minor cleanups.
2135         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
2136         (sbitmap_union_of_preds): Likewise.
2137         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
2138         (debug_sbitmap): New function.
2139
2140         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
2141         * c-typeck.c (convert_for_assignment): Likewise.
2142
2143         * expmed.c (init_expmed): Don't free objects we make.
2144         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
2145
2146         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
2147         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
2148
2149         * gcse.c (expr_hash_table_size): Now unsigned.
2150         (compute_ae_gen): Local variable `i' now unsigned.
2151         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
2152         (compute_transout, hoist_code): Likewise.
2153         (compute_local_properties): Likewise, also hash_table_size.
2154         (alloc_expr_hash_table): N_INSNS now unsigned.
2155         (delete_null_pointer_checks): Mark arg F as unused.
2156
2157         * regrename.c: Minor cleanups, including chang some variables
2158         to unsigned int.
2159
2160 2000-04-10  Neil Booth  <NeilB@earthling.net>
2161
2162         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
2163         than GETC ().
2164         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
2165
2166 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2167
2168         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
2169         __classof__, and __headof__ from the list of gnu keywords.
2170         (-ansi): Remove -foperator-names from list of implied options.
2171         Do not call it ANSI C++.
2172         (-foperator-names): Document as -fno-operator-names.
2173
2174 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
2175
2176         * cpphash.c (timestamp): Delete.
2177         (del_HASHNODE): If type is T_MCONST, free value.cpval.
2178         (special_symbol): Remove unnecessary braces.  Remove
2179         T_VERSION.  Treat T_STDC like T_CONST unless
2180         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
2181         when one is encountered, then convert them into T_MCONST
2182         nodes.
2183         * cppinit.c (builtin_array): version_string is T_MCONST.
2184         __STDC__ has a "1" in its cpval.  Don't have a terminator
2185         entry.  Clean up which entries are dumped.
2186         (initialize_builtins): Only __STDC__ gets the special
2187         -traditional treatment.  Count the length of builtin_array.
2188         Render version_string here.
2189         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
2190         * cpplib.h (struct cpp_reader): Remove timebuf.
2191
2192 2000-04-09  Richard Henderson  <rth@cygnus.com>
2193
2194         * genrecog.c (pred): Update comparison_operator for the unordered
2195         operators.
2196
2197         * config/i386/i386.c (no_comparison_operator): Disallow unordered
2198         operators.
2199         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
2200         (uno_comparison_operator): New.
2201         (put_condition_code): Handle UNORDERED/ORDERED.
2202         (unsigned_comparison): Likewise.
2203         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
2204         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
2205         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
2206         update all callers.  Handle all 8 unordered operators.
2207         (ix86_expand_setcc): Lose the unordered argument, update all callers.
2208         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
2209         * config/i386/i386.h (PREDICATE_CODES): Update.
2210         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
2211         (ix86_expand_branch, ix86_expand_setcc): Update.
2212         * config/i386/i386.md (sunordered, sordered): New.
2213         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
2214         (bunordered, bordered): New.
2215         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
2216         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
2217         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
2218
2219 2000-04-09  Philip Blundell  <philb@gnu.org>
2220
2221         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
2222
2223 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
2224
2225         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
2226         fix_truncxfhi2): New patterns.
2227         * i386.c (output_fix_trunc): Handle converting to HImode.
2228
2229 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
2230
2231         * ssa.c (convert_to_ssa): Eliminate dead code when calling
2232         life_analysis.
2233         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
2234         (for_each_successor_phi): Change parameter to basic_block.
2235         (coalesce_regs_in_successor_phi_nodes): Likewise.
2236         (coalesce_regs_in_copies): Likewise.
2237         (compute_coalesced_reg_partition): Use basic_block instead of index.
2238         * rtl.h (convert_to_ssa): Delete.
2239         (convert_from_ssa): Likewise.
2240         (successor_phi_fn): Likewise.
2241         (for_each_successor_phi): Likewise.
2242         (in_ssa_form): Likewise.
2243         * basic-block.h (convert_to_ssa): Moved from rtl.h.
2244         (convert_from_ssa): Likewise.
2245         (successor_phi_fn): Likewise.
2246         (in_ssa_form): Likewise.
2247         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
2248         * flow.c (calculate_global_regs_live): Pass a basic_block to
2249         for_each_successor_phi.
2250
2251 2000-04-08  Richard Henderson  <rth@cygnus.com>
2252
2253         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
2254         was modified in the current insn.
2255
2256 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
2257
2258         * arm/thumb.md: Delete.
2259         * arm/thumb-protos.h: Delete.
2260
2261 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
2262
2263         Merge changes from merged-arm-thumb-backend-branch onto trunk.
2264
2265         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
2266
2267         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
2268         into branch.
2269
2270         * arm.md (nop): Use the standard RTL expression.  Don't code as a
2271         define_expand.
2272         (*arm_nop, *thumb_nop): Delete.
2273
2274         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
2275         constants.  Use casts instead.
2276         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
2277         output_multi_immediate, arm_poke_function_name): Likewise.
2278         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
2279         MASK_RETURN_ADDDR): Likewise.
2280
2281         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
2282
2283         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
2284         into branch.
2285
2286         * arm.md (eh_epilogue): New function.
2287         * arm.h (struct machine_function): Move to here ...
2288         * arm.c: ... from here.
2289         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
2290         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
2291         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
2292
2293         2000-03-30  Nick Clifton  <nickc@cygnus.com>
2294
2295         * config/arm/semi.h (ASM_SPEC): Restore definition.
2296         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
2297
2298         * config/arm/elf.h (ASM_SPEC): Restore definition.
2299         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
2300
2301         * config/arm/arm.h (ASM_SPEC): Remove definition.
2302         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
2303
2304         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
2305
2306         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
2307
2308         2000-03-24  Nick Clifton  <nickc@cygnus.com>
2309
2310         Various formating tidyups, elimination of compile time
2311         warnings and synchronisation with internal sources:
2312
2313         * config/arm/arm-protos.h (assemble_align): Add prototype.
2314         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
2315         (gen_comapre_reg): Rename to arm_gen_compare_reg.
2316         (arm_return_addr_rtx): Rename to arm_return_addr.
2317
2318         * config/arm/arm.c: Include except.h.
2319         Define shorter typenames for strict minipool_node and struct
2320         minipool_fix.
2321         (arm_return_in_memory): For WinCE return all structures <= 32 bits
2322         in memory.
2323         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
2324         (gen_comapre_reg): Rename to arm_gen_compare_reg.
2325
2326         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
2327         already defined.
2328         (ASM_SPEC): Define if not already defined.
2329         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2330
2331         * config/arm/arm.md: Rename references to gen_rotated_half_load to
2332         arm_gen_rotated_half_load, and references to gen_comapre_reg to
2333         arm_gen_compare_reg.
2334         (indirect_jump):  Only accept register operands.
2335         (load_indirect_jump): Keep this pattern since combine can generate
2336         it.
2337
2338         * config/arm/coff.h: Include aout.h.
2339         (MULTILIB_DEFAULTS): Only define if not already defined.
2340
2341         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
2342         into arm.h (so that COFF ports can support thumb based aliases).
2343         (ASM_SPEC): Move definition into arm.h
2344
2345         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
2346         redundant apcs spec.
2347         (ASM_SPEC): Move definition to arm.h
2348
2349         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
2350
2351         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
2352         for entries in the .bss section
2353
2354         2000-03-23  Nick Clifton  <nickc@cygnus.com>
2355
2356         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
2357         to thumb_far_jump_used_p.
2358
2359         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
2360         single integer parameter.
2361
2362         * config/arm/arm.c (struct machine_function): Add two new
2363         fields, 'far_jump_used' and 'arg_pointer_live'.
2364         (thumb_far_jump_used_p): Once the decision has been made that
2365         far jumps might be used, always return true.
2366         If being called from the initial elimination offset macro then
2367         do not bother to perform the test if the arg pointer is not
2368         being used.
2369         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
2370         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
2371
2372         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
2373
2374         * arm.c (output_return_instruction): Handle more cases where we can
2375         return from a function with an ldr instruction.
2376         (arm_output_epilogue): Likewise.
2377
2378         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
2379         if we need to push a large stack frame and there are no callee-saved
2380         registers.
2381
2382         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
2383         in ARM code if the frame pointer has been eliminated.
2384
2385         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
2386         unspec_volatile arguments to avoid duplicates.
2387         (consttable_1, consttable_2): Fixes for big-endian mode.
2388
2389         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
2390         as appropriate.
2391
2392         Re-write constant pool code.
2393         * arm.c (minipool_node, minipool_fix): New types.
2394         (minifix): Delete type.
2395         (arm_add_minipool_constant): Delete.
2396         (arm_compute_minipool_offsets, arm_find_barrier,
2397         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
2398         (get_jump_table_size): Now returns HOST_WIDE_INT.
2399         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
2400         functions.
2401         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
2402         (assign_minipool_offsets, arm_print_value): Likewise.
2403         (dump_minipool): Rewrite.
2404         (arm_barrier_cost): New function.
2405         (create_fix_barrier): New function.
2406         (push_minipool_barrier): New function.
2407         (push_minipool_fix): Record additional information about the fixup
2408         required.
2409         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
2410         check the mode of what needs fixing.
2411         (arm_reorg): Rewrite.
2412
2413         2000-03-08  Nick Clifton  <nickc@cygnus.com>
2414
2415         * config/arm/arm.md (indirect_jump): Force constant addresses into
2416         a register.
2417
2418         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
2419
2420         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
2421
2422         2000-02-24  Nick Clifton  <nickc@cygnus.com>
2423
2424         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
2425         adjust is word aligned.
2426         (thumb_expand_epilogue): Make sure that stack adjust is word
2427         aligned.
2428
2429         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
2430
2431         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
2432
2433         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
2434         pointer relative addresses.
2435
2436         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
2437
2438         * arm.c (find_barrier): Find the last barrier within the allowed
2439         range.
2440
2441         2000-02-09  Nick Clifton  <nickc@cygnus.com>
2442
2443         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
2444
2445         2000-02-09  Nick Clifton  <nickc@cygnus.com>
2446
2447         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
2448         ARM_FUNCTION_PROFILER.
2449
2450         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
2451         ARM_FUNCTION_PROFILER.
2452
2453         * config/arm/linux-oldld.h: Imported from mainline sources.
2454
2455         2000-02-07  Nick Clifton  <nickc@cygnus.com>
2456
2457         * config/arm/lib1funcs.asm: Merge in thumb functions from
2458         lib1thumb.asm.
2459
2460         * config/arm/lib1thumb.asm: Delete.
2461
2462         2000-02-04  Nick Clifton  <nickc@cygnus.com>
2463
2464         * config/arm/arm.c: Sychronised with current Red hat local
2465         sources.
2466         * config/arm/arm.h: Ditto.
2467         * config/arm/arm-protos.h: Ditto.
2468
2469         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
2470
2471         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
2472
2473         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
2474         byte stores.
2475
2476         2000-02-02  Nick Clifton  <nickc@cygnus.com>
2477
2478         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
2479
2480         * config/arm/arm.md (epilogue): Fix rtl checking abort because
2481         (return) was emited using an emit_insn() call.
2482
2483         2000-01-31  Nick Clifton  <nickc@cygnus.com>
2484
2485         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
2486         thumb stack frame.
2487         (thumb_exit): Move frame pointer back into hard frame pointer
2488         register if backtracing is being used.
2489
2490         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
2491
2492         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
2493         into branch.
2494
2495         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
2496
2497         * config/arm/arm.md (neg_pool_offset): Provide default for new
2498         attribute.
2499         (arm_movsi_insn): Add neg_pool_offset attribute.
2500         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
2501         rtx for the insn that starts the scan and an unsigned long for its
2502         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
2503         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
2504         instructions in *PINSERTED.
2505         (struct minipool_fixup): Add MIN_ADDRESS elt.
2506         (sort_fixups): Compute it.
2507         (arm_reorg): Changes to support inserting pools before the insn to be
2508         fixed up.
2509
2510         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
2511
2512         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
2513         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
2514         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
2515
2516         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
2517
2518         * config/arm/semi.h (TARGET_VERSION): Do not define if already
2519         defined.
2520         (TARGET_DEFAULT): Do not define if already defined.
2521
2522         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
2523
2524         * config/arm/arm.md (anddi3): Allow disjoint source operands.
2525         (iordi3): Allow disjoint source operands.
2526         (xordi3): Allow disjoint source operands.
2527         (negdi2): Permit construction for ARM and Thumb.
2528         (arm_negdi2): Renamed version of old negdi2 pattern.
2529         (thumb_negdi2): New pattern: Only permit non-overlapping
2530         source and destination.
2531
2532         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
2533
2534         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
2535         scratch low register so that it will not be deleted.
2536
2537         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
2538
2539         * config/arm/pe.h (ARM_PE): Define.
2540
2541         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
2542         interfacearm attribute if this is a PE toolchain.
2543         (output_return_instruction): Do not emit anything if the function
2544         has the naked attribute set.
2545         (is_called_in_ARM_mode): If the function has the interfacearm
2546         attribute then return true.
2547         (thumb_expand_prologue): Do not generate a prologue for naked
2548         functions.
2549         (thumb_expand_epilogue): Do not generate an epilogie for a naked
2550         function.
2551         (output_thumb_prologue): Do not bother if the function is naked.
2552         Strip PE encoding from function name before emitting.
2553
2554         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
2555
2556         * arm.md (pic_load_addr): Fix constraints.
2557
2558         * arm.md (casesi_insn): Fix mis-applied patch.
2559
2560         * arm.md ("core" function unit): Add rules for single- and
2561         multi-cycle insns.
2562         (All TARGET_THUMB patterns): Add "type" attribute information
2563         where needed.
2564         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
2565         the following insn is a CALL.
2566
2567         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
2568         pointer.
2569         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
2570         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
2571         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
2572
2573         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
2574
2575         * config/arm/linux-gas.h: oops - this file was missed out when the
2576         branch was created...
2577
2578         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
2579
2580         * thumb.c: Deleted.  Move contents to ...
2581         * arm.c: ... here.
2582         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
2583         rule for thumb.o
2584         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
2585         * configure: Regen.
2586
2587         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
2588         declare a prototype for asm_output_align();
2589
2590         * arm.c (thumb_condition_code): Delete.
2591         (arm_print_operand): Always use arm_condition_code array.
2592
2593         * arm.c (thumb_return_addr_rtx): Delete.
2594         (arm_save_machine_status, arm_restore_machine_status): Delete.
2595         (arm_init_machine_status, arm_mark_machine_status): New functions.
2596         (arm_init_expanders): Update accordingly.
2597         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
2598         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
2599         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
2600
2601         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
2602
2603         * configure.in : Fix arm-*-aout target to use new t-arm-aout
2604         script.
2605         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
2606         targets.
2607
2608         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
2609
2610         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
2611         stack backtrace structure.
2612
2613         * config/arm/arm-protos.h: Add prototypes for functions defined in
2614         arm/pe.h.
2615
2616         * config/arm/arm.c (arm_override_options): Fix selection of
2617         attributes of default processor.
2618
2619         * config/arm/coff.h: Delete needless #include.
2620
2621         * config/arm/pe.c: Delete unused code.
2622
2623         * config/arm/pe.h (CPP_DEFINES): Delete
2624         (SUBTARGET_CPP_SPEC): Define.
2625         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
2626
2627         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
2628
2629         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
2630
2631         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
2632         updated.
2633         (CAN_DEBUG_WITHOUT_FP): Define.
2634         (FIXED_REGISTERS): Make r11 call-saved.
2635         (CALL_USED_REGISTERS): Likewise.
2636         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
2637         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
2638         frame-pointer is required.
2639         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
2640         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
2641         if the target normally needs a stack frame in non-leaf functions.
2642         (use_return_insn): Correct logic for determining when a return
2643         instruction can be used.
2644         (output_return_instruction): Handle the frame-pointer register as
2645         a normal register when not TARGET_APCS_FRAME.
2646         (arm_output_prologue): Likewise.
2647         (arm_output_epilogue): Likewise.
2648         (output_func_epilogue): Likewise.
2649         (arm_expand_prologue): Likewise.
2650         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
2651
2652         * arm.c (use_return_insn): No need to check floating point regs if
2653         TARGET_SOFT_FLOAT.
2654         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
2655         the code of value stored in the minipool array.
2656         (arm_add_minipool_constant): Likewise.
2657
2658 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2659
2660         * basic-block.h (conflict_graph_enum_fn): K&R fix.
2661
2662 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2663
2664         * tree.c (tree_expr_nonnegative_p): New function.
2665
2666         * tree.h (tree_expr_nonnegative_p): Declare.
2667
2668         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
2669         elide some sign_compare warnings.
2670         (build_conditional_expr): Likewise.
2671
2672 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
2673
2674         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
2675
2676         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
2677         * i386.c (print_operand): Use the proper suffix for a 387 HImode
2678         operand.  Abort if a 387 operand has an unsupported size.
2679
2680 2000-04-08  Neil Booth  <NeilB@earthling.net>
2681
2682         * cppexp.c (parse_charconst): Null does not end character
2683         constants.
2684         * cppinit.c (ISTABLE): Null character handled as whitespace.
2685         * cpplex.c (null_warning):  new function.
2686         (skip_string): Emit warning if nulls encountered.
2687         (_cpp_skip_hspace): Emit warning if nulls encountered.
2688         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
2689         them.
2690         * cpp.texi: Update.
2691
2692 2000-04-07  Richard Henderson  <rth@cygnus.com>
2693
2694         * flow.c (loop_depth): Remove.
2695         (reg_next_use, cc0_live, mem_set_list): Replace with ...
2696         (struct propagate_block_info): New.
2697         (life_analysis): Don't allocate reg_next_use.
2698         (propagate_block_delete_insn): Break out of propagate_block.
2699         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
2700         (propagate_block_delete_libcall): Likewise.
2701         (propagate_block): Create a propagate_block_info struct to pass
2702         to subroutines.  Allocate one not two temporary regsets.  Don't
2703         clobber memory for const calls.  Look for clobbers in
2704         CALL_INSN_FUNCTION_USAGE.
2705         (mark_set_regs): Recognize COND_EXEC.
2706         (mark_set_reg): Break out of mark_set_1.
2707         (mark_used_reg): Break out of mark_used_regs.
2708         (mark_used_regs): Recognize COND_EXEC.
2709         (insn_dead_p): Use propagate_block_info struct.
2710         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
2711         (find_auto_inc, try_pre_increment_1): Likewise.
2712         (print_rtl_with_bb): Dump regs live at end too.
2713         (count_reg_sets_1): Pass in loop_depth.
2714         (count_reg_sets, count_reg_references): Likewise.
2715         (recompute_reg_usage): Provide it.
2716
2717 2000-04-07  Richard Henderson  <rth@cygnus.com>
2718
2719         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
2720         not the raw files.
2721
2722 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
2723
2724         * cpplib.c (do_elif): Skip the rest of the line if we're
2725         not going to bother evaluating it.
2726         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
2727         to avoid pointless calls to the lexer.
2728
2729 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
2730
2731         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
2732
2733 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
2734
2735         * calls.c (expand_call): emit_queue if we're trying a sibcall.
2736
2737 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
2738
2739         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
2740
2741 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
2742
2743         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
2744         crtend so they can be multilibbed.
2745         (STAGESTUFF): Remove s-crt and s-crtS.
2746
2747 2000-04-07  Richard Henderson  <rth@cygnus.com>
2748
2749         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
2750         if we discover we need a pseudo and no_new_pseudos is true.
2751         * config/alpha/alpha.md (ne:DI insn): New.
2752         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
2753
2754 2000-04-07  Richard Henderson  <rth@cygnus.com>
2755
2756         * rtl.def (COND_EXEC): New.
2757         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
2758         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
2759
2760         * genconfig.c (have_cond_arith_flag): Remove.
2761         (have_cond_exec_flag): New.
2762         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
2763         (main): Print HAVE_conditional_execution.
2764
2765         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
2766         (sched_analyze_insn, print_pattern): Likewise.
2767         * reload.c (find_equiv_reg): Likewise.
2768         * rtlanal.c (reg_referenced_p): Likewise.
2769         (note_stores, dead_or_set_regno_p): Likewise.
2770         (reg_overlap_mentioned_p): Rewrite to use a switch.
2771
2772         * ggc.h (struct rtx_def): Forward declare.
2773
2774         * print-rtl.c (debug_rtx_range): New.
2775         * rtl.h (debug_rtx_range): Declare.
2776
2777         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
2778
2779         * gcse.c (gcse_main): Don't rebuild the CFG here.
2780         (delete_null_pointer_checks): Likewise.
2781         * ssa.c (convert_to_ssa): Likewise.
2782         * toplev.c (rest_of_compilation): Do it here instead.  Combine
2783         sequential calls to TIMEVAR.  Consistently use `insns' instead of
2784         `get_insns()'.  Always split insns after reload when optimizing.
2785
2786         * basic-block.h (merge_blocks_nomove): Declare.
2787         (tidy_fallthru_edge): Declare.
2788         * flow.c (merge_blocks_nomove): Document as merging into previous
2789         blocks.  Remove cruft from between blocks; remove all edges out of A.
2790         (tidy_fallthru_edge): Export.
2791
2792 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
2793
2794         * ssa.c (compute_conservative_reg_partition): Declare with
2795         void arguments.
2796         * toplev.c (clean_dump_file): Remove previously-deleted function
2797         inadvertantly merged back in.
2798         * conflict.c (conflict_graph_add): Use a single call to
2799         htab_find_slot to look up and insert.
2800
2801 2000-04-06  Richard Henderson  <rth@cygnus.com>
2802
2803         * genrecog.c (*): Rename _last_insn to last_insn.
2804         (make_insn_sequence): Set the position of the peephole2 C test
2805         to be at the last insn.
2806
2807 2000-04-06  Richard Henderson  <rth@cygnus.com>
2808
2809         * flow.c (compute_flow_dominators): Free worklist.
2810
2811 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
2812
2813         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
2814
2815 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
2816
2817         * rtl.h (INSN_P): New macro.
2818         (successor_phi_fn): New typedef.
2819         (for_each_successor_phi): New prototype.
2820         (in_ssa_form): New variable.
2821         (PHI_NODE_P): Likewise.
2822         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
2823         phi nodes in successors.
2824         (mark_used_regs): Add PHI case.
2825         (set_phi_alternative_reg): New function.
2826         (life_analysis): Assert that dead code elimination is not selected
2827         when in SSA form.
2828         * toplev.c (to_ssa_time): New variable.
2829         (from_ssa_time): Likewise.
2830         (compile_file): Zero to_ssa_time and from_ssa_time.
2831         Print time to convert to and from SSA.
2832         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
2833         (print_time): Compute percent fraction as integer.
2834         * ssa.c (PHI_NODE_P): Moved to rtl.h.
2835         (convert_to_ssa): Check if we're already in SSA.
2836         Don't eliminate dead code in life_analysis.
2837         Rerun flow and life analysis at bottom.
2838         (eliminate_phi): Use canonical regnos when adding nodes.
2839         (mark_reg_in_phi): New function.
2840         (mark_phi_and_copy_regs): Likewise.
2841         (convert_from_ssa): Rerun life analysis at top.
2842         Use coalesced partition.
2843         Check for removing a phi node at the end of the block.
2844         (compute_coalesced_reg_partition): New function.
2845         (coalesce_regs_in_copies): Likewise.
2846         (coalesce_reg_in_phi): Likewise.
2847         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
2848         (for_each_successor_phi): Likewise.
2849         (rename_context): New struct.
2850         (rename_block): Use a rename_context with rename_insn_1.  When
2851         renaming sets of a subreg, emit a copy of the entire reg first.
2852         (rename_insn_1): Treat data as a rename_context *.  Save current
2853         insn in set_data.
2854         (rename_set_data): Add field set_insn.
2855         * Makefile.in (HASHTAB_H): Move up in file.
2856         (OBSTACK_H): New macro.
2857         (collect2.o): Use OBSTACK_H in dependencies.
2858         (sdbout.o): Likewise.
2859         (emit-rtl.o): Likewise.
2860         (simplify-rtx.o): Likewise.
2861         (fix-header.o): Likewise.
2862         (OBJS): Add conflict.o.
2863         (conflict.o): New rule.
2864         * basic-block.h: Include partition.h.
2865         (conflict_graph): New typedef.
2866         (conflict_graph_enum_fn): Likewise.
2867         (conflict_graph_new): New prototype.
2868         (conflict_graph_delete): Likewise.
2869         (conflict_graph_add): Likewise.
2870         (conflict_graph_conflict_p): Likewise.
2871         (conflict_graph_enum): Likewise.
2872         (conflict_graph_merge_regs): Likewise.
2873         (conflict_graph_print): Likewise.
2874         (conflict_graph_compute): Likewise.
2875         * conflict.c: New file.
2876
2877 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
2878
2879         * tlink.c (read_repo_files): Don't look for .rpo info for
2880         linker flags.
2881
2882 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2883
2884         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
2885
2886 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2887
2888         * config/sh/lib1funcs.asm (___udivsi3_i4):
2889         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
2890         only depends on FMOVD_WORKS.
2891
2892 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2893
2894         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
2895         make double constant 8-byte aligned.
2896
2897 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
2898
2899         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
2900         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
2901         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
2902         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
2903         Accept storing GENERAL_REGS into offsetable memory.
2904         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
2905         building a TFmode constant other than 0.0L into GENERAL_REGS.
2906
2907 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
2908
2909         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
2910
2911 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
2912
2913         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
2914         (macro_cleanup): No need to cast pbuf->macro.
2915         (collect_expansion): Use _cpp_get_define_token.  Goto done if
2916         it returns VSPACE.  Remove check for trailing space after
2917         CPP_COMMENT.
2918         (_cpp_create_definition): Don't diddle flags here.  Return
2919         directly on error.
2920         (unsafe_chars): Handle c1 being EOF.
2921         (push_macro_expansion): Use unsafe_chars for both accidental-paste
2922         checks.  Don't push the buffer till after we're done with
2923         them.
2924         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
2925         (PEEKN, FORWARD, GETC, PEEKC): Use them.
2926         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
2927         appropriately.
2928         (_cpp_parse_assertion): Don't NUL terminate.
2929         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
2930         hspace before calling _cpp_parse_assertion.  Remove all sets
2931         of only_seen_white. Treat '\f' as hspace.  Don't do anything
2932         special with '\n' here.
2933         (maybe_macroexpand): Handle T_EMPTY hash entries without
2934         pushing a buffer at all.
2935         (cpp_get_token): Handle clearing only_seen_white here.  Handle
2936         incrementing the line number here.  Clear
2937         potential_control_macro as well as only_seen_white, if
2938         appropriate.
2939         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
2940         (_cpp_get_define_token): New function, basically like
2941         _cpp_get_directive_token was but doesn't eat horizontal space.
2942         Don't do anything with only_seen_white here.
2943         (_cpp_get_directive_token): Just call _cpp_get_define_token
2944         repeatedly till it returns non-hspace.
2945
2946         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
2947         (conditional_skip, skip_if_group): Return int.
2948         (DIRECTIVE_TABLE): Change origin of all conditional directives
2949         to "COND".
2950         (TRAD_DIRECT_P): New macro.
2951         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
2952         an error for a bogus directive, unless -lang-asm.  Use
2953         TRAD_DIRECT_P. Loop calling handler functions till one returns
2954         zero.
2955         (get_macro_name): Don't diddle flags here.
2956         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
2957         Create T_EMPTY nodes for #define macro /* nothing */.
2958         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
2959         Use hp->name when calling pass_thru_directive.
2960         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
2961         Return the result of conditional_skip and/or skip_if_group.
2962         Don't call _cpp_output_line_command.
2963         (consider_directive_while_skipping): Use _cpp_get_directive_token.
2964         Issue -Wtraditional warnings as appropriate.  Don't complain
2965         about unrecognized directives.  If we are to stop skipping,
2966         return the number of the directive that ended the skip.
2967         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
2968         expansion and line commands while skipping.  Return the result
2969         of consider_directive_while_skipping, if nonzero.
2970         (do_endif): Just set potential_control_macro here.
2971         (validate_else): Use _cpp_get_directive_token.
2972         (do_assert, do_unassert): Don't save pointers into the
2973         token_buffer across calls to the lexer.  Use
2974         _cpp_get_directive_token.
2975
2976         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
2977         pointer, not an offset.  Replace 'data', which was a generic
2978         pointer, with 'macro', which points to a struct hashnode.
2979         (cpp_reader): Add 'potential_control_macro' pointer.
2980         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
2981         (CPP_BUF_GET, CPP_FORWARD): Delete.
2982         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
2983         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
2984         ACTIVE_MARK_P): Update.
2985         (_cpp_get_define_token): New internal function.
2986         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
2987
2988 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
2989
2990         * configure.in: And here.
2991         * configure: Regenerate.
2992         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
2993         --enable-libstdcxx-v3 is passed at configure time.
2994         * config.h.in: Regenerate.
2995
2996 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
2997
2998         * final.c (final): Use xcalloc to allocate line_note_exists.
2999         * function.c (free_after_compilation): Free the temp_slots.
3000         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
3001         (combine_temp_slot): Free temp_slots when they get combined.
3002         (purge_addressof): Fix typo in comment.
3003         * stmt.c (mark_goto_fixup): Mark the fixup itself.
3004         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
3005
3006         * ggc.h: Include varray.h.
3007         (ggc_pending_trees): Declare.
3008         (ggc_mark_tree_children): Remove declaration.
3009         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
3010         * ggc-common.c (ggc_pending_trees): New variable.
3011         (ggc_mark_roots): Call ggc_mark_trees.
3012         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
3013         the ggc_pending_trees.
3014         * Makefile.in (GGC_H): New variable.  Use it throughout in place
3015         of ggc.h.
3016
3017 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3018
3019         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
3020         GET_MODE_SIZE.
3021
3022 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3023
3024         * sh.c (sh_insn_length_adjustment): New function.
3025         * sh-protos.h (sh_insn_length_adjustment): Declare.
3026         * sh.h (ADJUST_INSN_LENGTH): Use it.
3027
3028 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
3029
3030         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
3031         from the insn where REG_RETVAL is added.
3032         (emit_no_conflict_block): Ditto.
3033
3034         * md.texi (Standard Names): Clarify when movX is needed.
3035
3036         * combine.c (simplify_comparison) [MINUS]: Do not replace
3037         all (op (minus A B) 0) with (op A B).
3038
3039 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
3040                           J"orn Rennecke <amylaar@cygnus.co.uk>
3041
3042         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
3043         (block_lump_real): Likewise.
3044
3045 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
3046
3047         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
3048         remaining non-zero debugging masks.
3049
3050 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
3051
3052         * basic-block.h (verify_flow_info): Declare.
3053         (flow_loop_outside_edge_p): Declare.
3054         * flow.c (verify_flow_info): Remove declaration.
3055         (clear_log_links, flow_loop_outside_edge_p): Likewise.
3056
3057 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
3058
3059         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
3060         not C++ comments.
3061
3062 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
3063
3064         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
3065         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
3066         seqdi_zero_trunc+1): Allow splits only if registers are
3067         different.
3068
3069 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
3070
3071         * acconfig.h: Add HAVE_GAS_HIDDEN.
3072         * config.in: Regenerated.
3073         * configure.in: Add test for .hidden pseudo-op in gas.
3074         * configure: Regenerated.
3075         * crtstuff.c: Include auto-host.h.
3076         Emit additional .hidden pseudo-op for __dso_handle if the
3077         assembler knows about it.
3078
3079 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
3080
3081         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
3082         before freeing argnames.
3083         * cpplib.c (do_ifndef): Cast return value of xstrdup.
3084
3085 2000-04-05  Michael Meissner  <meissner@redhat.com>
3086
3087         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
3088         Walton <jonboy@gordian.com> to make memory references with update
3089         work wtih -mregnames.
3090
3091 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3092
3093         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
3094         (regrename_optimize): Rename variables `def_uses' and
3095         `ext_basic_blocks' to avoid conflicts with similarly named
3096         typedefs in traditional C.
3097
3098         * calls.c (initialize_argument_information): Fix typo in previous
3099         change.
3100
3101 2000-04-04  Richard Henderson  <rth@cygnus.com>
3102
3103         * regrename.c (consider_available): Test fixed_regs not
3104         PIC_OFFSET_TABLE_REGNUM.
3105
3106 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
3107
3108         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
3109         crtend.
3110         (CRTSTUFF_T_CFLAGS_S): Delete definition.
3111         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
3112         (ENDFILE_LINUX_SPEC): Always use crtend.
3113         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
3114         (powerpc-*-linux-gnu): Likewise.
3115         * configure: Regenerate.
3116
3117         * config/rs6000/eabi.h: Don't include sysv4.h.
3118         (MULTILIB_DEFAULTS): Don't define.
3119         * config/rs6000/eabiaix.h: Don't include eabi.h.
3120         * config/rs6000/eabile.h: Delete.
3121         * config/rs6000/eabilesim.h: Delete.
3122         * config/rs6000/eabisim.h: Don't include eabi.h.
3123         * config/rs6000/linux.h: Don't include sysv4.h.
3124         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
3125         (MULTILIB_DEFAULTS): Don't redefine.
3126         * config/rs6000/rtems.h: Don't include eabi.h.
3127         * config/rs6000/sol2.h: Don't include sysv4le.h.
3128         * config/rs6000/sysv4le.h: Don't include sysv4.h.
3129         * config/rs6000/t-ppc: Delete.
3130         * config/rs6000/t-ppcgas: Correct comment.
3131         * config/rs6000/t-ppcos: Correct comment.  Don't build
3132         multilibs for -fPIC, rather use -fPIC -mstrict-align
3133         as default.
3134         * config/rs6000/t-ppc: Delete.
3135         * config/rs6000/vxppc.h: Don't include sysv4.h.
3136         * config/rs6000/vxppcle.h: Delete.
3137         * configure.in: Use multiple header files for p2pc ELF targets
3138         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
3139         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
3140         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
3141         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
3142         always available for these platforms.
3143
3144 2000-04-04  Richard Henderson  <rth@cygnus.com>
3145
3146         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
3147
3148 2000-04-04  Stan Cox  <scox@cygnus.com>
3149
3150         * Makefile.in: Add rules for regrename.o
3151         * regrename.c: New file.
3152         * rtl.h (regrename_optimize): Add prototype.
3153         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
3154         (compile_file, decode_d_option): Add support for -frename-registers.
3155         (rest_of_compilation): Call regrename_optimize.
3156         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
3157         New macros.
3158
3159 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3160
3161         * Makefile (gccbug): New target.
3162         (doc): Depend on it.
3163         * gcc.texi (Bugs): Link subnodes.
3164         (gccbug): New node.
3165         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
3166         Document severities, priorities, and classes in bug form.
3167
3168 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
3169
3170         * cpplex.c (trigraph_map, speccase): Combine into single
3171         table, chartab.
3172         (NORMAL, NONTRI): New macros.
3173         (_cpp_read_and_prescan): Change to use unified table.  Use
3174         is_hspace to test for whitespace.
3175
3176         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
3177         definition that doesn't provoke the "empty body in an
3178         if-statement" warning.
3179
3180 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
3181
3182         * builtins.c (expand_builtin_strlen): Force the source to
3183         be a memory address.
3184
3185 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3186
3187         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
3188
3189 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3190
3191         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
3192          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
3193         (ECF_IS_CONST): Rename to ECF_CONST.
3194         (special_function_p): Make static, change interface.
3195         (flags_from_decl_or_type, try_to_integrate): Break out from ...
3196         (expand_call) ... here; convert number of variables to flags.
3197         (emit_library_call_vlue_1): Likewise.
3198         (setjmp_call_p): New function.
3199         (initialize_argument_information): Accepts flags as argument;
3200         return flags.
3201         (precompute_arguments): Likewise.
3202         * tree.h (special_function_p): Remove.
3203         (setjmp_call_p): Add prototype.
3204
3205 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
3206
3207         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
3208         so that addresses are offsetable by up to 16 bytes.
3209         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
3210         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
3211         offsetable.
3212
3213         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
3214         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
3215         (movsf): Don't force any constant to memory if target is integer
3216         hard register.
3217         Move fp_zero_operand check below the const0_rtx check.
3218         (movtf): Likewise. Also allow fp_zero_operand for stores into
3219         memory.
3220         (movdf): Likewise. Also allow fp_zero_operand for stores into
3221         memory and into integer hard registers.
3222         (clear_df, clear_dfp, movdf_const_intreg_sp32,
3223         movdf_const_intreg_sp64): Remove.
3224         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
3225         conditions.
3226         (movdf_no_e_insn_v9_sp32): New pattern.
3227         (movdf_insn_v9only): Remove.
3228         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
3229         (movdf_insn_sp64): Remove.
3230         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
3231         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
3232         (following splits): Rewrite conditions. Add two new splits
3233         for storing 0.0 into memory and registers.
3234         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
3235         (movtf_insn_sp32): Redo constraints and conditions.
3236         (movtf_insn_vis_sp32): New pattern.
3237         (movtf_no_e_insn_sp32): Redo constraints and conditions.
3238         (movtf_insn_hq_sp64): Likewise.
3239         (movtf_insn_hq_vis_sp64): New pattern.
3240         (movtf_insn_sp64): Redo constraints and conditions.
3241         (movtf_insn_vis_sp64): New pattern.
3242         (movtf_no_e_insn_sp64): Redo constraints and conditions.
3243         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
3244         or memory.
3245         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
3246         -mvis or -m64 to take down the number of various reload patterns.
3247
3248 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
3249
3250         * pa/pa-64.h: New file.
3251         * pa/pa64-regs.h: New file.
3252         * pa/pa64-start.h: New file.
3253         * pa/t-pa64: New file.
3254         * pa/xm-pa64hpux.h: New file.
3255
3256 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3257
3258         * sparc.c (output_restore_regs): Prototype.
3259         (sparc_emit_float_lib_cmp): Constification.
3260
3261         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
3262
3263         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
3264         Prototype.
3265
3266         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
3267         (get_value_hash, hash_rtx): Likewise.
3268
3269         * ssa.c (compute_conservative_reg_partition): Prototype.
3270
3271         * tree.c (mark_hash_entry): Prototype.
3272
3273 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
3274
3275         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
3276         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
3277         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
3278
3279         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
3280         * objc/lang-specs.h: Likewise.
3281
3282 2000-04-03  Neil Booth  <NeilB@earthling.net>
3283
3284         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
3285         and SYNTAX_ERROR2. Replace `' in messages with ''.
3286         (op_to_str): Make re-entrant.
3287         (_cpp_parse_expr): Implement new error macros. Use | rather
3288         than || to logically or 2 boolean integers.  Simply expression
3289         checking we have a left operand iff needed.
3290
3291 2000-04-03  Nick Clifton  <nickc@cygnus.com>
3292
3293         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
3294
3295 2000-04-03  Philip Blundell  <philb@gnu.org>
3296
3297         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
3298
3299 2000-04-03  Felix Lee  <flee@cygnus.com>
3300
3301         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
3302         (run_shell): Use it.
3303
3304 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
3305
3306         * Makefile.in (stmp-int-hdrs): Make include subdir here...
3307         (stmp-fixproto): ...rather than here.
3308
3309 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
3310
3311         * pa.c (print_operand): Compute 'base' only inside the code paths
3312         that use it.
3313
3314 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
3315
3316         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
3317         CEIL_DIV_EXPR.
3318
3319 2000-04-03  Philipp Thomas  <pthomas@suse.de>
3320
3321         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
3322
3323 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
3324
3325         * Makefile.in (alias.o): Depend on $(TREE_H).
3326
3327 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
3328
3329         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
3330         processing C++.
3331         * cpplib.c (_cpp_handle_directive): Improve warnings for
3332         traditional C and indented directives.
3333
3334         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
3335         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
3336         fixinc/inclhack.def: Indent the # of #include_next one space.
3337         * cp/rtti.c: Un-indent #if and #endif.
3338
3339         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
3340         syntax error, but an error has already been printed.
3341         * cpplex.c (_cpp_parse_assertion): Give a more specific error
3342         message when called with nothing remaining on the line.
3343         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
3344         OTHER token, not an ASSERTION.
3345         * cpplib.c (do_assert): When we create a 'base' node, clear
3346         its aschain pointer.
3347
3348 2000-04-02  Neil Booth <NeilB@earthling.net>
3349
3350         * cppexp.c:  New typedef op_t.  struct operation and struct
3351         token updated to use it.
3352         (op_to_str): New function.
3353         (_cpp_parse_expr): Error messages modified to use op_to_str.
3354
3355 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3356
3357         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
3358         before checking MUST_PASS_IN_STACK.
3359
3360 2000-04-02  Neil Booth <NeilB@earthling.net>
3361
3362         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
3363         flags and initial priority into a single constant.  New
3364         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
3365         (_parse_cpp_expr): Implement new constants.  Take left operand
3366         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
3367         parse indicated by reducing FINISHED token.  Remove new lines
3368         from cpp_error messages.
3369
3370 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
3371
3372         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
3373         permanent obstack.
3374
3375 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
3376
3377         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
3378         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
3379         the strings and function names on the fly.  Take the #sccs
3380         entry out of the table if SCCS_DIRECTIVE is not defined.
3381         (_cpp_handle_directive): Decide if the # was at the beginning
3382         of the line here.  Issue -pedantic warnings for extended
3383         directives here.  Warn about K+R directives with the #
3384         indented, and C89/extended directives with the # not indented,
3385         here.
3386         (do_import, do_include_next, do_warning, do_ident, do_sccs,
3387         do_assert, do_unassert): Don't issue pedantic warning here.
3388
3389         * cpphash.h: Add CPP_WTRADITIONAL macro.
3390         * cpplib.h (struct cpp_options): Rename warn_stringify to
3391         warn_traditional; update comments.
3392         * cppinit.c (handle_option): Set warn_traditional not
3393         warn_stringify.
3394         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
3395         CPP_WTRADITIONAL (pfile).
3396         * cpplex.c (_cpp_lex_token): Don't decide if directives should
3397         be ignored in -traditional mode here.
3398
3399         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
3400         to initialize speccase[] and trigraph_map[].  Delete all
3401         references to pfile->input_speccase.  Always treat '?' as a
3402         special character.  Remove table-initialization code from
3403         _cpp_init_input_buffer.
3404
3405         * cpplib.h (struct cpp_reader): Remove input_speccase field.
3406         * cppinit.c (cpp_cleanup): Don't free input_speccase.
3407
3408 2000-04-01  Richard Henderson  <rth@cygnus.com>
3409
3410         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
3411         (mostlyclean): Likewise.
3412
3413         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
3414         (struct dump_file_info, enum dump_file_index, dump_file): New.
3415         (open_dump_file): Take a dump_file_index not a suffix, and a decl
3416         not a string.  Clean out file if we havn't yet done so.  Do nothing
3417         if the dump isn't enabled.
3418         (close_dump_file): Do nothing if the dump isn't open.  Dump
3419         graph data if requested.
3420         (dump_rtl, clean_dump_file): Remove.
3421         (compile_file): Don't clean the dump files.  Only finalize .bp dump
3422         if flag_test_coverage or flag_branch_probabilities.  Only finalize
3423         .combine dump if optimizing.  Iterate over dump_file to finalize the
3424         graph dumps.