OSDN Git Service

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