OSDN Git Service

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