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