1 2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3 * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
5 2000-05-04 Mumit Khan <khan@xraylith.wisc.edu>
7 * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
8 attribute macros from here ...
10 * i386/mingw32.h (CPP_PREDEFINES): Likewise.
12 * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
14 * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
15 (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
17 2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19 * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
21 * diagnostic (vbuild_message_string, build_message_string,
22 build_location_prefix, output_get_prefix, init_output_buffer,
23 output_notice, vline_wrapper_message_with_location,
24 v_message_with_decl, default_print_error_function): De-constify.
25 (set_real_maximum_length): Prototype.
27 * diagnostic.h (struct output_buffer, init_output_buffer,
28 output_get_prefix, output_set_prefix): De-constify.
30 * function.c (init_function_start): Constify.
32 * gensupport.c (remove_constraints, process_rtx): Prototype.
34 * gthr-posix.h: Indent uses of #pragma.
36 * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
39 * predict.c (find_expected_value): Delete prototype.
40 (expected_value_to_br_prob): Initialize variable `ev_reg'.
42 * sbitmap.h (debug_sbitmap): Prototype.
44 * ssa.c (compute_coalesced_reg_partition): Prototype.
46 * stor-layout.c (debug_rli): Prototype.
48 * tree.h (round_down): Prototype.
49 (init_function_start): Constify.
51 2000-05-04 Zack Weinberg <zack@wolery.cumb.org>
53 * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
54 (overly conservative). Change extern inline wrappers to
55 static inline, define them always, use PARAMS properly.
56 * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
57 whitespace warnings for \f and \v at the beginning of a line.
59 Thu May 4 10:03:50 2000 Jeffrey A Law (law@cygnus.com)
61 * haifa-sched.c (schedule_insns): Free the flow edge list when it
64 2000-05-04 Bruce Korb <bkorb@gnu.org>
66 * fixincl/inclhack.def: added broken_cabs -
67 Remove `extern double cabs' declarations from math.h
68 * fixincl/inclhack.sh: regen
69 * fixincl/fixincl.x: regen
70 * fixincl/fixincl.c: Remove BOGOSITY code
71 * fixincl/mkfixinc.sh: Remove code for installing "shell" version
73 Thu May 4 09:45:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
75 * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
77 * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
78 when calling MEM_COPY_ATTRIBUTES.
79 * emit-rtl.c (operand_subword, change_address): Likewise.
80 * explow.c (stabilize): Likewise.
81 * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
82 * integrate.c (copy_rtx_and_substitute): Likewise.
83 * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
84 when calling MEM_COPY_ATTRIBUTES.
85 (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
87 * cse.c (gen_lowpart_if_possible): Likewise.
88 * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
89 * optabs.c (gen_move_insn): Likewise.
90 * recog.c (validate_replace_rtx_1): Likewise.
91 * simplify-rtx.c (add_mem_for_addr): Likewise.
92 * stmt.c (expand_anon_union_decl): Likewise.
93 * config/arm/arm.md: Likewise.
94 * config/h8300/h7300.c (fix_bit_operand): Likewise.
95 * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
96 (block_move_no_loop, block_move_sequence): Likewise.
97 * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
98 * config/alpha/alpha.c (get_aligned_mem): Likewise.
100 * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
103 2000-05-03 Robert Lipe <robertlipe@usa.net>
105 * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
107 (i[34567]86-*-sco3.2v5*) Likewise.
108 (i[34567]86-*-sco3.2v4*) Likewise.
109 (i[34567]86-*-sco) Likewise.
110 (i[34567]86-*-solaris2) Likewise.
111 (i[34567]86-*-sysv5*) Likewise.
112 (i[34567]86-*-sysv4*) Likewise.
113 (i[34567]86-*-udk*) Likewise.
114 (i[34567]86-*-sysv*) Likewise.
116 2000-05-03 Zack Weinberg <zack@wolery.cumb.org>
118 * cpphash.h (U): New define, to correct type of string constants.
119 (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
120 routines, to do casts when passing unsigned strings to libc.
121 * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
123 * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
124 * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
125 * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
126 * cpplex.c (parse_ifdef, parse_include, validate_else): Make
127 second argument an U_CHAR *.
129 * cppinit.c (builtin_array): Make name and value U_CHAR *, add
130 length field, clean up initializer.
131 (ISTABLE): Add __extension__ to designated-
132 initializers version.
133 * cpplex.c (CHARTAB): Likewise.
135 * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
136 case so the file won't be empty.
138 Wed May 3 21:01:46 2000 Jason Eckhardt <jle@cygnus.com>
140 * bb-reorder.c (struct reorder_block_def): Member succ removed.
141 (REORDER_BLOCK_SUCC): Removed.
142 (enum reorder_skip_type): Removed.
143 (skip_insns_between_block): Renamed to skip_insns_after_block.
144 Removed second argument. Removed dead code and cleaned up.
145 (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
146 (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
147 second parameter to skip_insns_after_block.
149 Wed May 3 13:29:54 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
151 * tree.c (staticp, case LABEL_DECL): New case.
153 2000-05-03 Richard Henderson <rth@cygnus.com>
155 * Makefile.in (start.encap): Do not depend on LIBGCC1.
157 * mklibgcc1.in: Fix typo last change.
159 2000-05-03 Jason Merrill <jason@casey.cygnus.com>
161 * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
162 (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
163 (GCC_CFLAGS): Use it.
164 (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
165 * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
166 objc/Make-lang.in: Use it.
168 2000-05-03 Jason R Thorpe <thorpej@zembu.com>
170 * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
172 2000-05-03 Richard Henderson <rth@cygnus.com>
174 * mklibgcc.in: Restrict OLDCC=GCC test to native. Equate
175 LIBGCC1 empty with libgcc1.null.
177 Wed May 3 12:55:46 2000 Jim Wilson <wilson@cygnus.com>
179 * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
182 2000-05-03 Greg McGary <gkm@gnu.org>
184 * tree.h (tree_common): Add bounded_flag member. Remove
185 inaccurate comment about number of remaining bits.
186 (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
187 BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
188 MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
189 TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
190 TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
191 (TYPE_QUAL_BOUNDED): New constant.
192 (TYPE_QUALS): Handle bounded qualifier.
193 (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
194 (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
195 TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
196 TYPE_AMBIENT_BOUNDEDNESS): New macros.
197 (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
198 (tree_type): Add pointer_depth member. Remove
199 inaccurate comment about number of remaining bits.
200 (DECL_POINTER_DEPTH): Add macro.
201 (tree_decl): Add pointer_depth member.
203 Wed May 3 22:52:53 2000 Denis Chertykov <denisc@overta.ru>
205 * config/avr/avr-protos.h (test_hard_reg_class): Declared.
206 * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
207 (lshrhi3_out): Likewise.
208 (ashrsi3_out): bugfix in shift by 8.
209 (test_hard_reg_class): New function.
210 * config/avr/avr.md: Bugfix inside conditions in peepholes.
211 (ashlhi3): removed define_expand of this pattern.
212 (*ashlhi3_insn): renamed to ashlhi3.
213 (ashlsi3): removed define_expand of this pattern.
214 (*ashlsi3_insn): renamed to ashlsi3.
215 (ashrqi3): removed define_expand of this pattern.
216 (*ashrqi3_insn): renamed to ashrqi3.
217 (ashrhi3): removed define_expand of this pattern.
218 (*ashrhi3_insn): renamed to ashrhi3.
219 (ashrsi3): removed define_expand of this pattern.
220 (*ashrsi3_insn): renamed to ashrsi3.
221 (lshrhi3): removed define_expand of this pattern.
222 (*lshrhi3_insn): renamed to lshrhi3.
223 (lshrsi3): removed define_expand of this pattern.
224 (*lshrsi3_insn): renamed to lshrsi3.
226 2000-05-03 Rodney Brown <RodneyBrown@pmsc.com>
228 * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
229 inclusion of "system.h".
231 Wed May 3 11:43:53 2000 Jim Wilson <wilson@cygnus.com>
233 * config/ia64/ia64.c (ia64_encode_section_info): Add check for
236 2000-05-03 David Mosberger <davidm@hpl.hp.com>
238 * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
240 (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
241 -mconstant-gp is in effect and function-descriptors are being used
242 to make indirect calls.
243 * config/ia64/ia64.h (MASK_CONST_GP): New macro.
244 (MASK_AUTO_PIC): Ditto.
245 (TARGET_CONST_GP): Ditto.
246 (TARGET_AUTO_PIC): Ditto.
247 (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
248 (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
249 -mno-pic is in effect.
250 (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
251 * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
252 -mauto-pic is in effect.
253 (gprel64_offset): New pattern.
254 (load_gprel64): Ditto.
255 (call): Handle -mauto-pic like -mno-pic (don't use fptr). If
256 -mconstant-gp is in effect, no need to preserve gp around direct
259 * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
260 (FUNCTION_PROFILER): Define.
261 * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
262 @fptr() directive when -mno-pic or -mauto-pic is in effect.
263 (ASM_OUTPUT_DESTRUCTOR): Ditto.
265 2000-05-03 Richard Henderson <rth@cygnus.com>
267 * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
268 (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
269 (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
270 (mklibgcc, libgcc.mk): New targets.
271 (libgcc.a): Use libgcc.mk.
272 (stmp-multilib): Likewise.
273 (stmp-multilib-sub): Remove.
274 (mostlyclean): Don't delete libgcc2 temp files.
275 * configure.in (AC_PROG_CC_C_O): Add.
276 (NO_MINUS_C_MINUS_O): Substitute it.
277 (all_outputs): Add mklibgcc.
278 * mklibgcc.in: New file.
280 2000-05-03 Jason Merrill <jason@casey.cygnus.com>
282 * cppexp.c (op_t): Make an int.
284 * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
286 * varasm.c (initializer_constant_valid_p): Fix parenthesis.
288 * gensupport.c (process_rtx): Fix macros used.
290 2000-05-03 Richard Henderson <rth@cygnus.com>
292 * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
293 call-clobbered registers of a call.
295 Wed May 3 12:40:53 2000 Clinton Popetz <cpopetz@cygnus.com>
297 * gensupport.c: New file.
298 * gensupport.h: New file.
299 * Makefile.in (HOST_RTL): Depend on gensupport.
300 (gensupport.o) New rule.
301 * genattr.c: Use gensupport for reading .md files.
302 * genattrtab.c: Ditto.
304 * genconfig.c: Ditto.
306 * genextract.c: Ditto.
308 * genopinit.c: Ditto.
309 * genoutput.c: Ditto.
312 * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
313 * md.texi (Insn Splitting): Document define_insn_and_split.
315 Tue May 2 00:20:30 2000 Jason Eckhardt <jle@cygnus.com>
317 * flow.c (verify_flow_info): Added two more sanity checks. The
318 first checks that the blocks are numbered consecutively. The second
319 checks that n_basic_blocks is actually equal to the number of
320 basic blocks in the insn chain.
322 2000-05-03 Zack Weinberg <zack@wolery.cumb.org>
324 * cpplib.h: Add accessor macros for token lists.
325 * cpplib.c, cpphash.c, cpplex.c: Use them.
327 Wed May 3 09:29:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
329 * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
330 memory usage if not in a function.
331 * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
332 return address if static.
334 Wed May 3 13:14:49 MET DST 2000 Jan Hubicka <jh@suse.cz>
336 * ifcvt.c (noce_try_cmove_arith): Use may_trap_p to thest
337 whether address may trap.
339 Tue May 2 23:38:37 2000 Jason Eckhardt <jle@cygnus.com>
341 * bb-reorder (chain_reorder_blocks): Changed code to test for
342 EDGE_FALLTHRU rather than making erroneous assumption that the
343 first outgoing edge is the fall-through edge.
345 Tue May 2 18:20:31 2000 Donald Lindsay <dlindsay@hound.cygnus.com>
347 * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
348 ABI for varargs, across all MIPS. This is incompatible because the
349 va_list (__builtin_va_list) structure is different, so a compilation
350 unit passing a va_list and a compilation unit being passed one, should
351 both be compiled with the same ABI. (The old structure had two
352 pointers, now it has three.)
354 Tue May 2 19:18:43 2000 Jason Eckhardt <jle@cygnus.com>
356 * bb-reorder.c (struct reorder_block_def): Remove members end,
357 block_begin, and block_end.
358 (REORDER_BLOCK_OLD_END): Delete.
359 (REORDER_BLOCK_BEGIN): Delete.
360 (REORDER_BLOCK_END): Delete.
361 (chain_reorder_blocks): Remove dead code.
363 Tue May 2 17:06:53 2000 Jason Eckhardt <jle@cygnus.com>
365 * bb-reorder.c (remove_scope_notes): Check for both types of scope
366 notes as the end of a basic block before deleting.
368 2000-05-02 Mumit Khan <khan@xraylith.wisc.edu>
370 * final.c (final_start_function): Fix spelling of "necessary".
372 2000-05-02 Jason Merrill <jason@casey.cygnus.com>
374 * toplev.c (debug_ignore_block): Return int.
375 * dwarf2out.c (dwarf2out_ignore_block): Likewise.
376 * toplev.h, dwarf2out.h: Adjust.
377 * emit-rtl.c (remove_unnecessary_notes): Test return value.
379 * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
380 * toplev.c, final.c, rtl.h: Adjust.
382 2000-05-02 Zack Weinberg <zack@wolery.cumb.org>
384 * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
385 * configure.in: Look for makeinfo in the unified tree, then
386 for a system makeinfo which is sufficiently new.
387 * Makefile.in: If configure says makeinfo is too old, don't
388 build or install Info documentation.
390 2000-05-02 Zack Weinberg <zack@wolery.cumb.org>
392 * cpphash.c (collect_params): Fix off-by-one error.
393 (dump_hash_helper): Dump all four macro nodetypes.
395 2000-05-02 Jakub Jelinek <jakub@redhat.com>
397 * cpphash.c (trad_stringify): Adjust p after stringification as
400 2000-05-02 Zack Weinberg <zack@wolery.cumb.org>
402 * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
403 (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
405 * cppfiles.c (file_cleanup): Delete.
406 * cpphash.c (macro_cleanup): Delete.
407 (collect_objlike_expansion, collect_funlike_expansion,
408 macarg, scan_arguments): Remove CPP_POP case.
410 * cpplex.c (null_cleanup): Delete.
411 (cpp_pop_buffer): Do the work that was done in the cleanups
412 here. Call _cpp_unwind_if_stack from here.
413 (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
414 cpp_scan_buffer): Run until we see CPP_EOF and the top of
415 stack is the buffer _below_ the one we stacked.
416 (cpp_get_token): Always pop an exhausted buffer. Return
417 CPP_EOF unless it's a macro buffer. Don't call _cpp_handle_eof.
418 * cpplib.c (skip_if_group): Don't call cpp_get_token to
419 increment the line number.
420 (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
422 * fix-header.c (read_scan_file) [parsing getchar()]: Run until
423 we see CPP_EOF and the top of stack is the buffer _below_ the
425 * scan-decls.c: Likewise.
427 2000-05-02 Andrew Haley <aph@cygnus.com>
429 * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
430 where this function is called for the second time on a decl that
431 has had its section info changed in such a way as to move it out
433 * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
435 2000-05-01 Richard Henderson <rth@cygnus.com>
437 * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
438 the sequence we're moving, not to merge_bb->head.
440 2000-05-01 Richard Henderson <rth@cygnus.com>
442 * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
443 reference to alpha/t-linux.
444 (alpha*-*-linux-gnu*): Likewise.
445 * configure: Rebuild.
447 * calls.c (expand_call): Don't emit reg notes for a sibcall.
449 * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
452 * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
454 2000-05-01 Jason Merrill <jason@casey.cygnus.com>
456 * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
459 2000-05-01 Richard Henderson <rth@cygnus.com>
461 * ifcvt.c (noce_emit_cmove): Conditionally compile call to
462 emit_conditional_move.
464 2000-05-01 Jakub Jelinek <jakub@redhat.com>
466 * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
467 as the dynamic linker.
469 2000-05-01 Zack Weinberg <zack@wolery.cumb.org>
471 * cppfiles.c (open_include_file): Open file in blocking mode.
472 (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
473 Only exclude block devices and directories.
475 * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
476 static. Allocate the hashnode and its string in the same
478 (del_HASHNODE): Don't free h->name.
479 (_cpp_lookup): If there is no entry for this string, create
481 (_cpp_lookup_slot): Delete.
482 * cpphash.h: Update prototypes.
484 * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
486 * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
487 do_unassert, cpp_defined): Use _cpp_lookup. Don't create a
488 node here, just fill in the value field properly. "Delete"
489 entries by setting the value field to T_VOID. Check for
490 hp->type == T_VOID, not hp == NULL.
492 * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
493 * cpperror.c, cppexp.c, cpplex.c, cpplib.c: Don't include
496 2000-05-01 Alexandre Oliva <aoliva@cygnus.com>
498 * config/mn10300/mn10300.c (print_operand_address): Do not add
501 * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
502 adjusted by less than 256 bytes, use ret regardless of having any
503 callee-saved register to restore.
505 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
507 * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
509 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
511 * config/i386/djgpp.h (INT_ASM_OP): Define.
512 (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
513 (ASM_WEAKEN_LABEL): Define.
514 (MASK_BNU210): Define.
515 (SUBTARGET_SWITCHES): Define.
516 (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
517 (MAKE_DECL_ONE_ONLY): Define.
518 (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
520 2000-05-01 Mumit Khan <khan@xraylith.wisc.edu>
522 * i386/cygwin.h (INT_ASM_OP): Define.
524 Mon May 1 18:20:06 2000 Denis Chertykov <denisc@overta.ru>
526 * config/avr/avr.c (address_cost): renamed to avr_address_cost.
527 * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
529 Mon May 1 17:50:44 2000 Denis Chertykov <denisc@overta.ru>
531 * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
532 __tmp_reg__ and __zero_reg__ initialization.
534 2000-04-30 Richard Henderson <rth@cygnus.com>
536 * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
538 * ifcvt.c (noce_process_if_block): Fail the conversion if X is
539 referenced bewteen the condition and the jump. Don't delete
540 anything but the jump.
542 Sun Apr 30 22:48:24 2000 Jason Eckhardt <jle@cygnus.com>
544 * bb-reorder.c (scope_def): New struct.
545 (scope_forest_info): New struct.
546 (struct reorder_block_def): New member "scope".
547 (REORDER_BLOCK_SCOPE): New macro.
548 (relate_bbs_with_scopes): New function and prototype.
549 (make_new_scope): Likewise.
550 (build_scope_forest): Likewise.
551 (remove_scope_notes): Likewise.
552 (insert_intra_1): Likewise.
553 (insert_intra_bb_scope_notes): Likewise.
554 (insert_inter_bb_scope_notes): Likewise.
555 (rebuild_scope_notes): Likewise.
556 (free_scope_forest_1): Likewise.
557 (free_scope_forest): Likewise.
558 (dump_scope_forest): Likewise.
559 (dump_scope_forest_1): Likewise.
560 (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
561 Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
563 (reorder_basic_blocks): Added calls to build_scope_scope_forest
564 and remove_scope_notes before reordering is done. Added calls to
565 rebuild_scope_notes, free_scope_forest, and reorder_blocks after
566 after reordering is done.
568 2000-40-30 Bruce Korb <bkorb@gnu.org>
570 * fixinc/inclhack.def: Added definitions needed by OSR5,
571 removed two stale entries (defined away with OLD_CPP).
572 * fixinc/inclhack.sh: regen
573 * fixinc/fixincl.x: regen
575 2000-04-30 Richard Henderson <rth@cygnus.com>
577 * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
578 from the last insn in the sequence.
580 2000-04-30 Zack Weinberg <zack@wolery.cumb.org>
582 * cpplex.c (cpp_idcmp): New function.
583 * cpplib.h: Prototype it.
584 * scan_decls.c (scan_decls): Use it to inspect token names.
585 * fix-header.c (read_scan_file): Likewise. Set system_header_p on
586 the file being run through the preprocessor.
587 (check_macro_names): Provide length of token to cpp_defined.
589 * Makefile.in: Remove stale warning message.
591 * cppfiles.c (redundant_include_p): Provide length of token to
593 * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
594 values are unsigned int.
595 (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
596 (_cpp_lookup_slot): Do not calculate the hash, either.
597 * cpphash.h: Update prototypes.
598 * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
599 Hashes are unsigned int. Calculate hash here, pass by value
602 2000-04-30 Bernd Schmidt <bernds@cygnus.co.uk>
604 * simplify-rtx.c (check_value_useless): Delete function.
605 (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
607 (cselib_invalidate_regno): Likewise.
608 (cselib_invalidate_mem_1): Likewise.
609 (references_value_p): Recognize useless values by the fact that they
611 (discard_useless_values): Likewise.
612 (cselib_record_set): This may turn a useless value
615 2000-04-30 Richard Henderson <rth@cygnus.com>
617 * config/d30v: New port.
619 * configure.in (d30v-*): Set fp format.
620 * configure: Rebuild.
622 2000-04-30 Richard Henderson <rth@cygnus.com>
625 * Makefile.in (OBJS): Add it.
626 (ifcvt.o): New target.
627 * jump.c (jump_optimize_1): Remove all code related to if-conversion,
628 and conditional arithmetic.
629 (find_insert_position): Remove.
630 * timevar.def (TV_IFCVT, TV_IFCVT2): New.
631 * toplev.c (DFI_ce, DFI_ce2): New.
632 (dump_file): Add ce and ce2 dumps.
633 (rest_of_compilation): Run if_convert a couple o times. Set
634 cse_not_expected after cse2. Don't set no_new_pseudos until
635 after sched1 or recompute_reg_usage.
637 2000-04-30 Richard Henderson <rth@cygnus.com>
639 * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
640 (crtend.o, crtbeginS.o, crtendS.o): Likewise.
642 2000-04-30 Richard Henderson <rth@cygnus.com>
644 * flow.c (struct reg_cond_life_info): New.
645 (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
646 (init_propagate_block_info): Initialize them.
647 (free_propagate_block_info): Destruct them.
648 (mark_set_1): Consider conditional life before killing a register.
649 (mark_regno_cond_dead): New.
650 (free_reg_cond_life_info): New.
651 (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
652 (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
653 (mark_used_reg): Record conditional life.
655 * haifa-sched.c (schedule_insns): Disable death counting
656 sanity check for HAVE_conditional_execution.
658 2000-04-30 Richard Henderson <rth@cygnus.com>
660 * Makefile.in (TIMEVAR_H): New.
661 (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
662 (timevar.h): Remove rule.
664 2000-04-29 Richard Henderson <rth@cygnus.com>
666 * config/alpha/crtend.asm: Use C comments instead of #.
667 * config/alpha/crtbegin.asm: Likewise. Mark __dso_handle hidden.
669 * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
671 2000-04-29 Zack Weinberg <zack@wolery.cumb.org>
673 * cpphash.h (enum node_type: Take out T_MCONST.
674 (union hashval): Move into struct hashnode.
675 (struct hashnode): Pack tighter. Remove file, line, col
677 * cpphash.c: Constify most of the macro-definition structures.
678 (struct definition): Replace by struct object_defn
679 and struct funct_defn. Put file, line, column information
680 here. All users updated to match.
681 (_cpp_create_definition, _cpp_macroexpand): Remove special
682 case for #define WORD OTHERWORD.
683 * cpplib.c (do_undef): Remove T_MCONST case.
685 * cpphash.h: Move struct reflist, struct definition, and the
686 DEFINITION typedef to cpphash.c. Use 'struct definition *' in
687 union hashval. _cpp_free_definition takes a HASHNODE pointer.
688 * cpphash.c (_cpp_free_definition): Free data pointed to by
689 MCONST, XCONST, MACRO, and FMACRO nodes properly.
690 (_cpp_create_definition, del_HASHNODE): Just call
691 _cpp_free_definition to clear out a hashnode.
692 * cpplib.c (do_pragma_poison): Likewise.
694 Sat Apr 29 12:25:17 2000 Alexandre Oliva <aoliva@cygnus.com>
696 * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
697 LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
698 FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
699 (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
700 (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
701 REGNO_AM33_P): Redefine in terms of the new macros.
702 (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
703 (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
704 STRUCT_VALUE): Likewise.
705 (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
706 ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise. Moved.
708 Sat Apr 29 01:18:45 MET DST 2000 Jan Hubicka <jh@suse.cz>
710 * regmove.c (struct record_stack_memrefs_data): New.
711 (record_stack_memrefs): New function.
712 (combine_stack_adjustments_for_block): Use it.
714 Sat Apr 29 01:15:27 MET DST 2000 Jan Hubicka <jh@suse.cz>
716 * calls.c (calls_function_1): Propertly handle TREE_LIST expressions;
717 use special_function_p to detect alloca.
719 Fri Apr 28 16:30:33 2000 Marc Espie <espie@cvs.openbsd.org>
721 * gcc.texi: Fixes for makeinfo 4.0 --html.
723 2000-04-28 Zack Weinberg <zack@wolery.cumb.org>
725 * pcp.h: Delete file.
727 2000-04-28 Kazu Hirata <kazu@hxi.com>
729 * h8300.c (function_epilogue): Clean up flags when the last insn
730 in a function is a barrier.
732 2000-04-28 Chris Demetriou <cgd@sibyte.com>
734 * configure.in (sparc-hal-solaris2*): protect [] glob from
736 (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
737 rather than hard-coded constants in target_cpu_default2.
738 * configure: Regenerate.
740 2000-04-28 Jason Merrill <jason@casey.cygnus.com>
742 * tree.c (get_callee_fndecl): Extract the initial value from
745 2000-04-28 Richard Henderson <rth@cygnus.com>
747 * varasm.c (record_constant_1): Record the CODE_LABEL when
748 taking the address of a LABEL_REF.
750 2000-04-28 Richard Henderson <rth@cygnus.com>
751 Jan Hubicka <jh@suse.cz>
753 * calls.c (combine_pending_stack_adjustment_and_call): Return the
754 adjustment; don't do the stack adjust.
755 (expand_call): Call compute_argument_block_size right before
756 allocating the block; update comment; don't do alignment sanity
757 checking for sibling call; use args_size instead of
758 unadjusted_args_size before args_size is adjusted. Use
759 combine_pending_stack_adjustment_and_call to compute stack adjust
760 for must_preallocate case.
762 * expr.c (push_block): Remove shadow `temp' in inner scope.
764 2000-04-28 Jason Merrill <jason@casey.cygnus.com>
766 * toplev.c (rest_of_compilation): Call
767 note_deferral_of_defined_inline_function even if the function
770 2000-04-28 Scott Bambrough <scottb@netwinder.org>
772 * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
774 2000-04-28 Richard Henderson <rth@cygnus.com>
776 * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
778 2000-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
780 * timevar.c (init_timevar): DeANSIfy function definition.
782 2000-04-27 Alex Samuel <samuel@codesourcery.com>
784 * Makefile.in (timevar.o): Depend on flags.h.
785 * timevar.c (unused_stack_instances): New variable.
786 (timevar_push): Take a timevar_stack_def from
787 unused_stack_instances if available.
788 (timevar_pop): Push the popped timevar_stack_def onto
789 unused_stack_instances.
790 (TIMEVAR_ENABLE): New macro.
791 (timevar_def): Make standalone a 1-bit field. Add field used.
792 (get_time): Rename parameter to now. Return after clearing it if
794 (init_timevar): Do nothing if not TIMEVAR_ENABLE.
795 (timevar_pop): Likewise.
796 (timevar_stop): Likewise.
797 (timevar_push): Likewise. Mark the timing variable as used.
798 (timevar_start): Likewise.
799 (timevar_print): Do nothing if not TIMEVAR_ENABLE. Don't print
800 timevars that were never used.
802 2000-04-27 Mark Mitchell <mark@codesourcery.com>
804 * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
805 always TREE_READONLY.
807 2000-04-27 Ulrich Drepper <drepper@cygnus.com>
809 * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
810 for call instruction with mode QImode.
812 2000-04-27 Alex Samuel <samuel@codesourcery.com>
814 * Makefile.in (OBJS): Add timevar.o.
815 (toplev.o): Depend on timevar.h.
816 (ggc-simple.o): Likewise.
817 (ggc-page.o): Likewise.
818 (timevar.o): New rule.
819 (timevar.h): New rule.
821 * timevar.h: New file.
822 * timevar.c: Likewise.
823 * timevar.def: Likewise.
825 * toplev.h (gc_time, parse_time, varconst_time): Remove.
826 * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
828 (TIMEVAR): Remove macro.
829 (gc_time, parse_time, varconst_time, integration_time, jump_time,
830 cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
831 flow_time, combine_time, regmove_time, sched_time,
832 local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
833 sched2_time, dbr_sched_time, reorder_blocks_time,
834 rename_registers_time, shorten_branch_time, stack_reg_time,
835 to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
837 (compile_file): Don't initialize time variables. Call
838 init_timevar and start TV_TOTAL timer. Call timevar_print instead
839 of many calls to print_time.
840 (rest_of_compilation): Add timing for reload_cse_regs.
841 (get_run_time): Removed to timevar.c.
842 (print_time): Likewise.
843 (get_run_time): Implement using TV_TOTAL time variable.
844 (print_time): Get total run time from get_run_time.
845 * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
846 computing elapsed time explicitly.
847 * ggc-simple.c (ggc_collect): Likewise.
848 (gc_time): Remove declaration.
850 2000-04-27 Mark Mitchell <mark@codesourcery.com>
852 * calls.c (combine_pending_stack_adjustment_and_call): New function.
853 (expand_call): Use it.
855 2000-04-27 Jan Hubicka <jh@suse.cz>
857 * flow.c (mark_set_1): Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
860 Thu Apr 27 12:47:00 2000 Alexandre Oliva <aoliva@cygnus.com>
862 * config/mn10300/mn10300.md (movhi): Simplify. Prefer data
865 Thu Apr 27 17:33:05 MET DST 2000 Jan Hubicka <jh@suse.cz>
867 * function.c (epilogue_done): Pass whole insn to record_insns.
869 Thu Apr 27 16:55:28 MET DST 2000 Jan Hubicka <jh@suse.cz>
871 * cse.c (CSE_ADDRESS_COST): Remove.
872 (find_best_addr): Add new parameter "MODE", use address_cost instead
875 (fold_rtx): Update call of find_best_addr.
876 * rtl.h (address_cost): Declare.
877 * loop.c (general_induction_var): Add new parameter "MODE", use
878 address_cost instead of ADDRESS_COST
879 (init_loop): Use address_cost instead of ADDRESS_COST.
880 (check_insn_for_givs): Update call of general_induction_var.
881 (find_mem_givs): Likewise.
882 (consec_sets_giv): Likewise.
883 * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
884 * i386.c (ix86_address_cost): New.
885 * i386-protos.h (ix86_address_cost): Declare.
887 Thu Apr 27 11:45:16 2000 Alexandre Oliva <aoliva@cygnus.com>
889 * config/mn10300/mn10300.md (movqi): Simplify. Prefer data
892 Thu Apr 27 16:11:00 MET DST 2000 Jan Hubicka <jh@suse.cz>
894 * expr.c (store_expr): Use clear_storage instead of direct memset
897 Thu Apr 27 10:36:51 2000 Alexandre Oliva <aoliva@cygnus.com>
899 * config/mn10300/mn10300.c (mn10300_address_cost): Test
900 ASHIFT, AND and LABEL_REF.
902 Thu Apr 27 15:08:46 MET DST 2000 Jan Hubicka <jh@suse.cz>
904 * invoke.texi (-foptimize-sibling-calls): Fix.
906 Thu Apr 27 14:54:22 MET DST 2000 Jan Hubicka <jh@suse.cz>
908 * loop.c (load_mems) Don't use hard registers for the hoisting.
910 * unroll.c (unroll_loop): Avoid overflow in the n_iterations
911 calculation; rename const_equiv array in the preconditioning code
912 from loop_unroll to loop_unroll_precondition
914 2000-04-27 Richard Henderson <rth@cygnus.com>
916 * flow.c (struct propagate_block_info): Remove new_dead, new_live;
918 (propagate_one_insn): Clear it. Don't update reg_live here.
919 (init_propagate_block_info): Update for pbi member changes.
920 (free_propagate_block_info): Likewise.
921 (mark_set_1): Know that zero_extract, sign_extract, and
922 strict_low_part don't kill their argument. Alter hard subregs.
923 Update new_set for non-CLOBBER sets. Update reg_live.
924 (find_auto_inc): Update reg_live, not new_dead.
925 (mark_used_reg): Update reg_live, not new_live. Examine new_set
926 to determine if the reg in question was set this insn. Only update
927 reg info with PROP_REG_INFO.
929 2000-04-26 Richard Henderson <rth@cygnus.com>
931 * flow.c (allocate_reg_life_data): Set max_regno here ...
932 (life_analysis): ... not here.
934 * flow.c (calculate_global_regs_live): Force stack pointer
937 2000-04-26 Richard Henderson <rth@cygnus.com>
939 * jump.c (redirect_exp_1): Rework from old redirect_exp. Never
940 commit change group changes.
941 (invert_exp_1): Similarly.
942 (redirect_exp, invert_exp): Use them.
943 (redirect_jump_1): New.
944 (invert_jump_1): New.
945 (jump_optimize_1): Remove code subsumed by condexec.c.
946 * rtl.h (invert_jump_1, redirect_jump_1): Declare.
948 2000-04-26 Richard Henderson <rth@cygnus.com>
950 * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
952 * genconfig.c (main): Set all HAVE_foo to 1.
954 * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
956 2000-04-26 Alex Samuel <samuel@codesourcery.com>
958 * invoke.texi: Document -fssa flag.
960 2000-04-26 Richard Henderson <rth@cygnus.com>
962 * flow.c (count_reg_sets_1): Remove.
963 (count_reg_sets, count_reg_references): Remove.
964 (recompute_reg_usage): Implement with update_life_info.
965 Reallocate life data.
967 2000-04-26 Richard Henderson <rth@cygnus.com>
969 * flow.c (update_life_info): Consider blocks null to mean the
971 (calculate_global_regs_live): Likewise.
972 (life_analysis): Do that instead of collecting all_blocks.
974 2000-04-26 Richard Henderson <rth@cygnus.com>
976 * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
977 a still-valid conditional jump.
979 2000-04-26 Richard Henderson <rth@cygnus.com>
981 * jump.c (invert_jump): Always invert REG_BR_PROB. Do it correctly.
983 * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
984 * flow.c (calculate_loop_depth): Remove.
985 * output.h (calculate_loop_depth): Don't declare.
986 * toplev.c (rest_of_compilation): Expand calculate_loop_depth
987 inline; run estimate_probability at the same time.
989 2000-04-26 Neil Booth <NeilB@earthling.net>
991 * cpplib.h: "~=" is not a single pp-token.
992 * cpplex.c: Correct commentary.
994 2000-04-26 Richard Henderson <rth@cygnus.com>
996 * flow.c (mark_set_1): New arguments code and flags; update all
997 callers. Track regno_first and regno_last; do HARD_REGNO_NREGS
998 test in one place. Tidy flags tests. Don't bias REG_N_REFS by
999 loop_depth when optimizing for size. Do new_dead update after
1000 emitting REG_UNUSED notes. Merge mark_set_reg code.
1001 (mark_set_reg): Remove.
1002 (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
1003 arrange to not emit REG_UNUSED notes.
1005 2000-04-26 Richard Henderson <rth@cygnus.com>
1007 * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
1008 * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
1010 2000-04-26 Richard Henderson <rth@cygnus.com>
1012 * flow.c (propagate_one_insn): Break out from propagate_block.
1013 (init_propagate_block_info): Likewise.
1014 (free_propagate_block_info): Likewise.
1015 (propagate_block): Use them. Export.
1016 * basic-block.h: Declare them all.
1018 2000-04-26 Richard Henderson <rth@cygnus.com>
1020 * basic-block.h (life_analysis): Declare here ...
1021 * output.h: ... not here.
1022 * flow.c (life_analysis): Remove nregs parameter; replace
1023 remove_dead_code with flags. Remove ssa dead code check.
1024 Only init alias analysis if we'll use it.
1025 * reg-stack.c (reg_to_stack): Update life_analysis arguments.
1026 * ssa.c (convert_to_ssa): Likewise.
1027 (convert_from_ssa): Likewise.
1028 * toplev.c (rest_of_compilation): Likewise.
1030 2000-04-26 Richard Henderson <rth@cygnus.com>
1032 * flow.c (flow_delete_block): Rename from delete_block. Export.
1033 * basic-block.h (flow_delete_block): Declare.
1035 2000-04-26 David S. Miller <davem@redhat.com>
1037 * optabs.c (emit_libcall_block): Verify insns with INSN_P before
1038 taking a PATTERN of it.
1040 2000-04-26 <NeilB@earthling.net>
1042 * cpplex.c (spell_other, spell_char): Remove.
1044 (token_spelling, trigraph_map): Use unsigned chars.
1045 (_cpp_lex_line): Tidy up the switch statement.
1046 * cpplib.h: Implement spell_char with spell_string.
1049 2000-04-26 <RodneyBrown@pmsc.com>
1051 * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
1052 * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
1054 2000-04-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1056 * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
1057 reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
1058 dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
1059 dwarf2out_return_save, dwarf2out_return_reg,
1060 dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
1061 add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
1062 gen_compile_unit_die, dwarf2out_init): Constify a char*.
1064 * dwarf2out.h (dwarf2out_init): Likewise.
1066 * dwarfout.c (filename_entry, primary_filename, last_filename,
1067 type_tag, output_compile_unit_die, dwarfout_init): Likewise.
1069 * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
1070 dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
1071 dwarf2out_return_reg): Likewise.
1073 2000-04-26 Andreas Jaeger <aj@suse.de>
1075 * extend.texi (Function Attributes): Fix description of pure
1078 2000-04-26 Jason Merrill <jason@casey.cygnus.com>
1080 * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
1081 before calling rest_of_compilation.
1083 2000-04-26 Andreas Jaeger <aj@suse.de>
1085 * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
1088 2000-04-25 Richard Henderson <rth@cygnus.com>
1090 * cse.c (cse_insn): Emit barrier after unconditional jump.
1092 * calls.c (expand_call): Disable tail call generation once
1093 rtx_equal_function_value_matters is false.
1095 * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
1098 2000-04-25 Jason Merrill <jason@casey.cygnus.com>
1100 * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
1102 * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
1104 * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
1105 is the primary DIE for a member function.
1106 (gen_decl_die): Call set_decl_origin_self here.
1107 * dwarfout.c (output_decl): And here.
1108 * integrate.c (output_inline_function): Not here.
1109 Don't clear DECL_INLINE until after calling rest_of_compilation.
1110 (set_decl_origin_self): No longer static.
1111 * tree.h: Add prototype.
1112 * toplev.c (note_deferral_of_defined_inline_function): Only write
1113 out abstract instance for actual inlines.
1115 2000-04-25 Alexandre Oliva <aoliva@cygnus.com>
1117 * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
1118 EXTENDED_REGS only if TARGET_AM33.
1119 * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
1120 SP_REGS to register allocation and reloading unless absolutely
1122 (movsi3): Remove special-case of adding non-constants to SP.
1124 2000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1126 * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
1127 INCLUDES to search and does not provide any of its own. Also it
1128 now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
1129 parameters. Also it does not call AC_DEFINE.
1130 (gcc_AC_NEED_DECLARATIONS): Likewise. Also this macro now calls
1131 AC_DEFINE and provides for automatic entries for autoheader.
1132 (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
1134 * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
1135 so we can pass -I flags and include gansidecl.h/system.h in this
1138 * acconfig.h: Delete all NEED_DECLARATION_* entries.
1140 2000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1142 * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
1143 ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
1144 ENABLE_GC_ALWAYS_COLLECT): Delete entries.
1146 * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
1147 ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
1148 ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
1149 for these macros. Clean up spacing and linewraps.
1151 2000-04-26 Jason Merrill <jason@casey.cygnus.com>
1153 * calls.c (expand_call): Use get_callee_fndecl.
1155 * print-tree.c (print_node): Print the chain of an _EXPR.
1157 Tue Apr 25 16:16:04 2000 Andrew MacLeod <amacleod@cygnus.com>
1158 Jim Wilson <wilson@cygnus.com>
1159 Andrew Haley <aph@cygnus.com>
1161 * config/ia64/crtbegin.asm: Add IA-64 unwind support. Correct alloc
1162 and gp save/restore problems.
1163 * config/ia64/crtend.asm: Add IA-64 unwind support.
1164 * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
1165 in fr_pad_size calculation.
1166 (save_restore_insns): Move PR save area. Correct uses of
1167 RTX_FRAME_RELATED_P.
1168 (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
1169 (ia64_expand_epilogue): Add eh_epilogue support.
1170 (ia64_function_prologue): Emit .prologue directive.
1171 (ia64_init_machine_status, ia64_mark_machine_status): New functions.
1172 (ia64_override_options): Set init_machine_status and
1173 mark_machine_status.
1174 (rtx_needs_barrier): Handle bsp reads and writes.
1175 (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
1176 New static variables.
1177 (process_set, process_for_unwind_directive): New functions.
1178 * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
1179 ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
1180 ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
1182 (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
1183 (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
1184 (struct machine_function): Define.
1185 * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
1187 2000-04-25 Bruce Korb <bkorb@gnu.org>
1189 * fixinc/Makefile.in: make the removal of old programs more
1191 * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
1192 install-bin and install-sh
1194 2000-04-25 Nick Clifton <nickc@cygnus.com>
1196 * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
1197 defined, define to return zero.
1198 (function_cannot_inline_p): If a function has any target
1199 specific attributes, then use the macro
1200 FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
1201 whether it can be inlined. If it cannot, issue a suitable
1204 * tm.texi: Add a new node 'Inlining' to document the new macro
1205 FUNCTION_ATTRIBUTE_INLINABLE_P.
1207 2000-04-25 Zack Weinberg <zack@wolery.cumb.org>
1209 * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
1212 2000-04-25 Neil Booth <NeilB@earthling.net>
1214 Restore previous patch, plus the following fixes:
1216 * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
1217 flags, not CPP_OPEN_PAREN.
1218 * cpplex.c (expand_token_space, init_token_list,
1219 cpp_free_token_list): Put the dummy token at list->tokens[-1].
1220 (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
1222 Tue Apr 25 14:06:40 2000 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
1224 * config/i386/freebsd.h (INT_ASM_OP): Define.
1226 Tue Apr 25 14:51:07 MET DST 2000 Jan Hubicka <jh@suse.cz>
1228 * loop.c (strength_reduce): Fix typo in the last checkin.
1230 Tue Apr 25 07:33:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1232 * stor-layout.c (finalize_record_size): Simplify to use existing
1234 (compute_record_mode): No longer static.
1235 * tree.h (compute_record_mode): New declaration.
1237 2000-04-25 Neil Booth <NeilB@earthling.net>
1239 * Revert my patch below until cause of build failures
1242 2000-04-25 Richard Henderson <rth@cygnus.com>
1244 * combine.c (combine_instructions): Add missing argument
1247 * toplev.c (rest_of_compilation): Delay sibcall optimization
1248 until after emit_eh_context.
1250 2000-04-24 Nick Clifton <nickc@redhat.com>
1252 * combine.c (combine_instructions): Do not try to combine a
1253 sequence of insns when the second insn has been replaced by a
1256 Mon Apr 24 17:34:18 2000 Mumit Khan <khan@xraylith.wisc.edu>
1258 * gcc.c (load_specs): New static function.
1259 (read_specs): Use it.
1261 * gcc.c (lookup_compiler): Make multiple passes for case
1262 insensitive filesystems.
1264 2000-04-24 Neil Booth <NeilB@earthling.net>
1266 * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
1267 * cpphash.h (_cpp_check_directive): new.
1268 * cpplex.c (handle_newline, cpp_free_token_list,
1269 init_trigraph_map, trigraph_ok, trigraph_replace,
1270 backslash_start, skip_block_comment, skip_line_comment,
1271 skip_whitespace, parse_name, parse_number, parse_string,
1272 copy_comment, _cpp_lex_line, spell_char, spell_string,
1273 spell_comment, spell_name, spell_other, _cpp_lex_file,
1274 _cpp_output_list): new.
1275 (expand_name_space): take length argument.
1276 (init_token_list): add comment list initialisation.
1277 (cpp_scan_line): use auto_expand_name_space. PREV_WHITESPACE
1278 instead of HSPACE_BEFORE.
1280 * cpplib.c (_cpp_check_directive): new
1281 * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
1282 DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
1283 (HSPACE_BEFORE): delete.
1284 (TTYPE_TABLE): rearrange.
1285 (struct cpp_toklist): update.
1287 2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1289 * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
1290 gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
1291 argument form of AC_DEFINE.
1293 * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
1294 HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
1295 WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
1296 HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
1297 HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
1299 * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
1301 2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1303 * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
1304 deduced.h): Use -isystem, not -I, for including system headers.
1306 2000-04-24 Nick Clifton <nickc@cygnus.com>
1308 * config/fr30/fr30.md (addsi3): Do not use small add instruction if
1309 the source register is the frame pointer or arg pointer.
1310 (addsi3_small_int): Disallow if source register is the frame
1311 pointer or arg pointer.
1313 2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1315 * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
1316 call to AC_MSG_RESULT.
1318 2000-04-24 Martin v. Löwis <loewis@informatik.hu-berlin.de>
1320 * invoke.texi: Correct grammatical errors, document
1321 -fno-gnu-keywords as identical to -fno-asm for C++.
1323 2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1325 * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
1326 GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
1327 GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
1328 AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
1329 EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
1331 * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
1332 GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
1333 GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
1334 GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
1337 2000-04-24 Mumit Khan <khan@xraylith.wisc.edu>
1339 * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
1340 (pop_alignment): Likewise.
1341 (handle_pragma_token): Likewise.
1343 2000-04-24 Robert Lipe <robertlipe@usa.net>
1345 * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
1347 2000-04-24 Hiroyuki Machida <machida@sm.sony.co.jp>
1349 * combine.c (try_combine): Update reg_nonzero_bits of
1350 newi2pat before newpat.
1352 Mon Apr 24 10:19:48 MET DST 2000 Jan Hubicka <jh@suse.cz>
1354 * loop.c (strength_reduce): Simplify test to INSN_P.
1355 (record_giv): Attempt to simplify the add value, use CONSTANT_P
1356 expressions instead of CONST_INT.
1357 (express_from_1): Likewise.
1359 2000-04-24 Mark Mitchell <mark@codesourcery.com>
1361 * regs.h (reg_n_max): Don't declare.
1362 * flow.c (reg_n_max): Don't define.
1363 * regclass.c (renumber): Don't initialize to zero.
1364 (regno_allocated): Likewise.
1365 (reg_n_max): Define.
1366 (allocate_reg_info): Don't initialize unnecessarily.
1368 Mon Apr 24 00:21:36 2000 Jeffrey A Law (law@cygnus.com)
1370 * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
1371 and blockage_p in the newly allocated attribute.
1373 Sun Apr 23 20:16:49 2000 Alexandre Oliva <aoliva@cygnus.com>
1375 * config/mn10300/mn10300.md (addsi): `inc4' on address
1376 registers does not modify cc, but `inc' on an extended
1379 Sun Apr 23 16:24:35 2000 Denis Chertykov <denisc@overta.ru>
1381 * reload.c (find_equiv_reg): Checks all valueno regs
1382 as a reload_reg_p regs.
1384 2000-04-23 Zack Weinberg <zack@wolery.cumb.org>
1386 * cpphash.c (collect_objlike_expansion): Add sanity check.
1387 (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST. If
1388 the buffer is the empty string, return. Mark __DATE__ and
1389 __TIME__ as XCONST nodes, not MCONST.
1390 (_cpp_macroexpand): Avoid pushing an empty buffer.
1391 (funlike_macroexpand): Don't pop token_buffer here.
1393 Sun Apr 23 18:37:53 2000 Alexandre Oliva <aoliva@cygnus.com>
1395 * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
1396 (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
1397 (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
1398 (REGNO_OK_FOR_BASE_P): Define in terms of them.
1399 (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
1400 (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
1401 (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
1403 Sun Apr 23 22:23:08 MET DST 2000 Jan Hubicka <jh@suse.cz>
1405 * loop.c (simplify_giv_expr): Be more agressive on simplifying
1408 2000-04-23 Zack Weinberg <zack@wolery.cumb.org>
1410 * cpphash.h (struct definition): Move file, line, col members...
1411 (struct hashnode): ... here. Also add 'disabled' flag.
1412 (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
1413 T_IDENTITY. Remove T_DISABLED.
1416 * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
1417 (collect_expansion): Split into collect_objlike_expansion and
1418 collect_funlike_expansion.
1419 (_cpp_macroexpand): Split out scan_arguments, stringify, and
1420 funlike_macroexpand.
1421 (_cpp_compare_defs): Rename compare_defs, make static.
1422 (_cpp_make_hashnode): Initialize hp->disabled.
1423 (macro_cleanup): Adjust for new token types. Clear
1425 (_cpp_create_definition): Move code here to determine what
1426 sort of macro it is, and code to check for redefinitions, from
1427 do_define. Implement a few simple cases without creating a
1429 (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
1430 Handle the simple cases.
1431 (push_macro_expansion): Set buf->has_escapes and hp->disabled
1434 * cppinit.c (builtin_array): Change MCONST to XCONST
1436 * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
1437 fix check for disabled and function-like macros.
1438 * cpplib.c (do_define): Move most logic to
1439 _cpp_create_definition.
1440 (do_undef): Handle new special token types.
1442 Sun Apr 23 14:27:44 MET DST 2000 Jan Hubicka <jh@suse.cz>
1444 * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
1445 of CONSTANT_P for mult_val; always use validate_change to update insn.
1447 2000-04-22 Zack Weinberg <zack@wolery.cumb.org>
1449 * cpphash.c (trad_stringify, add_pat): New functions.
1450 (collect_expansion): Restore support for -traditional syntax.
1451 Use trad_stringify and add_pat.
1452 (_cpp_macroexpand): Restore support for -traditional semantics.
1453 * cpplex.c (_cpp_scan_line): Don't change space_before if we
1454 get a COMMENT token.
1455 (_cpp_lex_token): Provide COMMENT tokens to caller if
1456 traditional and parsing_define_directive.
1457 (skip_comment): Warn about // comments if -Wtraditional.
1458 * cpplib.c (do_define): Fix typo. Create EMPTY nodes with
1460 (do_undef): Don't warn about undefining EMPTY nodes.
1462 Sat Apr 22 22:35:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
1464 * loop.c (strength_reduce): Fix biv removal code.
1466 2000-04-22 Richard Henderson <rth@cygnus.com>
1468 * predict.c (estimate_probability): Examine both sides of
1469 a branch for no exits. Use 90% not 50% for predict taken.
1470 Reorg for one copy of note generation code.
1472 2000-04-22 Richard Henderson <rth@cygnus.com>
1474 * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
1476 2000-04-22 Richard Henderson <rth@cygnus.com>
1478 * diagnostic.c (init_output_buffer): Don't initialize format_args.
1479 (output_clear): Likewise.
1480 (output_printf): Use va_copy.
1481 (vline_wrapper_message_with_location): Likewise.
1482 (v_message_with_decl): Likewise.
1483 (line_wrapper_printf): VA_START infor buffer.format_args directly.
1484 * system.h (va_copy): Provide default implementation.
1486 2000-04-22 Richard Henderson <rth@cygnus.com>
1488 * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
1489 the collected condition is not a constant.
1491 2000-04-22 Gabriel Dos Reis <gdr@codesourcery.com>
1493 * diagnostic.h: New file.
1495 * Makefile.in (diagnostic.o): Depends on diagnostic.h
1497 * diagnostic.c: Tweak. Rationalize the output logic. Adjust
1498 various function prototypes.
1499 (diagnostic.h): #include.
1500 (struct output_buffer): Move into diagnostic.h.
1501 (get_output_prefix): Rename to output_get_prefix. Export.
1502 (init_output_buffer): Export. Break out. Ajust intialization.
1503 (output_space_left, output_append): Export.
1504 (output_newline): Rename to output_add_newline. Export.
1505 (output_clear): Nullify additional output_buffer fields.
1506 (output_puts): Rename to output_add_string. Export.
1507 (dump_output): Rename to output_flush_on. Export.
1508 (build_location_prefix): Constify return-type.
1509 (emit_output_prefix): Rename to output_emit_prefix. Export.
1510 (set_real_maximum_length): New function.
1511 (output_set_maximum_length): Ditto
1512 (output_clear): Ditto.
1513 (output_add_character): Ditto.
1514 (output_add_integer): Ditto.
1515 (output_add_space): Ditto.
1516 (output_format): Ditto.
1517 (output_printf): Adjust buffer initialization.
1518 (vline_wrapper_message_with_location): Ditto.
1519 (v_message_with_decl): Ditto. Adjust call to output_puts
1520 and get_output_prefix.
1521 (default_print_error_function): Adjust buffer intialization.
1523 Sat Apr 22 06:45:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1525 * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
1528 Fri Apr 21 18:33:09 2000 Alexandre Oliva <aoliva@cygnus.com>
1530 * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
1533 Fri Apr 21 18:30:00 2000 Alexandre Oliva <aoliva@cygnus.com>
1535 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
1536 accurate data about SP moves.
1538 Fri Apr 21 18:28:28 2000 Alexandre Oliva <aoliva@cygnus.com>
1540 * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
1541 aliases to AM33 registers.
1543 Fri Apr 21 18:26:17 2000 Alexandre Oliva <aoliva@cygnus.com>
1545 * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
1546 to all EXTENDED bitmaps.
1548 Fri Apr 21 18:17:12 2000 Alexandre Oliva <aoliva@cygnus.com>
1550 * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
1551 * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
1552 * config/mn10300/mn10300.c (mn10300_address_cost): New function.
1554 Fri Apr 21 18:11:56 2000 Alexandre Oliva <aoliva@cygnus.com>
1556 * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
1557 the operand is not constant.
1559 Fri Apr 21 14:58:29 2000 Denis Chertykov <denisc@overta.ru>
1561 * reload.c (find_equiv_reg): Checks all valueno and regno regs
1562 as a call-clobbered regs.
1564 Fri Apr 21 13:30:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1566 * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
1568 * rtl.def: Update comment.
1569 * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
1570 * integrate.c (expand_inline_function): Likewise.
1571 * profile.c (branch_prob): Likewise.
1572 * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
1573 * print-rtl.c (print_rtx): Likewise.
1574 * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
1575 (reemit_notes): Likewise; also use enum insn_note.
1577 * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
1578 (place_field): Properly compute know and actual alignment.
1580 * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
1583 * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
1586 2000-04-21 Zack Weinberg <zack@wolery.cumb.org>
1588 * cpphash.c (struct arg, struct arglist): Const-ify strings.
1589 (warn_trad_stringify, duplicate_arg_p): New helper functions.
1590 (collect_expansion): Rewrite to scan over a token list.
1591 Remove -traditional support.
1592 (collect_formal_parameters): Rename to collect_params; rewrite
1593 to scan over a token list.
1594 (_cpp_create_definition): Adjust to scan a token list.
1595 (_cpp_macroexpand): Remove -traditional support.
1596 (_cpp_compare_defs): Whitespace is now canonicalized.
1597 (comp_def_part): Delete function.
1599 * cpphash.h: Update prototypes.
1600 * cpplex.c (init_token_list): Don't set lineno if there is no
1602 (pedantic_whitespace): New function.
1603 (_cpp_scan_line): Mark tokens that had hspace before. Don't
1604 consume a newline. Use pedantic_whitespace.
1605 (_cpp_lex_token): Remove support for -traditional macros.
1606 (_cpp_get_define_token): Delete.
1607 (_cpp_get_directive_token): Do the real work here. Use
1608 pedantic_whitespace.
1609 (_cpp_init_input_buffer): Initialize pfile->directbuf.
1611 * cpplib.c (get_macro_name): Delete.
1612 (do_define): Read the entire line into pfile->directbuf, then
1613 feed the token list to _cpp_create_definition.
1614 * cpplib.h (HSPACE_BEFORE): new define.
1615 (struct cpp_reader): Add a toklist member, "directbuf".
1617 * predict.c (estimate_probability): New heuristic: if a jump
1618 branches around a block with no successors, predict it taken.
1619 Disentangle control flow.
1621 2000-04-20 Richard Henderson <rth@cygnus.com>
1623 * loop.c (emit_iv_add_mult): Revert last change.
1625 2000-04-20 Zack Weinberg <zack@wolery.cumb.org>
1627 * cpplib.h (enum cpp_ttype): Add token types for all
1628 punctuators. Distinguish pp-numbers from valid C numbers.
1629 Give some tokens better names. Initialize from macro.
1630 (struct cpp_name, cpp_token, cpp_toklist): New data
1633 * cpplex.c (bump_column, expand_name_space,
1634 expand_token_space, init_token_list, cpp_output_list,
1635 _cpp_scan_line): New functions.
1636 (output_line_command): Add third argument, new line number.
1637 * cpphash.h: Update prototypes.
1638 * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
1641 2000-04-20 Richard Henderson <rth@cygnus.com>
1643 * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
1645 2000-04-20 Zack Weinberg <zack@wolery.cumb.org>
1647 * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
1650 Thu Apr 20 14:19:18 MET DST 2000 Jan Hubicka <jh@suse.cz>
1652 * loop.c (emit_iv_add_mult): Simplify it's input and emit
1653 REG_EQUAL note explaining the calculated value.
1655 * calls.c (expand_call): Avoid unnecesary precalculation
1656 and outgoing parameters space guarding for sibling calls.
1657 (store_one_arg): Likewise.
1659 Thu Apr 20 08:01:07 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1661 * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
1662 (rest_of_compilation): Write sibling dump file and account
1663 for time as jump time.
1664 * invoke.texi: Update documentation on dump flags.
1666 2000-04-19 Marek Michalkiewicz <marekm@linux.org.pl>
1668 * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
1670 2000-04-19 Zack Weinberg <zack@wolery.cumb.org>
1672 * cpphash.c (special_symbol): Represent an empty macro with
1673 "\r \r " not just "\r ".
1674 (_cpp_macroexpand): Correct condition for the foo ( ) special
1676 (unsafe_chars): Handle EOF as second argument.
1677 (push_macro_expansion): Simplify test for removing escape at
1678 end. Do not trim both escapes if there is no text in between.
1680 2000-04-19 Jim Blandy <jimb@redhat.com>
1682 * dwarf2out.c (DWARF2_ADDR_SIZE): New macro. Use it instead
1683 of PTR_SIZE, when appropriate.
1685 2000-04-19 Mark Mitchell <mark@codesourcery.com>
1687 * system.h (ONLY_INT_FIELDS): Make sure it is defined.
1688 (USE_ENUM_BITFIELDS): Fix typo.
1690 Wed Apr 19 12:14:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1692 * stor-layout.c (place_field): Set rli->offset_align properly.
1694 2000-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1696 * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
1697 INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
1698 PARM_BOUNDARY): Remove unnecessary casts.
1700 Wed Apr 19 12:02:37 MET DST 2000 Jan Hubicka <jh@suse.cz>
1702 * calls.c (precompute_arguments): Remove must_preallocate and
1704 (expand_call): Update call of precompute_arguments.
1706 * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
1707 check_insn_for_givs): Break out from ...
1708 (strength_reduce) ... here; use for_every_insn_in_loop to call
1709 check_insn_for_givs.
1710 * loop.h (for_every_insn_in_loop): Declare.
1711 (loop_insn_callback): New type.
1713 2000-04-18 Zack Weinberg <zack@wolery.cumb.org>
1715 * cpplib.c (do_pragma_poison): Strings in the token buffer are
1718 Tue Apr 18 16:04:12 2000 Jim Wilson <wilson@cygnus.com>
1720 * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
1723 2000-04-18 Zack Weinberg <zack@wolery.cumb.org>
1725 * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
1727 * configure.in: Delete --disable-cpplib option and all
1728 references to cpp_main.
1729 * configure: Regenerate.
1730 * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
1731 @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
1732 cccp.o, cccp, or cppmain. Link cppmain.o straight to
1733 cpp$(exeext). Add --no-headers to makeinfo command line when
1734 generating INSTALL. Install and uninstall cpp.1 manpage, not
1736 * install.texi: Delete all references to cexp.y/cexp.c.
1737 Delete ancient instructions for compiling GCC on 3b1.
1738 * INSTALL: Regenerate.
1740 * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
1741 mips/t-elf, mips/t-r3900: Remove references to cccp.c.
1742 * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
1744 * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
1745 which is no longer tested anywhere.
1747 * cppinit.c (handle_option): Don't run error message through
1750 Tue Apr 18 14:16:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1752 * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
1753 * cpperror.c (hashtab.h): Now include.
1754 * cppexp.c (hashtab.h): Likewise.
1755 * cpplex.c (hashtab.h): Likewise.
1756 * cppfiles.c (hashtab.h): Likewise.
1757 (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
1758 to htab_find_slot_with_hash.
1759 * cpphash.c (hashtab.h): Now include.
1760 (_cpp_lookup_slot): INSERT is now enum insert_option.
1761 * cpphash.h (_cpp_lookup_slot): Likewise.
1762 * cppinit.c (hashtab.h): Include earlier.
1763 (initialize_builtins): Pass enum to htab_find_slot.
1764 * cpplib.c (hashtab.h): Now include.
1765 (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
1766 (do_pragma_poison, do_assert): Likewise.
1767 * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
1768 htab_find_slot_with_hash.
1769 * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
1770 * tree.c (type_hash_add): Likewise.
1771 (build1): Minor cleanup.
1773 * ggc-common.c: Add missing blanks.
1774 * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
1775 * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
1777 * stmt.c (mark_case_node): New function.
1778 (mark_case_nesting): Call it.
1780 * expmed.c (emit_store_flag): If comparing two-word integer
1781 with zero, can optimize NE, EQ, GE, and LT.
1783 * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
1784 * conflict.c: Minor cleanups.
1785 * optabs.c: Add blank line
1786 * simplify-rtx.c: Minor cleanups.
1788 2000-04-18 Stan Cox <scox@cygnus.com>
1790 * gengenrtl.c (genlegend): Fix misspelling.
1792 2000-04-18 Robert Lipe <robertlipe@usa.net>
1794 * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added. Check that
1795 bitfields of the host compiler are not signed quantities.
1796 * config.in: Regenerate.
1797 * configure: Regenerate.
1798 * system.h (USE_ENUM_BITFIELDS): Added.
1799 (ENUM_BITFIELDS): Added.
1800 * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
1801 (SHORT_ENUM_BUG): Deleted.
1802 * tree.h (tree_common): Members `code', `mode', `built_in_class',
1804 * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
1805 (CODE_FIELD_BUG): Likewise.
1806 * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
1808 * config/m68k/x-ccur (X_CFLAGS): Likewise.
1810 2000-04-18 Mark Mitchell <mark@codesourcery.com>
1812 * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
1815 2000-04-17 Zack Weinberg <zack@wolery.cumb.org>
1817 * cppexp.c (lex): Don't assume tokens are NUL terminated.
1818 * cpplib.c (do_include, do_import, do_include_next,
1819 read_line_number, detect_if_not_defined): Likewise.
1820 * cpphash.c (collect_expansion): Likewise.
1821 (special_symbol, _cpp_macroexpand): Check return from
1823 * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
1824 macros. Delete all uses.
1826 * gcc.dg/cpp-mi.c: Add two more test cases.
1827 * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
1829 2000-04-17 Richard Henderson <rth@cygnus.com>
1831 * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
1832 (reorder_basic_blocks): If no epilogue in rtl, force last block last.
1834 2000-04-17 Mark Mitchell <mark@codesourcery.com>
1836 * function.c (expand_function_start): Use hard_function_value to
1837 compute the RTL to use for DECL_RESULT.
1839 Mon Apr 17 23:35:29 MET DST 2000 Jan Hubicka <jh@suse.cz>
1841 * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
1842 (x86_integer_DFmode_moves, x86_partial_reg_dependency,
1843 x86_memory_mismatch_stall): New global variables.
1844 (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
1845 alloved; fix load penalties for Athlon.
1846 * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
1847 x86_memory_mismatch_stall): Declare.
1848 (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
1849 TARGET_MEMORY_MISMATCH_STALL): New.
1850 * i386.md (athlon scheduling parameters): Fix latencies according to
1851 Athlon Optimization Manual.
1852 (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
1854 (fsqrt instruction patterns): Set athlon_decode to direct.
1855 (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
1856 PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
1857 (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
1858 and TARGET_PARTIAL_REGISTER_STALL machines.
1859 (pushdf_nointeger): New pattern.
1860 (pushdf_integer): Rename from pushdf.
1861 (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
1862 (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
1864 2000-04-17 Richard Henderson <rth@cygnus.com>
1866 * loop.c (canonicalize_condition): Add WANT_REG argument.
1867 Stop the search if we match it.
1868 * expr.h (canonicalize_condition): Update decl.
1869 * predict.c (expected_value_to_br_prob): Use it. Track last
1870 expected value note.
1871 (find_expected_value): Remove.
1873 * reorg.c (mostly_true_jump): Always use BR_PROB if present.
1875 2000-04-17 Zack Weinberg <zack@wolery.cumb.org>
1877 * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
1878 (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
1880 * configure.in: Call AC_FUNC_MMAP_FILE.
1881 * configure: Regenerate.
1882 * config.in: Regenerate.
1884 * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
1885 * fixinc/fixincl.c: Likewise.
1887 2000-04-17 Richard Henderson <rth@cygnus.com>
1889 * builtins.c (expand_builtin_expect): New.
1890 (expand_builtin): Call it.
1891 * builtins.def (BUILT_IN_EXPECT): New.
1892 * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
1893 * extend.texi: Document it.
1895 * predict.c (expected_value_to_br_prob): New.
1896 (find_expected_value): New.
1897 * basic-block.h (expected_value_to_br_prob): Declare.
1898 * toplev.c (rest_of_compilation): Invoke it.
1900 * rtl.h (NOTE_EXPECTED_VALUE): New.
1901 (NOTE_INSN_EXPECTED_VALUE): New.
1902 * rtl.c (note_insn_name): Update.
1903 * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
1904 cases; handle NOTE_INSN_EXPECTED_VALUE.
1906 2000-04-17 Jakub Jelinek <jakub@redhat.com>
1908 * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
1909 leaf sibcall delay slot if flag_pic.
1910 (output_sibcall): Always emit call for leaf sibcall if flag_pic.
1912 2000-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1914 * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
1916 * fixproto: If fix-header fails, exit with an error.
1918 Mon Apr 17 14:59:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
1920 * cse.c (struct check_depdendence_data): New.
1921 (check_dependence): New function.
1922 (invalidate): Use check_depdenence.
1924 2000-04-16 Mark Mitchell <mark@codesourcery.com>
1926 * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
1927 UNITS_PER_WORD is unsigned.
1929 * tree.h (struct tree_common): Remove misleading comment.
1931 2000-04-16 Dave Pitts <dpitts@cozx.com>
1933 * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
1934 message in quotes. Otherwise, IBM's make program treats the '#' as the
1935 start of a comment and ignores the remainder of the line.
1937 * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
1939 * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
1940 * cexp.y (initialize_random_junk): Likewise.
1941 * cppfiles.c (find_include_file): Cast alloca return value.
1942 * cppinit.c (initialize_standard_includes): Likewise.
1943 * cpplib.c (cpp_define, cpp_undef): Likewise.
1944 * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
1945 * final.c (output_asm_insn): Allow for holes in EBCDIC.
1946 * fold-const.c (CHARMASK): New.
1947 (real_hex_to_f): Use it.
1948 * real.c (CHARMASK): New.
1949 (etoasc, asctoeg): Use it.
1950 (asctoeg): EBCDIC lower case characters preceed upper case.
1952 * i370.c (mvs_add_label): Change spacing for coding conventions.
1953 * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
1954 outputing case vectors.
1955 (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
1956 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
1957 since vector in in the data CSECT.
1958 (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
1959 * i370.md (Many patterns): Put the length in the XL directives.
1960 (movdi): Put back STM and MVC in definition.
1961 (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
1962 pattern using the TCA.
1963 * oe.h (CPP_SPEC): Added to allow trigraphs.
1964 * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
1965 not support the "long long" type.
1967 2000-04-16 Mark Mitchell <mark@codesourcery.com>
1969 * config/mips/mips-protos.h (mips_legitimate_address_p): New
1971 (mips_reg_mode_ok_for_base_p): Likewise.
1972 * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
1973 (REG_OK_FOR_INDEX_P): Define unconditionally.
1974 (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
1975 (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
1976 * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
1977 that GET_MODE_SIZE is unsigned.
1978 (mips_reg_mode_ok_for_base_p): Define.
1979 (mips_legitimate_address_p): Likewise. Adjust now
1980 that GET_MODE_SIZE is unsigned.
1981 (block_move_loop): Make the number of bytes unsigned.
1982 (expand_block_move): Likewise.
1983 (function_arg): Make the loop counter unsigned to match the
1986 2000-04-16 Richard Henderson <rth@cygnus.com>
1988 * rtl.h (enum insn_note): New enumeration. Subsume
1989 NOTE_INSN_DELETED and friends.
1990 (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
1991 * rtl.c (note_insn_name): Tweak string order.
1993 2000-04-15 Zack Weinberg <zack@wolery.cumb.org>
1995 * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
1998 * cpplex.c (output_line_command): Remove debugging prints.
1999 (cpp_output_tokens): Don't write out a zero-length buffer or
2000 try to see if it has a newline in it.
2001 (_cpp_expand_to_buffer): Copy the source buffer before pushing.
2002 (_cpp_read_and_prescan): Move shift-down of pushback bytes to
2003 the end of the loop. Use memmove. Don't read past the end of
2004 the buffer. Remove trailing newlines from error messages.
2006 2004-04-16 Neil Booth <NeilB@earthling.net>
2008 * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
2009 * cpplib.c: Add new syntax flags to directive table, and
2012 2000-04-15 Ulrich Drepper <drepper@redhat.com>
2014 * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
2017 2000-04-15 David Edelsohn <edelsohn@gnu.org>
2019 * toplev.c (display_help): Prefix "f" to "sched-verbose=".
2020 * haifa-sched.c: Update -fsched-verbose comments to use "=".
2022 Sat Apr 15 10:59:19 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2024 * Makefile.in (ggc-page.o): Now includes toplev.h.
2025 * ggc-page.c (toplev.h): Now included.
2026 (gc_time): Remove declaration.
2027 (ggc_collect): TIME now long.
2028 * toplev.c (parse_time, varasm_time, gc_time): Still global; all
2030 * toplev.h (gc_time, parse_time, gc_time): New declarations.
2032 * toplev.c: Make *_time variable long to reduce chance of overflow.
2033 (TIMEVAR): Likewise for `otime'.
2034 (print_time): Arg is now long; compute percentage in FP and round.
2035 * toplev.h (print_time): Arg is long.
2037 * tree.c: Minor whitespace changes.
2039 * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
2040 * configure: Rebuilt.
2041 * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
2042 (__fixunsxfDI): Renamed from __fixunsxfdi.
2043 (__fixunsdfDI): Renamed from __fixunsdfdi.
2044 (__fixunssfDI): Renamed from __fixunssfdi.
2045 (__floatdisf): Use proper type in REP_BIT macro.
2046 (__fixunsxfSI): Renamed from __fixunsxfsi.
2047 (__fixunsdfSI): Renamed from __fixunsdfsi.
2048 (__fixunssfSI): Renamed from __fixunssfsi.
2049 * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
2050 Change location of macros and upper-case some names as above.
2051 * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
2052 * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
2054 * varasm.c (assemble_variable): Add cast to remove warning.
2055 (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
2057 * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
2058 * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
2059 region number to -1.
2061 2000-04-15 Richard Earnshaw (rearnsah@arm.com)
2063 * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
2064 call unshare_all_rtl.
2066 * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
2068 Fri Apr 14 16:58:45 2000 Jim Wilson <wilson@cygnus.com>
2070 * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
2071 Use .s1 not .s0 for all FP instructions.
2073 2000-04-14 Zack Weinberg <zack@wolery.cumb.org>
2075 * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
2077 (safe_fwrite, output_line_command): New static functions.
2078 (cpp_expand_to_buffer): Now private to cpplib.
2079 (cpp_scan_buffer): Take a printer.
2081 * cpphash.h: Update prototypes.
2082 * cpplib.h: Update prototypes.
2084 (cpp_buffer): Remove last_nominal_fname.
2085 (cpp_reader): Remove lineno.
2087 * cppmain.c: Use a cpp_printer.
2088 * fix-header.c: No need to inhibit line commands. Call
2089 cpp_start_read with no printer.
2091 * cpperror.c (cpp_notice_from_errno): Provide default name.
2092 * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
2093 (find_include_file, cpp_read_file): Use make_IHASH.
2094 (file_cleanup): Set control_macro and clear
2095 input_stack_listing_current here.
2096 (_cpp_execute_include): Don't output entering-file marker.
2097 * cpphash.c (special_symbol): Look for the line number in the
2098 buffer, not the reader.
2099 (_cpp_macroexpand): No need to disable line commands.
2100 (_cpp_dump_definition): No need to generate line commands.
2101 (dump_hash_helper): Remove excess newline from output.
2102 * cppinit.c (dump_special_to_buffer): No need to generate line
2104 (cpp_printer_init): New.
2105 (cpp_start_read): Take a printer, and start it up if it's not
2106 NULL. No need to generate line commands.
2107 (cpp_finish): Expect no buffers stacked at all. Take a
2108 printer argument, and flush the output buffer if it's not
2110 * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
2111 Don't put two hashes at the beginning of an assertion.
2112 (cpp_get_token): Don't increment pfile->lineno or emit line
2113 commands here. Return EOF if there's no buffer when we get
2115 * cpplib.c (do_define, skip_if_group):
2116 No need to disable line commands.
2117 (_cpp_output_line_command): Delete function.
2118 (do_line): Don't emit line commands here, but set things up so
2119 they will be emitted if necessary. Use _cpp_fake_ihash to
2120 make unique nominal_fnames if necessary.
2121 (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
2122 with 0 for column, not -1.
2123 (_cpp_handle_eof): Don't set the control macro here. Don't
2124 clear input_stack_listing_current here. Don't emit line
2127 2000-04-14 Geoff Keating <geoffk@cygnus.com>
2129 * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
2130 always, use the default SVR4 start address.
2132 * config/rs6000/linux.h (LINK_SPEC): Don't define.
2133 (LINK_SHLIB_SPEC): Define.
2134 (LINK_START_DEFAULT_SPEC): Define.
2135 (LINK_OS_DEFAULT_SPEC): Define.
2137 * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
2139 * config/rs6000/eabi.asm (__eabi): Call __init rather than
2140 __do_global_ctors to handle constructors.
2141 * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
2142 (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
2143 (STARTFILE_MVME_SPEC): Likewise.
2144 (STARTFILE_SIM_SPEC): Likewise.
2145 (ENDFILE_ADS_SPEC): Use crtend.
2146 (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
2147 (ENDFILE_MVME_SPEC): Likewise.
2148 (ENDFILE_SIM_SPEC): Likewise.
2149 (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
2150 (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
2151 (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
2152 (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
2153 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
2154 (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
2155 (CRTSTUFF_T_CFLAGS_S): Define.
2156 * config/rs6000/eabi-ctors.c: Delete.
2158 * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
2161 * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
2165 Fri Apr 14 16:09:02 2000 Jim Wilson <wilson@cygnus.com>
2167 * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
2168 plus mask size is smaller or equal to the mode size.
2170 Fri Apr 14 18:07:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2172 * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
2175 * expr.c (reload.h): Now included.
2176 (emit_block_move): Set volatile_ok when checking for movstr.
2177 (emit_move_1): Check for replacements in addresses in multi-word case.
2178 * Makefile.in (expr.o): Now includes reload.h.
2180 * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
2181 Never have a LIBCALL end a basic block.
2182 (find_basic_blocks_1): Likewise.
2183 Reorganize CALL_INSN cases.
2185 * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
2187 Fri Apr 14 10:54:22 2000 Jim Wilson <wilson@cygnus.com>
2189 * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
2190 completers from mov.ret instruction.
2192 2000-04-14 Richard Henderson <rth@cygnus.com>
2194 * fold-const.c (extract_muldiv): Don't distribute and widen
2195 multiply across plus for non-sizetype unsigned types.
2197 2000-04-14 Richard Henderson <rth@cygnus.com>
2199 * flow.c (find_auto_inc): Don't autoinc eliminable registers.
2200 If the original source is dead in the incr insn, it's dead now.
2202 Fri Apr 14 07:40:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2204 * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
2205 see if DECL_BIT_FIELD needs to still be set.
2207 * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
2209 * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
2210 print_int_cst_octal with something that's not an INTEGER_CST.
2212 * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
2213 and not a SUBREG to a FLOAT rtl.
2215 Thu Apr 13 19:39:56 2000 Clinton Popetz <cpopetz@cygnus.com>
2217 * emit-rtl.c (try_split): Avoid infinite loop if the split
2218 results in a sequence that contains the original insn.
2220 2000-04-13 Andreas Jaeger <aj@suse.de>
2222 * config/mips/mips.c (expand_block_move): Pass alignment
2223 argument to move_by_pieces in bits, not bytes.
2225 * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
2226 __pic__ for little endian.
2228 2000-04-13 Andreas Jaeger <aj@suse.de>
2230 * config/i386/i386-protos.h: Add prototype for
2231 uno_comparison_operator.
2233 Thu Apr 13 15:55:08 MET DST 2000 Jan Hubicka <jh@suse.cz>
2235 * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
2236 * calls.c (ECF_PURE): New flag.
2237 (emit_call_1): Handle ECF_PURE calls.
2238 (initialize_argument_information): Unset ECF_PURE flag too.
2239 (precompute_arguments): Precompute for ECF_PURE too.
2240 (expand_call): Handle ECF_PURE calls too.
2241 (emit_library_call_value_1): Rename no_queue argument to fn_type,
2242 accept value of 2 as pure function.
2243 (emit_library_call_value, emit_library_call): Rename no_queue argument
2245 * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
2247 * tree.h (DECL_IS_PURE): New macro.
2248 (struct tree_decl): Add pure_flag.
2249 * c-common.c (enum attrs): Add attribute "pure".
2250 (init_attributes): Initialize attribute "pure"
2251 (decl_attributes): Handle attribute "pure".
2252 * extend.texi (Attribute "pure"): Document.
2253 * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
2255 (flags_from_decl_or_type): Support attribute "pure".
2257 2000-04-13 Jason Merrill <jason@casey.cygnus.com>
2259 * cpplex.c (_cpp_lex_token): Handle digraphs. Don't null-terminate
2260 the token except for numbers and identifiers.
2262 Thu Apr 13 00:09:16 EDT 2000 John Wehle (john@feith.com)
2264 * i386.c (ix86_expand_binary_operator,
2265 ix86_expand_unary_operator): Check no_new_pseudos
2266 instead of reload_in_progress and reload_completed.
2267 (ix86_split_ashldi, ix86_split_ashrdi,
2268 ix86_split_lshrdi): Check no_new_pseudos instead
2269 of reload_completed.
2271 2000-04-12 Jeffrey A Law (law@cygnus.com)
2273 * function.c (purge_addressof): Unshare any shared rtl created by
2274 purge_addressof and its children.
2276 2000-04-12 Mark Mitchell <mark@codesourcery.com>
2278 * function.c (aggregate_value_p): VOID_TYPE nodes are never
2281 2000-04-05 Andreas Jaeger <aj@suse.de>
2283 * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
2284 not compiling PIC code, add flags for mabi=64.
2285 (SUBTARGET_CPP_SIZE_SPEC): New.
2286 (SUBTARGET_CPP_SPEC): New.
2287 (CPP_PREDEFINES): Define __PIC__ and __pic__. PIC code is default
2288 for MIPS/Linux and lots of code needs these defines.
2290 Wed Apr 12 22:44:11 2000 Hans-Peter Nilsson <hp@axis.com>
2292 * reorg.c (fill_slots_from_thread): Check side_effects_p when
2293 trying the "opposite arithmetic" approach.
2295 Wed Apr 12 20:51:20 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2297 * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
2298 (struct sh_args): Add new field force_mem.
2299 (INIT_CUMULATIVE_ARGS): Initialize it.
2300 (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
2302 Wed Apr 12 17:20:41 MET DST 2000 Jan Hubicka <jh@suse.cz>
2304 * calls.c (expand_call): Do not reverse args in "equal from" field.
2305 (emit_library_call_value_1): Emit_libcall_block for const and pure
2308 Wed Apr 12 16:00:25 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2310 * reload1.c (reload_combine): Don't enable optimization for fixed
2311 registers when encountering a BARRIER.
2313 Wed Apr 12 15:54:11 MET DST 2000 Jan Hubicka <jh@suse.cz>
2315 * builtins.c (expand_builtin_memcmp): Do expansion even with
2316 !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
2318 * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
2319 stack is propertly aligned; add sanity checking for aligned
2321 (expand_library_call_value_1): Add sanity checking for aligned
2324 Wed Apr 12 07:51:54 2000 Catherine Moore <clm@cygnus.com>
2326 * calls.c (emit_library_call_value_1): Change 3rd arg to
2327 locate_and_pad_parm to disregard the setting of partial.
2329 Wed Apr 12 08:47:38 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2331 * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
2333 * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
2334 CALL_INSN from the normal case.
2336 Fri Apr 7 12:23:04 MET DST 2000 Jan Hubicka <jh@suse.cz>
2338 * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
2339 New global variables.
2340 (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
2342 * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
2344 (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
2345 TARGET_ADD_ESP_8): New macros.
2346 * i386.md: Add peep2s to convert esp adjustments to push and pop
2348 (pushsi_prologue, popsi_epilogue): New patterns.
2350 2000-04-12 Jakub Jelinek <jakub@redhat.com>
2352 * real.c (toe64): Remove stale #endif from the last change.
2354 2000-04-12 Stephen L Moshier <moshier@mediaone.net>
2356 * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
2357 * real.c (toe64): Revert previous change.
2359 2000-04-12 Jakub Jelinek <jakub@redhat.com>
2361 * objc/objc-act.c: Include ggc.h.
2362 (objc_tree_index, objc_global_trees): Convert most of the
2363 static tree variables into a static array with previous names
2365 (objc_ellipsis_node): New variable.
2366 (lang_init): Call objc_act_parse_init and c_parse_init.
2367 Create objc_ellipsis_node.
2368 (build_selector_translation_table): Use objc_ellipsis_node instead
2370 (hack_method_prototype): Likewise.
2371 (get_arg_type_list): Likewise.
2372 (start_method_def): Likewise.
2373 (continue_method_def): Likewise.
2374 (gen_method_decl): Likewise.
2375 (ggc_mark_imp_list): New function.
2376 (ggc_mark_hash_table): New function.
2377 (objc_act_parse_init): New function.
2378 * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
2379 * c-parse.in (c_parse_init): For objc add roots of objc specific
2380 local tree variables.
2381 * objc/objc-parse.y: Rebuilt.
2382 * objc/objc-parse.c: Rebuilt.
2383 (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
2385 Wed Apr 12 01:00:44 EDT 2000 John Wehle (john@feith.com)
2387 * cse.c (delete_trivially_dead_insns): Also delete insns
2388 that copy a register to itself where the destination is
2391 2000-04-11 Richard Henderson <rth@cygnus.com>
2393 * flow.c (struct propagate_block_info): Add new_dead, new_live.
2394 (propagate_block): Initialize them. Use them in parallel instead
2395 of one tmp variable, ie revert much of the 0408 and 0407 functional
2396 changes, but keep the structural changes.
2397 (mark_set_regs): Take new_dead from propagate_block_info instead.
2398 (mark_set_1, mark_set_reg): Likewise.
2399 (mark_used_regs): Likewise with new_live.
2400 (mark_used_reg): Likewise. Revert 0408 change.
2402 2000-04-11 Nick Clifton <nickc@cygnus.com>
2404 * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
2406 (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
2408 2000-04-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2410 * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
2411 const section to output a CONSTRUCTOR based on the same conditions
2414 Tue Apr 11 09:55:59 2000 Jeffrey A Law (law@cygnus.com)
2416 * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
2417 * pa/pa-protos.h (output_call): Add additional argument indicating
2418 if the call is a sibling/tail call.
2419 (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
2420 (compute_64bit_ior, cmpib_comparison_operator): Likewise.
2421 (function_arg, function_arg_partial_nregs): Likewise
2422 * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
2423 (emit_move_sequence): Zero extend certain constants as needed
2425 (compute_zdepdi_operands, output_64bit_and): New functions.
2426 (output_64bit_ior, function_arg): Likewise.
2427 (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
2428 (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
2429 (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
2430 (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
2431 (output_bvb): Likewise.
2432 (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
2433 (output_call): New argument 'sibcall'. Generate sibcall sequences
2435 (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT. For
2436 (ouput_arg_descriptor): Do not emit argument descriptors for
2438 * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
2440 (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
2441 (FUNCTION_OK_FOR_SIBALL): Define.
2442 (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
2443 (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
2444 (CPP_SPEC): Use new spec infrastructure.
2445 (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
2446 (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
2447 (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
2448 (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
2449 (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
2450 (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
2451 (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
2452 (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
2453 (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
2454 (FUNCTION_ARG); Call out to C code.
2455 (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
2456 (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
2457 (MIN_UNITS_PER_WORD): Likewise.
2458 * pa/pa.md (cmpdi): New expander.
2459 (scc patterns, movstrsi): Not available for TARGET_64BIT.
2460 (64bit conditional arithmetic): New patterns.
2461 (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
2462 (movsicc): Not available if modes on all the operands to not match.
2463 (movdicc): New expander and associated patterns.
2464 (64bit branches): New patterns.
2465 (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
2466 (pre_ldd, post_std): New patterns.
2467 (64bit addil, load low part): New patterns.
2468 (special movsf constant): Not available for TARGET_64BIT.
2469 (movsf, movdf expanders): Force constants into memory.
2470 (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
2471 (64bit movdf/movdi patterns): New patterns.
2472 (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
2474 (extendqidi2, extendhidi2, extendsidi2): Similarly.
2475 (adddi3 expander): Allow "arith_operand" for second input.
2476 (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
2477 (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
2478 (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
2479 (muldi3): New expander for TARGET_64BIT.
2480 (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
2482 (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
2483 patterns for TARGET_64BIT.
2484 (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
2485 patterns for TARGET_64BIT.
2486 (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
2487 (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
2488 (sibcall_epilogue): New expander.
2489 (casesi): Tweak for TARGET_64BIT.
2490 (call expanders): Set & use the outgoing argument pointer. Use the
2491 64bit call patterns as needed. Add additional arg to output_call.
2492 (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
2493 (sibcall, sibcall_internal_symref): New expanders.
2494 (sibcall_value, sibcall_value_internal_symref
2495 (interspace_jump): Turn into an expander + matching patterns.
2496 (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
2497 * pa/pa64-regs.h: Eliminate trigraph sequences.
2498 * pa/pa64-start.h (TARGET_PA_20): Fix typo.
2500 2000-04-11 Zack Weinberg <zack@wolery.cumb.org>
2502 * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
2503 cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
2504 cpp_token with cpp_ttype everywhere.
2505 * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
2506 Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
2507 CPP_BUF_COL. Line and column numbers are unsigned int, not
2509 * cpplex.c (cpp_buf_line_and_col): Delete.
2510 * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
2511 'long lineno' to 'unsigned int lineno'.
2512 (CPP_BUF_LINE, CPP_BUF_COL): New macros.
2514 2000-04-11 Martin v. Löwis <loewis@informatik.hu-berlin.de>
2516 * extend.texi: ISO C99 is not a draft anymore.
2517 * invoke.texi: ISO C++ is not a draft anymore.
2518 * cpp.texi: __cplusplus is required by the ISO standard.
2520 * extend.texi (-fthis-is-variable): Undocument.
2521 * flags.h (warn_template_debugging): Remove declaration.
2522 * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
2523 -Wenum-clash, -Wtemplate-debugging): Undocument.
2525 2000-04-10 Nick Clifton <nickc@cygnus.com>
2527 * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
2529 (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
2531 (ARM_SIGN_EXTEND): Use HOST_UINT.
2532 (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
2533 (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
2534 (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
2535 (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
2537 * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
2538 (arm_gen_constant): Use HOST_UINT.
2539 (arm_canonicalize_constant): Use HOST_UINT.
2540 (arm_reload_in_hi): Use HOST_UINT.
2541 (arm_reload_out_hi): Use HOST_UINT.
2542 (output_multi_immediate): Use HOST_UINT.
2543 (int_log2): Use HOST_UINT.
2544 (arm_poke_function_name): Use HOST_UINT.
2545 (arm_output_epilogue): Use arm_volatile_func().
2546 (output_thumb_prologue): Use arm_strip_name_encoding().
2548 Mon Apr 10 15:40:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2550 * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
2551 of sequence point problems.
2553 2000-04-10 Nathan Sidwell <nathan@codesourcery.com>
2555 * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
2557 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
2559 Mon Apr 10 07:21:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2561 * sbitmap.h: Whitespace changes and use upper-case macro args.
2562 (struct simple_bitmap_def): All sizes now unsigned.
2563 (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
2564 * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
2565 (sbitmap_vector_alloc): Parms and local vars now unsigned.
2566 (sbitmap_zero): Cast bzero arg to PTR.
2567 (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
2568 (sbitmap_union_of_diffs): Change loop index to unsigned and rework
2569 loop to make structure clearer.
2570 (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
2571 (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
2572 (sbitmap_a_and_b_or_c): Likewise.
2573 (sbitmap_intersection_of_succs): Minor cleanups.
2574 (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
2575 (sbitmap_union_of_preds): Likewise.
2576 (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
2577 (debug_sbitmap): New function.
2579 * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
2580 * c-typeck.c (convert_for_assignment): Likewise.
2582 * expmed.c (init_expmed): Don't free objects we make.
2583 * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
2585 * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
2586 (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
2588 * gcse.c (expr_hash_table_size): Now unsigned.
2589 (compute_ae_gen): Local variable `i' now unsigned.
2590 (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
2591 (compute_transout, hoist_code): Likewise.
2592 (compute_local_properties): Likewise, also hash_table_size.
2593 (alloc_expr_hash_table): N_INSNS now unsigned.
2594 (delete_null_pointer_checks): Mark arg F as unused.
2596 * regrename.c: Minor cleanups, including chang some variables
2599 2000-04-10 Neil Booth <NeilB@earthling.net>
2601 * cpplex.c (skip_block_comment): Use pointer arithmetic rather
2603 * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
2605 2000-04-10 Martin v. Löwis <loewis@informatik.hu-berlin.de>
2607 * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
2608 __classof__, and __headof__ from the list of gnu keywords.
2609 (-ansi): Remove -foperator-names from list of implied options.
2610 Do not call it ANSI C++.
2611 (-foperator-names): Document as -fno-operator-names.
2613 2000-04-09 Zack Weinberg <zack@wolery.cumb.org>
2615 * cpphash.c (timestamp): Delete.
2616 (del_HASHNODE): If type is T_MCONST, free value.cpval.
2617 (special_symbol): Remove unnecessary braces. Remove
2618 T_VERSION. Treat T_STDC like T_CONST unless
2619 STDC_0_IN_SYSTEM_HEADERS. Render both __DATE__ and __TIME__
2620 when one is encountered, then convert them into T_MCONST
2622 * cppinit.c (builtin_array): version_string is T_MCONST.
2623 __STDC__ has a "1" in its cpval. Don't have a terminator
2624 entry. Clean up which entries are dumped.
2625 (initialize_builtins): Only __STDC__ gets the special
2626 -traditional treatment. Count the length of builtin_array.
2627 Render version_string here.
2628 * cpphash.h: Remove T_VERSION. Add T_MCONST.
2629 * cpplib.h (struct cpp_reader): Remove timebuf.
2631 2000-04-09 Richard Henderson <rth@cygnus.com>
2633 * genrecog.c (pred): Update comparison_operator for the unordered
2636 * config/i386/i386.c (no_comparison_operator): Disallow unordered
2638 (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
2639 (uno_comparison_operator): New.
2640 (put_condition_code): Handle UNORDERED/ORDERED.
2641 (unsigned_comparison): Likewise.
2642 (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
2643 (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
2644 (ix86_expand_fp_compare): Use them. Take scratch as argument,
2645 update all callers. Handle all 8 unordered operators.
2646 (ix86_expand_setcc): Lose the unordered argument, update all callers.
2647 (ix86_expand_branch): Likewise. Don't fully expand fp branches.
2648 * config/i386/i386.h (PREDICATE_CODES): Update.
2649 * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
2650 (ix86_expand_branch, ix86_expand_setcc): Update.
2651 * config/i386/i386.md (sunordered, sordered): New.
2652 (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
2653 (bunordered, bordered): New.
2654 (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
2655 (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
2656 (*fp_jcc_5, *fp_jcc_6, and splitters): New.
2658 2000-04-09 Philip Blundell <philb@gnu.org>
2660 * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
2662 Sun Apr 9 15:16:14 EDT 2000 John Wehle (john@feith.com)
2664 * i386.md (fix_truncsfhi2, fix_truncdfhi2,
2665 fix_truncxfhi2): New patterns.
2666 * i386.c (output_fix_trunc): Handle converting to HImode.
2668 2000-04-08 Alex Samuel <samuel@codesourcery.com>
2670 * ssa.c (convert_to_ssa): Eliminate dead code when calling
2672 (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
2673 (for_each_successor_phi): Change parameter to basic_block.
2674 (coalesce_regs_in_successor_phi_nodes): Likewise.
2675 (coalesce_regs_in_copies): Likewise.
2676 (compute_coalesced_reg_partition): Use basic_block instead of index.
2677 * rtl.h (convert_to_ssa): Delete.
2678 (convert_from_ssa): Likewise.
2679 (successor_phi_fn): Likewise.
2680 (for_each_successor_phi): Likewise.
2681 (in_ssa_form): Likewise.
2682 * basic-block.h (convert_to_ssa): Moved from rtl.h.
2683 (convert_from_ssa): Likewise.
2684 (successor_phi_fn): Likewise.
2685 (in_ssa_form): Likewise.
2686 (for_each_successor_phi): Likewise. Change parameter to basic_block.
2687 * flow.c (calculate_global_regs_live): Pass a basic_block to
2688 for_each_successor_phi.
2690 2000-04-08 Richard Henderson <rth@cygnus.com>
2692 * flow.c (mark_used_reg): Use reg_set_p to determine if a register
2693 was modified in the current insn.
2695 2000-04-08 Richard Earnshaw (rearnsha@arm.com)
2697 * arm/thumb.md: Delete.
2698 * arm/thumb-protos.h: Delete.
2700 2000-04-08 Richard Earnshaw (rearnsha@arm.com)
2702 Merge changes from merged-arm-thumb-backend-branch onto trunk.
2704 2000-04-08 Richard Earnshaw (rearnsha@arm.com)
2706 * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
2709 * arm.md (nop): Use the standard RTL expression. Don't code as a
2711 (*arm_nop, *thumb_nop): Delete.
2713 * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
2714 constants. Use casts instead.
2715 (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
2716 output_multi_immediate, arm_poke_function_name): Likewise.
2717 * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
2718 MASK_RETURN_ADDDR): Likewise.
2720 2000-03-31 Richard Earnshaw (rearnsha@arm.com)
2722 * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
2725 * arm.md (eh_epilogue): New function.
2726 * arm.h (struct machine_function): Move to here ...
2727 * arm.c: ... from here.
2728 (arm_output_epilogue): Support epilogues for __builtin_eh_return.
2729 (thumb_exit): Extra parameter eh_ofs. All callers changed.
2730 Handle epilogues for __builtin_eh_return. Make bit-fields unsigned.
2732 2000-03-30 Nick Clifton <nickc@cygnus.com>
2734 * config/arm/semi.h (ASM_SPEC): Restore definition.
2735 (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
2737 * config/arm/elf.h (ASM_SPEC): Restore definition.
2738 (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
2740 * config/arm/arm.h (ASM_SPEC): Remove definition.
2741 (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
2743 2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk>
2745 * config/arm/arm.c: Disable -fschedule-insns for Thumb.
2747 2000-03-24 Nick Clifton <nickc@cygnus.com>
2749 Various formating tidyups, elimination of compile time
2750 warnings and synchronisation with internal sources:
2752 * config/arm/arm-protos.h (assemble_align): Add prototype.
2753 (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
2754 (gen_comapre_reg): Rename to arm_gen_compare_reg.
2755 (arm_return_addr_rtx): Rename to arm_return_addr.
2757 * config/arm/arm.c: Include except.h.
2758 Define shorter typenames for strict minipool_node and struct
2760 (arm_return_in_memory): For WinCE return all structures <= 32 bits
2762 (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
2763 (gen_comapre_reg): Rename to arm_gen_compare_reg.
2765 * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
2767 (ASM_SPEC): Define if not already defined.
2768 (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2770 * config/arm/arm.md: Rename references to gen_rotated_half_load to
2771 arm_gen_rotated_half_load, and references to gen_comapre_reg to
2772 arm_gen_compare_reg.
2773 (indirect_jump): Only accept register operands.
2774 (load_indirect_jump): Keep this pattern since combine can generate
2777 * config/arm/coff.h: Include aout.h.
2778 (MULTILIB_DEFAULTS): Only define if not already defined.
2780 * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
2781 into arm.h (so that COFF ports can support thumb based aliases).
2782 (ASM_SPEC): Move definition into arm.h
2784 * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
2785 redundant apcs spec.
2786 (ASM_SPEC): Move definition to arm.h
2788 * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
2790 * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
2791 for entries in the .bss section
2793 2000-03-23 Nick Clifton <nickc@cygnus.com>
2795 * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
2796 to thumb_far_jump_used_p.
2798 * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
2799 single integer parameter.
2801 * config/arm/arm.c (struct machine_function): Add two new
2802 fields, 'far_jump_used' and 'arg_pointer_live'.
2803 (thumb_far_jump_used_p): Once the decision has been made that
2804 far jumps might be used, always return true.
2805 If being called from the initial elimination offset macro then
2806 do not bother to perform the test if the arg pointer is not
2808 (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
2809 (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
2811 2000-03-23 Richard Earnshaw (rearnsha@arm.com)
2813 * arm.c (output_return_instruction): Handle more cases where we can
2814 return from a function with an ldr instruction.
2815 (arm_output_epilogue): Likewise.
2817 * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
2818 if we need to push a large stack frame and there are no callee-saved
2821 * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
2822 in ARM code if the frame pointer has been eliminated.
2824 * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
2825 unspec_volatile arguments to avoid duplicates.
2826 (consttable_1, consttable_2): Fixes for big-endian mode.
2828 * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
2831 Re-write constant pool code.
2832 * arm.c (minipool_node, minipool_fix): New types.
2833 (minifix): Delete type.
2834 (arm_add_minipool_constant): Delete.
2835 (arm_compute_minipool_offsets, arm_find_barrier,
2836 arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
2837 (get_jump_table_size): Now returns HOST_WIDE_INT.
2838 (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
2840 (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
2841 (assign_minipool_offsets, arm_print_value): Likewise.
2842 (dump_minipool): Rewrite.
2843 (arm_barrier_cost): New function.
2844 (create_fix_barrier): New function.
2845 (push_minipool_barrier): New function.
2846 (push_minipool_fix): Record additional information about the fixup
2848 (note_invalid_constants): Remove push for (UNSPEC 3). Don't
2849 check the mode of what needs fixing.
2850 (arm_reorg): Rewrite.
2852 2000-03-08 Nick Clifton <nickc@cygnus.com>
2854 * config/arm/arm.md (indirect_jump): Force constant addresses into
2857 2000-03-01 Bernd Schmidt <bernds@cygnus.co.uk>
2859 * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
2861 2000-02-24 Nick Clifton <nickc@cygnus.com>
2863 * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
2864 adjust is word aligned.
2865 (thumb_expand_epilogue): Make sure that stack adjust is word
2868 * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
2870 2000-02-24 Bernd Schmidt <bernds@cygnus.com>
2872 * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
2873 pointer relative addresses.
2875 2000-02-10 Richard Earnshaw <rearnsha@arm.com>
2877 * arm.c (find_barrier): Find the last barrier within the allowed
2880 2000-02-09 Nick Clifton <nickc@cygnus.com>
2882 * config/arm/arm-protos.h: Replace PROTO with PARAMS.
2884 2000-02-09 Nick Clifton <nickc@cygnus.com>
2886 * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
2887 ARM_FUNCTION_PROFILER.
2889 * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
2890 ARM_FUNCTION_PROFILER.
2892 * config/arm/linux-oldld.h: Imported from mainline sources.
2894 2000-02-07 Nick Clifton <nickc@cygnus.com>
2896 * config/arm/lib1funcs.asm: Merge in thumb functions from
2899 * config/arm/lib1thumb.asm: Delete.
2901 2000-02-04 Nick Clifton <nickc@cygnus.com>
2903 * config/arm/arm.c: Sychronised with current Red hat local
2905 * config/arm/arm.h: Ditto.
2906 * config/arm/arm-protos.h: Ditto.
2908 2000-02-02 Bernd Schmidt <bernds@cygnus.co.uk>
2910 * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
2912 * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
2915 2000-02-02 Nick Clifton <nickc@cygnus.com>
2917 * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
2919 * config/arm/arm.md (epilogue): Fix rtl checking abort because
2920 (return) was emited using an emit_insn() call.
2922 2000-01-31 Nick Clifton <nickc@cygnus.com>
2924 * config/arm/arm.c (output_thumb_prologue): Fix bug generating
2926 (thumb_exit): Move frame pointer back into hard frame pointer
2927 register if backtracing is being used.
2929 2000-01-13 Richard Earnshaw (rearnsha@arm.com)
2931 * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
2934 1999-12-15 Bernd Schmidt <bernds@cygnus.co.uk>
2936 * config/arm/arm.md (neg_pool_offset): Provide default for new
2938 (arm_movsi_insn): Add neg_pool_offset attribute.
2939 * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
2940 rtx for the insn that starts the scan and an unsigned long for its
2941 address. Add MIN_OFFSET and PINSERTED args. All callers changed.
2942 Change scan to ignore insns before MIN_OFFSET. Store size of inserted
2943 instructions in *PINSERTED.
2944 (struct minipool_fixup): Add MIN_ADDRESS elt.
2945 (sort_fixups): Compute it.
2946 (arm_reorg): Changes to support inserting pools before the insn to be
2949 1999-12-08 Bernd Schmidt <bernds@cygnus.co.uk>
2951 * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
2952 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
2953 * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
2955 Wed Nov 3 10:04:07 1999 Nick Clifton <nickc@cygnus.com>
2957 * config/arm/semi.h (TARGET_VERSION): Do not define if already
2959 (TARGET_DEFAULT): Do not define if already defined.
2961 Tue Nov 2 10:37:25 1999 Nick Clifton <nickc@cygnus.com>
2963 * config/arm/arm.md (anddi3): Allow disjoint source operands.
2964 (iordi3): Allow disjoint source operands.
2965 (xordi3): Allow disjoint source operands.
2966 (negdi2): Permit construction for ARM and Thumb.
2967 (arm_negdi2): Renamed version of old negdi2 pattern.
2968 (thumb_negdi2): New pattern: Only permit non-overlapping
2969 source and destination.
2971 Fri Oct 29 18:52:38 1999 Nick Clifton <nickc@cygnus.com>
2973 * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
2974 scratch low register so that it will not be deleted.
2976 Fri Oct 29 15:23:48 1999 Nick Clifton <nickc@cygnus.com>
2978 * config/arm/pe.h (ARM_PE): Define.
2980 * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
2981 interfacearm attribute if this is a PE toolchain.
2982 (output_return_instruction): Do not emit anything if the function
2983 has the naked attribute set.
2984 (is_called_in_ARM_mode): If the function has the interfacearm
2985 attribute then return true.
2986 (thumb_expand_prologue): Do not generate a prologue for naked
2988 (thumb_expand_epilogue): Do not generate an epilogie for a naked
2990 (output_thumb_prologue): Do not bother if the function is naked.
2991 Strip PE encoding from function name before emitting.
2993 Thu Oct 28 11:05:13 1999 Richard Earnshaw <rearnsha@arm.com>
2995 * arm.md (pic_load_addr): Fix constraints.
2997 * arm.md (casesi_insn): Fix mis-applied patch.
2999 * arm.md ("core" function unit): Add rules for single- and
3001 (All TARGET_THUMB patterns): Add "type" attribute information
3003 * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
3004 the following insn is a CALL.
3006 * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
3008 * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
3009 ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
3010 (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
3012 Wed Oct 27 14:40:48 1999 Nick Clifton <nickc@cygnus.com>
3014 * config/arm/linux-gas.h: oops - this file was missed out when the
3015 branch was created...
3017 Tue Oct 26 17:07:38 1999 Richard Earnshaw <rearnsha@arm.com>
3019 * thumb.c: Deleted. Move contents to ...
3021 * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
3023 * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
3026 * arm-protos.h: Use RTX_CODE and tidy up long lines. Don't
3027 declare a prototype for asm_output_align();
3029 * arm.c (thumb_condition_code): Delete.
3030 (arm_print_operand): Always use arm_condition_code array.
3032 * arm.c (thumb_return_addr_rtx): Delete.
3033 (arm_save_machine_status, arm_restore_machine_status): Delete.
3034 (arm_init_machine_status, arm_mark_machine_status): New functions.
3035 (arm_init_expanders): Update accordingly.
3036 (arm_return_addr): Renamed from arm_return_addr_rtx. Rewrite.
3037 (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
3038 * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
3040 Tue Oct 26 13:24:16 1999 Nick Clifton <nickc@cygnus.com>
3042 * configure.in : Fix arm-*-aout target to use new t-arm-aout
3044 * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
3047 Tue Oct 26 11:27:12 1999 Nick Clifton <nickc@cygnus.com>
3049 * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
3050 stack backtrace structure.
3052 * config/arm/arm-protos.h: Add prototypes for functions defined in
3055 * config/arm/arm.c (arm_override_options): Fix selection of
3056 attributes of default processor.
3058 * config/arm/coff.h: Delete needless #include.
3060 * config/arm/pe.c: Delete unused code.
3062 * config/arm/pe.h (CPP_DEFINES): Delete
3063 (SUBTARGET_CPP_SPEC): Define.
3064 (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
3066 * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
3068 Mon Oct 25 15:42:09 1999 Richard Earnshaw (rearnsha@arm.com)
3070 * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
3072 (CAN_DEBUG_WITHOUT_FP): Define.
3073 (FIXED_REGISTERS): Make r11 call-saved.
3074 (CALL_USED_REGISTERS): Likewise.
3075 (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
3076 (FRAME_POINTER_REQUIRED): Correct logic for determining when a
3077 frame-pointer is required.
3078 (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
3079 * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
3080 if the target normally needs a stack frame in non-leaf functions.
3081 (use_return_insn): Correct logic for determining when a return
3082 instruction can be used.
3083 (output_return_instruction): Handle the frame-pointer register as
3084 a normal register when not TARGET_APCS_FRAME.
3085 (arm_output_prologue): Likewise.
3086 (arm_output_epilogue): Likewise.
3087 (output_func_epilogue): Likewise.
3088 (arm_expand_prologue): Likewise.
3089 * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
3091 * arm.c (use_return_insn): No need to check floating point regs if
3093 (arm_find_minipool_constant): Correct typo; use GET_CODE to get
3094 the code of value stored in the minipool array.
3095 (arm_add_minipool_constant): Likewise.
3097 2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3099 * basic-block.h (conflict_graph_enum_fn): K&R fix.
3101 2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3103 * tree.c (tree_expr_nonnegative_p): New function.
3105 * tree.h (tree_expr_nonnegative_p): Declare.
3107 * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
3108 elide some sign_compare warnings.
3109 (build_conditional_expr): Likewise.
3111 Sat Apr 8 00:21:51 EDT 2000 John Wehle (john@feith.com)
3113 * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
3115 * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
3116 * i386.c (print_operand): Use the proper suffix for a 387 HImode
3117 operand. Abort if a 387 operand has an unsupported size.
3119 2000-04-08 Neil Booth <NeilB@earthling.net>
3121 * cppexp.c (parse_charconst): Null does not end character
3123 * cppinit.c (ISTABLE): Null character handled as whitespace.
3124 * cpplex.c (null_warning): new function.
3125 (skip_string): Emit warning if nulls encountered.
3126 (_cpp_skip_hspace): Emit warning if nulls encountered.
3127 (_cpp_lex_token): Emit warning if nulls encountered. Drop
3131 2000-04-07 Richard Henderson <rth@cygnus.com>
3133 * flow.c (loop_depth): Remove.
3134 (reg_next_use, cc0_live, mem_set_list): Replace with ...
3135 (struct propagate_block_info): New.
3136 (life_analysis): Don't allocate reg_next_use.
3137 (propagate_block_delete_insn): Break out of propagate_block.
3138 Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
3139 (propagate_block_delete_libcall): Likewise.
3140 (propagate_block): Create a propagate_block_info struct to pass
3141 to subroutines. Allocate one not two temporary regsets. Don't
3142 clobber memory for const calls. Look for clobbers in
3143 CALL_INSN_FUNCTION_USAGE.
3144 (mark_set_regs): Recognize COND_EXEC.
3145 (mark_set_reg): Break out of mark_set_1.
3146 (mark_used_reg): Break out of mark_used_regs.
3147 (mark_used_regs): Recognize COND_EXEC.
3148 (insn_dead_p): Use propagate_block_info struct.
3149 (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
3150 (find_auto_inc, try_pre_increment_1): Likewise.
3151 (print_rtl_with_bb): Dump regs live at end too.
3152 (count_reg_sets_1): Pass in loop_depth.
3153 (count_reg_sets, count_reg_references): Likewise.
3154 (recompute_reg_usage): Provide it.
3156 2000-04-07 Richard Henderson <rth@cygnus.com>
3158 * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
3161 2000-04-07 Zack Weinberg <zack@wolery.cumb.org>
3163 * cpplib.c (do_elif): Skip the rest of the line if we're
3164 not going to bother evaluating it.
3165 (skip_if_group): Clear pfile->only_seen_white. Reorder loop
3166 to avoid pointless calls to the lexer.
3168 Fri Apr 7 11:50:54 2000 Jim Wilson <wilson@cygnus.com>
3170 * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
3172 2000-04-07 Jason Merrill <jason@casey.cygnus.com>
3174 * calls.c (expand_call): emit_queue if we're trying a sibcall.
3176 2000-04-07 Jakub Jelinek <jakub@redhat.com>
3178 * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
3180 2000-04-06 Geoff Keating <geoffk@cygnus.com>
3182 * Makefile.in: Build crtbeginS and crtendS like crtbegin and
3183 crtend so they can be multilibbed.
3184 (STAGESTUFF): Remove s-crt and s-crtS.
3186 2000-04-07 Richard Henderson <rth@cygnus.com>
3188 * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
3189 if we discover we need a pseudo and no_new_pseudos is true.
3190 * config/alpha/alpha.md (ne:DI insn): New.
3191 (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
3193 2000-04-07 Richard Henderson <rth@cygnus.com>
3195 * rtl.def (COND_EXEC): New.
3196 * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
3197 * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
3199 * genconfig.c (have_cond_arith_flag): Remove.
3200 (have_cond_exec_flag): New.
3201 (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
3202 (main): Print HAVE_conditional_execution.
3204 * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
3205 (sched_analyze_insn, print_pattern): Likewise.
3206 * reload.c (find_equiv_reg): Likewise.
3207 * rtlanal.c (reg_referenced_p): Likewise.
3208 (note_stores, dead_or_set_regno_p): Likewise.
3209 (reg_overlap_mentioned_p): Rewrite to use a switch.
3211 * ggc.h (struct rtx_def): Forward declare.
3213 * print-rtl.c (debug_rtx_range): New.
3214 * rtl.h (debug_rtx_range): Declare.
3216 * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
3218 * gcse.c (gcse_main): Don't rebuild the CFG here.
3219 (delete_null_pointer_checks): Likewise.
3220 * ssa.c (convert_to_ssa): Likewise.
3221 * toplev.c (rest_of_compilation): Do it here instead. Combine
3222 sequential calls to TIMEVAR. Consistently use `insns' instead of
3223 `get_insns()'. Always split insns after reload when optimizing.
3225 * basic-block.h (merge_blocks_nomove): Declare.
3226 (tidy_fallthru_edge): Declare.
3227 * flow.c (merge_blocks_nomove): Document as merging into previous
3228 blocks. Remove cruft from between blocks; remove all edges out of A.
3229 (tidy_fallthru_edge): Export.
3231 2000-04-06 Alex Samuel <samuel@codesourcery.com>
3233 * ssa.c (compute_conservative_reg_partition): Declare with
3235 * toplev.c (clean_dump_file): Remove previously-deleted function
3236 inadvertantly merged back in.
3237 * conflict.c (conflict_graph_add): Use a single call to
3238 htab_find_slot to look up and insert.
3240 2000-04-06 Richard Henderson <rth@cygnus.com>
3242 * genrecog.c (*): Rename _last_insn to last_insn.
3243 (make_insn_sequence): Set the position of the peephole2 C test
3244 to be at the last insn.
3246 2000-04-06 Richard Henderson <rth@cygnus.com>
3248 * flow.c (compute_flow_dominators): Free worklist.
3250 2000-04-06 Michael Matz <matzmich@cs.tu-berlin.de>
3252 * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
3254 2000-04-06 Alex Samuel <samuel@codesourcery.com>
3256 * rtl.h (INSN_P): New macro.
3257 (successor_phi_fn): New typedef.
3258 (for_each_successor_phi): New prototype.
3259 (in_ssa_form): New variable.
3260 (PHI_NODE_P): Likewise.
3261 * flow.c (calculate_global_regs_live): Add to new_live_at_end from
3262 phi nodes in successors.
3263 (mark_used_regs): Add PHI case.
3264 (set_phi_alternative_reg): New function.
3265 (life_analysis): Assert that dead code elimination is not selected
3267 * toplev.c (to_ssa_time): New variable.
3268 (from_ssa_time): Likewise.
3269 (compile_file): Zero to_ssa_time and from_ssa_time.
3270 Print time to convert to and from SSA.
3271 (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
3272 (print_time): Compute percent fraction as integer.
3273 * ssa.c (PHI_NODE_P): Moved to rtl.h.
3274 (convert_to_ssa): Check if we're already in SSA.
3275 Don't eliminate dead code in life_analysis.
3276 Rerun flow and life analysis at bottom.
3277 (eliminate_phi): Use canonical regnos when adding nodes.
3278 (mark_reg_in_phi): New function.
3279 (mark_phi_and_copy_regs): Likewise.
3280 (convert_from_ssa): Rerun life analysis at top.
3281 Use coalesced partition.
3282 Check for removing a phi node at the end of the block.
3283 (compute_coalesced_reg_partition): New function.
3284 (coalesce_regs_in_copies): Likewise.
3285 (coalesce_reg_in_phi): Likewise.
3286 (coalesce_regs_in_sucessor_phi_nodes): Likewise.
3287 (for_each_successor_phi): Likewise.
3288 (rename_context): New struct.
3289 (rename_block): Use a rename_context with rename_insn_1. When
3290 renaming sets of a subreg, emit a copy of the entire reg first.
3291 (rename_insn_1): Treat data as a rename_context *. Save current
3293 (rename_set_data): Add field set_insn.
3294 * Makefile.in (HASHTAB_H): Move up in file.
3295 (OBSTACK_H): New macro.
3296 (collect2.o): Use OBSTACK_H in dependencies.
3297 (sdbout.o): Likewise.
3298 (emit-rtl.o): Likewise.
3299 (simplify-rtx.o): Likewise.
3300 (fix-header.o): Likewise.
3301 (OBJS): Add conflict.o.
3302 (conflict.o): New rule.
3303 * basic-block.h: Include partition.h.
3304 (conflict_graph): New typedef.
3305 (conflict_graph_enum_fn): Likewise.
3306 (conflict_graph_new): New prototype.
3307 (conflict_graph_delete): Likewise.
3308 (conflict_graph_add): Likewise.
3309 (conflict_graph_conflict_p): Likewise.
3310 (conflict_graph_enum): Likewise.
3311 (conflict_graph_merge_regs): Likewise.
3312 (conflict_graph_print): Likewise.
3313 (conflict_graph_compute): Likewise.
3314 * conflict.c: New file.
3316 2000-04-06 Jason Merrill <jason@yorick.cygnus.com>
3318 * tlink.c (read_repo_files): Don't look for .rpo info for
3321 Thu Apr 6 20:39:26 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
3323 * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
3325 Thu Apr 6 19:34:08 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
3327 * config/sh/lib1funcs.asm (___udivsi3_i4):
3328 ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
3329 only depends on FMOVD_WORKS.
3331 Thu Apr 6 19:11:47 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
3333 * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
3334 make double constant 8-byte aligned.
3336 2000-04-06 Jakub Jelinek <jakub@redhat.com>
3338 * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
3339 movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
3340 movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
3341 (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
3342 Accept storing GENERAL_REGS into offsetable memory.
3343 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
3344 building a TFmode constant other than 0.0L into GENERAL_REGS.
3346 2000-04-06 Clinton Popetz <cpopetz@cygnus.com>
3348 * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
3350 2000-04-06 Zack Weinberg <zack@wolery.cumb.org>
3352 * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
3353 (macro_cleanup): No need to cast pbuf->macro.
3354 (collect_expansion): Use _cpp_get_define_token. Goto done if
3355 it returns VSPACE. Remove check for trailing space after
3357 (_cpp_create_definition): Don't diddle flags here. Return
3359 (unsafe_chars): Handle c1 being EOF.
3360 (push_macro_expansion): Use unsafe_chars for both accidental-paste
3361 checks. Don't push the buffer till after we're done with
3363 * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
3364 (PEEKN, FORWARD, GETC, PEEKC): Use them.
3365 (cpp_push_buffer): Don't set new->alimit. Set new->mark
3367 (_cpp_parse_assertion): Don't NUL terminate.
3368 (_cpp_lex_token): Fix -traditional macro handling. Don't skip
3369 hspace before calling _cpp_parse_assertion. Remove all sets
3370 of only_seen_white. Treat '\f' as hspace. Don't do anything
3371 special with '\n' here.
3372 (maybe_macroexpand): Handle T_EMPTY hash entries without
3373 pushing a buffer at all.
3374 (cpp_get_token): Handle clearing only_seen_white here. Handle
3375 incrementing the line number here. Clear
3376 potential_control_macro as well as only_seen_white, if
3378 (cpp_get_non_space_token): Don't eat CPP_POP tokens.
3379 (_cpp_get_define_token): New function, basically like
3380 _cpp_get_directive_token was but doesn't eat horizontal space.
3381 Don't do anything with only_seen_white here.
3382 (_cpp_get_directive_token): Just call _cpp_get_define_token
3383 repeatedly till it returns non-hspace.
3385 * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
3386 (conditional_skip, skip_if_group): Return int.
3387 (DIRECTIVE_TABLE): Change origin of all conditional directives
3389 (TRAD_DIRECT_P): New macro.
3390 (_cpp_handle_directive): Use _cpp_get_directive_token. Issue
3391 an error for a bogus directive, unless -lang-asm. Use
3392 TRAD_DIRECT_P. Loop calling handler functions till one returns
3394 (get_macro_name): Don't diddle flags here.
3395 (do_define): Diddle flags here. Use _cpp_get_directive_token.
3396 Create T_EMPTY nodes for #define macro /* nothing */.
3397 (do_undef): Don't copy the name. Use _cpp_get_directive_token.
3398 Use hp->name when calling pass_thru_directive.
3399 (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
3400 Return the result of conditional_skip and/or skip_if_group.
3401 Don't call _cpp_output_line_command.
3402 (consider_directive_while_skipping): Use _cpp_get_directive_token.
3403 Issue -Wtraditional warnings as appropriate. Don't complain
3404 about unrecognized directives. If we are to stop skipping,
3405 return the number of the directive that ended the skip.
3406 (skip_if_group): Use _cpp_get_directive_token. Turn off macro
3407 expansion and line commands while skipping. Return the result
3408 of consider_directive_while_skipping, if nonzero.
3409 (do_endif): Just set potential_control_macro here.
3410 (validate_else): Use _cpp_get_directive_token.
3411 (do_assert, do_unassert): Don't save pointers into the
3412 token_buffer across calls to the lexer. Use
3413 _cpp_get_directive_token.
3415 * cpplib.h (cpp_buffer): Remove alimit and colno. Make mark a
3416 pointer, not an offset. Replace 'data', which was a generic
3417 pointer, with 'macro', which points to a struct hashnode.
3418 (cpp_reader): Add 'potential_control_macro' pointer.
3419 * cpphash.h (T_UNUSED): Replace with T_EMPTY.
3420 (CPP_BUF_GET, CPP_FORWARD): Delete.
3421 (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
3422 (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
3423 ACTIVE_MARK_P): Update.
3424 (_cpp_get_define_token): New internal function.
3425 * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
3427 2000-04-05 Benjamin Kosnik <bkoz@cygnus.com>
3429 * configure.in: And here.
3430 * configure: Regenerate.
3431 * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
3432 --enable-libstdcxx-v3 is passed at configure time.
3433 * config.h.in: Regenerate.
3435 2000-04-05 Mark Mitchell <mark@codesourcery.com>
3437 * final.c (final): Use xcalloc to allocate line_note_exists.
3438 * function.c (free_after_compilation): Free the temp_slots.
3439 (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
3440 (combine_temp_slot): Free temp_slots when they get combined.
3441 (purge_addressof): Fix typo in comment.
3442 * stmt.c (mark_goto_fixup): Mark the fixup itself.
3443 (expand_fixup): Allocate the fixup with ggc_alloc_obj.
3445 * ggc.h: Include varray.h.
3446 (ggc_pending_trees): Declare.
3447 (ggc_mark_tree_children): Remove declaration.
3448 (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
3449 * ggc-common.c (ggc_pending_trees): New variable.
3450 (ggc_mark_roots): Call ggc_mark_trees.
3451 (ggc_mark_tree_children): Rename to ggc_mark_trees. Process all
3452 the ggc_pending_trees.
3453 * Makefile.in (GGC_H): New variable. Use it throughout in place
3456 Thu Apr 6 00:30:50 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
3458 * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
3461 Wed Apr 5 23:17:10 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
3463 * sh.c (sh_insn_length_adjustment): New function.
3464 * sh-protos.h (sh_insn_length_adjustment): Declare.
3465 * sh.h (ADJUST_INSN_LENGTH): Use it.
3467 Wed Apr 5 12:35:18 2000 Hans-Peter Nilsson <hp@axis.com>
3469 * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
3470 from the insn where REG_RETVAL is added.
3471 (emit_no_conflict_block): Ditto.
3473 * md.texi (Standard Names): Clarify when movX is needed.
3475 * combine.c (simplify_comparison) [MINUS]: Do not replace
3476 all (op (minus A B) 0) with (op A B).
3478 Wed Apr 5 18:03:31 2000 Toshiyasu Morita (toshi.morita@sega.com)
3479 J"orn Rennecke <amylaar@cygnus.co.uk>
3481 * sh.md (block_lump_real_i4): Add missing clobber of T_REG
3482 (block_lump_real): Likewise.
3484 2000-04-05 Chris Demetriou <cgd@netbsd.org>
3486 * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
3487 remaining non-zero debugging masks.
3489 Wed Apr 5 09:44:07 2000 Jeffrey A Law (law@cygnus.com)
3491 * basic-block.h (verify_flow_info): Declare.
3492 (flow_loop_outside_edge_p): Declare.
3493 * flow.c (verify_flow_info): Remove declaration.
3494 (clear_log_links, flow_loop_outside_edge_p): Likewise.
3496 Wed Apr 5 09:34:26 2000 Philippe De Muyter <phdm@macqel.be>
3498 * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
3501 2000-04-05 Jakub Jelinek <jakub@redhat.com>
3503 * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
3504 snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
3505 seqdi_zero_trunc+1): Allow splits only if registers are
3508 2000-04-04 Ulrich Drepper <drepper@cygnus.com>
3510 * acconfig.h: Add HAVE_GAS_HIDDEN.
3511 * config.in: Regenerated.
3512 * configure.in: Add test for .hidden pseudo-op in gas.
3513 * configure: Regenerated.
3514 * crtstuff.c: Include auto-host.h.
3515 Emit additional .hidden pseudo-op for __dso_handle if the
3516 assembler knows about it.
3518 2000-04-04 Philippe De Muyter <phdm@macqel.be>
3520 * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
3521 before freeing argnames.
3522 * cpplib.c (do_ifndef): Cast return value of xstrdup.
3524 2000-04-05 Michael Meissner <meissner@redhat.com>
3526 * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
3527 Walton <jonboy@gordian.com> to make memory references with update
3528 work wtih -mregnames.
3530 2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3532 * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
3533 (regrename_optimize): Rename variables `def_uses' and
3534 `ext_basic_blocks' to avoid conflicts with similarly named
3535 typedefs in traditional C.
3537 * calls.c (initialize_argument_information): Fix typo in previous
3540 2000-04-04 Richard Henderson <rth@cygnus.com>
3542 * regrename.c (consider_available): Test fixed_regs not
3543 PIC_OFFSET_TABLE_REGNUM.
3545 2000-04-04 Geoff Keating <geoffk@cygnus.com>
3547 * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
3549 (CRTSTUFF_T_CFLAGS_S): Delete definition.
3550 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
3551 (ENDFILE_LINUX_SPEC): Always use crtend.
3552 * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
3553 (powerpc-*-linux-gnu): Likewise.
3554 * configure: Regenerate.
3556 * config/rs6000/eabi.h: Don't include sysv4.h.
3557 (MULTILIB_DEFAULTS): Don't define.
3558 * config/rs6000/eabiaix.h: Don't include eabi.h.
3559 * config/rs6000/eabile.h: Delete.
3560 * config/rs6000/eabilesim.h: Delete.
3561 * config/rs6000/eabisim.h: Don't include eabi.h.
3562 * config/rs6000/linux.h: Don't include sysv4.h.
3563 (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
3564 (MULTILIB_DEFAULTS): Don't redefine.
3565 * config/rs6000/rtems.h: Don't include eabi.h.
3566 * config/rs6000/sol2.h: Don't include sysv4le.h.
3567 * config/rs6000/sysv4le.h: Don't include sysv4.h.
3568 * config/rs6000/t-ppc: Delete.
3569 * config/rs6000/t-ppcgas: Correct comment.
3570 * config/rs6000/t-ppcos: Correct comment. Don't build
3571 multilibs for -fPIC, rather use -fPIC -mstrict-align
3573 * config/rs6000/t-ppc: Delete.
3574 * config/rs6000/vxppc.h: Don't include sysv4.h.
3575 * config/rs6000/vxppcle.h: Delete.
3576 * configure.in: Use multiple header files for p2pc ELF targets
3577 powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
3578 powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
3579 powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
3580 powerpc-vxworks, powerpcle-vxworks. Assume GAS functionality is
3581 always available for these platforms.
3583 2000-04-04 Richard Henderson <rth@cygnus.com>
3585 * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
3587 2000-04-04 Stan Cox <scox@cygnus.com>
3589 * Makefile.in: Add rules for regrename.o
3590 * regrename.c: New file.
3591 * rtl.h (regrename_optimize): Add prototype.
3592 * toplev.c (rename_registers_dump, flag_rename_registers): New variables
3593 (compile_file, decode_d_option): Add support for -frename-registers.
3594 (rest_of_compilation): Call regrename_optimize.
3595 * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
3598 2000-04-04 Martin v. Löwis <loewis@informatik.hu-berlin.de>
3600 * Makefile (gccbug): New target.
3601 (doc): Depend on it.
3602 * gcc.texi (Bugs): Link subnodes.
3604 * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
3605 Document severities, priorities, and classes in bug form.
3607 2000-04-04 Zack Weinberg <zack@wolery.cumb.org>
3609 * cpplex.c (trigraph_map, speccase): Combine into single
3611 (NORMAL, NONTRI): New macros.
3612 (_cpp_read_and_prescan): Change to use unified table. Use
3613 is_hspace to test for whitespace.
3615 * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
3616 definition that doesn't provoke the "empty body in an
3617 if-statement" warning.
3619 2000-04-04 Clinton Popetz <cpopetz@cygnus.com>
3621 * builtins.c (expand_builtin_strlen): Force the source to
3622 be a memory address.
3624 2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3626 * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
3628 Tue Apr 4 19:17:20 MET DST 2000 Jan Hubicka <jh@suse.cz>
3630 * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
3631 ECF_LONGJMP, ECF_FORK_OR_EXEC): New constants.
3632 (ECF_IS_CONST): Rename to ECF_CONST.
3633 (special_function_p): Make static, change interface.
3634 (flags_from_decl_or_type, try_to_integrate): Break out from ...
3635 (expand_call) ... here; convert number of variables to flags.
3636 (emit_library_call_vlue_1): Likewise.
3637 (setjmp_call_p): New function.
3638 (initialize_argument_information): Accepts flags as argument;
3640 (precompute_arguments): Likewise.
3641 * tree.h (special_function_p): Remove.
3642 (setjmp_call_p): Add prototype.
3644 2000-04-04 Jakub Jelinek <jakub@redhat.com>
3646 * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
3647 so that addresses are offsetable by up to 16 bytes.
3648 (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
3649 non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
3652 * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
3653 (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
3654 (movsf): Don't force any constant to memory if target is integer
3656 Move fp_zero_operand check below the const0_rtx check.
3657 (movtf): Likewise. Also allow fp_zero_operand for stores into
3659 (movdf): Likewise. Also allow fp_zero_operand for stores into
3660 memory and into integer hard registers.
3661 (clear_df, clear_dfp, movdf_const_intreg_sp32,
3662 movdf_const_intreg_sp64): Remove.
3663 (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
3665 (movdf_no_e_insn_v9_sp32): New pattern.
3666 (movdf_insn_v9only): Remove.
3667 (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
3668 (movdf_insn_sp64): Remove.
3669 (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
3670 (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
3671 (following splits): Rewrite conditions. Add two new splits
3672 for storing 0.0 into memory and registers.
3673 (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
3674 (movtf_insn_sp32): Redo constraints and conditions.
3675 (movtf_insn_vis_sp32): New pattern.
3676 (movtf_no_e_insn_sp32): Redo constraints and conditions.
3677 (movtf_insn_hq_sp64): Likewise.
3678 (movtf_insn_hq_vis_sp64): New pattern.
3679 (movtf_insn_sp64): Redo constraints and conditions.
3680 (movtf_insn_vis_sp64): New pattern.
3681 (movtf_no_e_insn_sp64): Redo constraints and conditions.
3682 (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
3684 * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
3685 -mvis or -m64 to take down the number of various reload patterns.
3687 Tue Apr 4 00:41:53 2000 Jeffrey A Law (law@cygnus.com)
3689 * pa/pa-64.h: New file.
3690 * pa/pa64-regs.h: New file.
3691 * pa/pa64-start.h: New file.
3692 * pa/t-pa64: New file.
3693 * pa/xm-pa64hpux.h: New file.
3695 2000-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3697 * sparc.c (output_restore_regs): Prototype.
3698 (sparc_emit_float_lib_cmp): Constification.
3700 * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
3702 * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
3705 * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
3706 (get_value_hash, hash_rtx): Likewise.
3708 * ssa.c (compute_conservative_reg_partition): Prototype.
3710 * tree.c (mark_hash_entry): Prototype.
3712 2000-04-03 Zack Weinberg <zack@wolery.cumb.org>
3714 * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
3715 * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
3716 * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
3718 * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
3719 * objc/lang-specs.h: Likewise.
3721 2000-04-03 Neil Booth <NeilB@earthling.net>
3723 * cppexp.c: wrap long lines. New macros CPP_ICE, SYNTAX_ERROR
3724 and SYNTAX_ERROR2. Replace `' in messages with ''.
3725 (op_to_str): Make re-entrant.
3726 (_cpp_parse_expr): Implement new error macros. Use | rather
3727 than || to logically or 2 boolean integers. Simply expression
3728 checking we have a left operand iff needed.
3730 2000-04-03 Nick Clifton <nickc@cygnus.com>
3732 * Makefile.in (diagnostic.o): Depend upon diagnostic.c
3734 2000-04-03 Philip Blundell <philb@gnu.org>
3736 * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
3738 2000-04-03 Felix Lee <flee@cygnus.com>
3740 * fixinc/server.c (find_shell): New function. Avoid $SHELL.
3741 (run_shell): Use it.
3743 2000-04-03 Jonathan Larmour <jlarmour@redhat.co.uk>
3745 * Makefile.in (stmp-int-hdrs): Make include subdir here...
3746 (stmp-fixproto): ...rather than here.
3748 Mon Apr 3 00:50:06 2000 Jason Eckhardt <jle@cygnus.com>
3750 * pa.c (print_operand): Compute 'base' only inside the code paths
3753 2000-04-03 Geoffrey Keating <geoffk@cygnus.com>
3755 * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
3758 2000-04-03 Philipp Thomas <pthomas@suse.de>
3760 * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
3762 Mon Apr 3 00:02:59 2000 Brad Lucier <lucier@math.purdue.edu>
3764 * Makefile.in (alias.o): Depend on $(TREE_H).
3766 2000-04-02 Zack Weinberg <zack@wolery.cumb.org>
3768 * cppinit.c (cpp_start_read): Turn off -Wtraditional if
3770 * cpplib.c (_cpp_handle_directive): Improve warnings for
3771 traditional C and indented directives.
3773 * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
3774 fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
3775 fixinc/inclhack.def: Indent the # of #include_next one space.
3776 * cp/rtti.c: Un-indent #if and #endif.
3778 * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
3779 syntax error, but an error has already been printed.
3780 * cpplex.c (_cpp_parse_assertion): Give a more specific error
3781 message when called with nothing remaining on the line.
3782 (_cpp_lex_token): If _cpp_parse_assertion fails, return an
3783 OTHER token, not an ASSERTION.
3784 * cpplib.c (do_assert): When we create a 'base' node, clear
3785 its aschain pointer.
3787 2000-04-02 Neil Booth <NeilB@earthling.net>
3789 * cppexp.c: New typedef op_t. struct operation and struct
3790 token updated to use it.
3791 (op_to_str): New function.
3792 (_cpp_parse_expr): Error messages modified to use op_to_str.
3794 2000-04-02 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3796 * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
3797 before checking MUST_PASS_IN_STACK.
3799 2000-04-02 Neil Booth <NeilB@earthling.net>
3801 * cppexp.c: New FINISHED dummy token. Combine operator initial
3802 flags and initial priority into a single constant. New
3803 EQUALITY macro. New operator flag SHORT_CIRCUIT.
3804 (_parse_cpp_expr): Implement new constants. Take left operand
3805 checks out of reduction loop. Handle SHORT_CIRCUIT. End of
3806 parse indicated by reducing FINISHED token. Remove new lines
3807 from cpp_error messages.
3809 2000-04-01 Mark Mitchell <mark@codesourcery.com>
3811 * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
3814 2000-04-01 Zack Weinberg <zack@wolery.cumb.org>
3816 * cpplib.c: Include symcat.h. Add 'origin' field to struct
3817 directive. Add origin values to DIRECTIVE_TABLE. Generate
3818 the strings and function names on the fly. Take the #sccs
3819 entry out of the table if SCCS_DIRECTIVE is not defined.
3820 (_cpp_handle_directive): Decide if the # was at the beginning
3821 of the line here. Issue -pedantic warnings for extended
3822 directives here. Warn about K+R directives with the #
3823 indented, and C89/extended directives with the # not indented,
3825 (do_import, do_include_next, do_warning, do_ident, do_sccs,
3826 do_assert, do_unassert): Don't issue pedantic warning here.
3828 * cpphash.h: Add CPP_WTRADITIONAL macro.
3829 * cpplib.h (struct cpp_options): Rename warn_stringify to
3830 warn_traditional; update comments.
3831 * cppinit.c (handle_option): Set warn_traditional not
3833 * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
3834 CPP_WTRADITIONAL (pfile).
3835 * cpplex.c (_cpp_lex_token): Don't decide if directives should
3836 be ignored in -traditional mode here.
3838 * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
3839 to initialize speccase[] and trigraph_map[]. Delete all
3840 references to pfile->input_speccase. Always treat '?' as a
3841 special character. Remove table-initialization code from
3842 _cpp_init_input_buffer.
3844 * cpplib.h (struct cpp_reader): Remove input_speccase field.
3845 * cppinit.c (cpp_cleanup): Don't free input_speccase.
3847 2000-04-01 Richard Henderson <rth@cygnus.com>
3849 * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
3850 (mostlyclean): Likewise.
3852 * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
3853 (struct dump_file_info, enum dump_file_index, dump_file): New.
3854 (open_dump_file): Take a dump_file_index not a suffix, and a decl
3855 not a string. Clean out file if we havn't yet done so. Do nothing
3856 if the dump isn't enabled.
3857 (close_dump_file): Do nothing if the dump isn't open. Dump
3858 graph data if requested.
3859 (dump_rtl, clean_dump_file): Remove.
3860 (compile_file): Don't clean the dump files. Only finalize .bp dump
3861 if flag_test_coverage or flag_branch_probabilities. Only finalize
3862 .combine dump if optimizing. Iterate over dump_file to finalize the
3864 (rest_of_compilation): Update for open_dump_file/close_dump_file.
3865 Convert all uses of dump_rtl.
3866 (decode_d_option): Iterate over dump_file to implement 'a' and to
3867 locate pass-specific dumps.
3869 2000-04-01 Neil Booth <NeilB@earthling.net>
3871 * cppexp.c: Redefine priority constants.
3872 (_cpp_parse_expr): Replace left and right priority scheme with
3873 single priority logic. Move LOGICAL to same place as COMPARE.
3874 Remove bogus check for multiple unary +/- operators.
3876 2000-04-01 Neil Booth <NeilB@earthling.net>
3878 * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
3879 within the switch statement. Binary operations break out of
3880 the switch naturally. '(' tokens handled by forcing
3881 immediate shift. ')' handled by forcing immediate reduce to
3882 the previous '('. New error messages.
3884 2000-03-31 Geoff Keating <geoffk@cygnus.com>
3886 * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
3887 part', it's already in use. Use %K instead. Add a return at the
3888 end of what is now %K.
3889 * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
3891 Sat Apr 1 02:05:29 MET DST 2000 Jan Hubicka <jh@suse.cz>
3893 * builtins.c (expand_builtin_apply): Pass proper parameters to
3894 allocate_dynamic_stack_space.
3895 * calls.c (emit_call_1): Do not adjust stack pointer for SIB,
3896 update stack_pointer_delta; do not update arg_size_so_far.
3897 (compute_argument_block_size): Use stack_delta instead of
3898 stack_pointer_pending and arg_size_so_far.
3899 (expand_call): Add sanity checking for stack_pointer_delta;
3900 save and restore stack_pointer_delta for SIB, use
3901 stack_pointer_delta for alignment; do not update arg_space_so_far.
3902 (emit_library_call_value): Use stack_pointer_delta for alignment.
3903 (store_one_arg): Do not update arg_space_so_far.
3904 * explow.c (adjust_stack, anti_adjust_stack): Update
3905 stack_pointer_delta.
3906 (allocate_dynamic_stack_space): Add sanity checking for
3907 stack_pointer_delta.
3908 * expr.c (init_expr, clear_pending_stack_adjust): Clear
3909 stack_pointer_delta.
3910 (emit_push_insn): Update stack_pointer_delta.
3911 * function.h (struct expr_status): Add x_stack_pointer_delta;
3912 remove x_arg_space_so_far.
3913 (arg_space_so_far): Remove.
3914 (stack_pointer_delta): New macro.
3916 2000-03-31 Zack Weinberg <zack@wolery.cumb.org>
3918 * cpplib.h: Merge struct cpp_options into struct cpp_reader.
3919 Reorder struct cpp_options and struct cpp_reader for better
3920 packing. Replace CPP_OPTIONS macro with CPP_OPTION which
3921 takes two args. Change all 'char' flags to 'unsigned char'.
3922 Move show_column flag into struct cpp_options. Don't
3923 prototype cpp_options_init.
3924 * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
3925 cppinit.c, cpplex.c, cpplib.c:
3926 Replace CPP_OPTIONS (pfile)->whatever with
3927 CPP_OPTION (pfile, whatever), and likewise for
3928 opts = CPP_OPTIONS (pfile); ... opts->whatever;
3930 * cppinit.c (merge_include_chains): Take a cpp_reader *.
3931 Extract CPP_OPTION (pfile, pending) and work with that
3933 (cpp_options_init): Delete.
3934 (cpp_reader_init): Turn on on-by-default options here.
3935 Allocate the pending structure here.
3936 (cl_options, enum opt_code): Define these from the same table,
3937 kept in a large macro. Add -fshow-column and -fno-show-column
3940 * cpperror.c (v_message): If show_column is off, don't print
3943 * cppmain.c: Update for new interface.
3944 * fix-header.c: Likewise.
3946 2000-03-30 Geoff Keating <geoffk@cygnus.com>
3948 * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
3950 * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
3951 are passed to any invocation of AR_FOR_TARGET.
3952 (AR_CREATE_FOR_TARGET): New macro.
3953 (AR_EXTRACT_FOR_TARGET): New macro.
3954 (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
3955 AR_EXTRACT_FOR_TARGET.
3956 (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
3957 in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
3958 `$(AR_FOR_TARGET) x'. Pass AR_CREATE_FOR_TARGET and
3959 AR_EXTRACT_FOR_TARGET to sub-makes.
3961 2000-03-31 Neil Booth <NeilB@earthling.net>
3963 * cppexp.c: Delete SKIP_OPERAND. Correct priority
3965 (_cpp_parse_expr): Check for multiple unary +/- operators.
3966 Correct priorities of ':' and '?'. Treat ')' as having a
3967 value. Ensure conditional expression is not void.
3969 2000-03-31 Mark Mitchell <mark@codesourcery.com>
3971 * alias.c (canon_rtx): Make it global.
3972 (rtx_equal_for_memref_p): CONST_INT equality is now pointer
3974 * cse.c (struct table_elt): Add canon_exp.
3976 (invalidate): Canonicalize expressions only once.
3977 * rtl.h (canon_rtx): Declare.
3979 2000-03-30 Mark Mitchell <mark@codesourcery.com>
3981 * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
3982 * alias.c (reg_known_value): Add comments.
3983 (init_alias_analysis): Likewise.
3984 * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
3986 (cse_basic_block): Fix typo in comment.
3987 * emit-rtl.c: Include hashtab.h.
3988 (const_int_htab): New variable.
3989 (const_int_htab_hash): New function.
3990 (const_int_htab_eq): Likewise.
3991 (rtx_htab_mark_1): Likewise.
3992 (rtx_htab_mark): Likewise.
3993 (gen_rtx_CONST_INT): Cache all CONST_INTs.
3994 (unshare_all_rtx): Fix formatting.
3995 (init_emit_once): Initialize const_int_htab.
3996 * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
3998 * rtl.texi: Document the fact that all CONST_INTs with the same
4001 2000-03-30 Richard Henderson <rth@cygnus.com>
4003 * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.