OSDN Git Service

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