]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
[multiple changes]
[gcc.git] / gcc / ChangeLog
CommitLineData
f8013343
MM
12000-03-26 Mark Mitchell <mark@codesourcery.com>
2
3 * integrate.c (function_cannot_inline_p): Do inline functions that
4 return `void'.
5
75131237
RK
6Sun Mar 26 11:37:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7
ad41cc2a
RK
8 * stor-layout.c (layout_type, set_sizetype): early_type_list is
9 now a list of TREE_LIST entries, not types.
10 * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
11
75131237
RK
12 * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
13 * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
14 int_bit_position.
15 * config/mips/mips.c (function_arg): Likewise; also remove cast
16 and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
17 (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
18 * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
19 * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
20 (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
21 (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
22 (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
23 (struct mips_arg): arg_number, arg_words, fp_arg_words, and
24 num_adjusts now unsigned.
25 (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
26 * config/sparc/sparc.c (struct function_arg_record_value_parms):
27 NREGS now unsigned.
28 (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
29 as is BITPOS variable; use host_integerp and int_bit_position.
30 (function_arg_record_value_2): Likewise.
31 (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
32 Variable REGNO now unsigned.
33 (function_arg_record_value): NREGS now unsigned.
34
210ee0dd
BS
352000-03-26 Bernd Schmidt <bernds@cygnus.co.uk>
36
37 * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
38
75131237 39
770ae6cc
RK
40Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
41
42 * Rework fields used to describe positions of bitfields and
43 modify sizes to be unsigned and use HOST_WIDE_INT.
44 * alias.c (reg_known_value_size): Now unsigned.
45 * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
46 (really_start_incremental_init): Use bitsize_zero_node.
47 (push_init_level, pop_init_level, output_init_element): Likewise.
48 Use bitsize_unit_node and bitsize_one_node.
49 (output_pending_init_elements, process_init_element): Likewise.
50 * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
51 (make_extraction): Position and length HOST_WIDE_INT and unsigned
52 HOST_WIDE_INT, respectively.
53 (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
54 (num_sign_bit_copies): Returns unsigned.
55 BITWIDTH now unsigned; rework arithmetic.
56 Remove recursive call from arg to MAX.
57 (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
58 (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
59 REGNO now unsigned.
60 (set_nonzero_bit_and_sign_copies): NUM now unsigned.
61 (find_split_point, expand_compound_operation, make_extraction): LEN
62 now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
63 (make_field_assignment): Likewise.
64 (combine_simplify_rtx): Add cast.
65 (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
66 (force_to_mode): WIDTH now unsigned; add cast.
67 (if_then_else_cond): SIZE now unsigned.
68 (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
69 (extended_count): Now returns unsigned.
70 (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
71 Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
72 (simplify_comparison): MODE_WIDTH now unsigned.
73 (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
74 (mark_used_regs_combine): Likewise; rework arithmetic.
75 (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
76 (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
77 (record_promoted_value): REGNO now unsigned.
78 (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
79 (get_last_value): REGNO now unsigned.
80 (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
81 (reg_dead_regno, reg_dead_endregno): Now unsigned.
82 (remove_death): Arg REGNO now unsigned.
83 (move_deaths): REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
84 (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
85 now unsigned.
86 * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
87 * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
88 (struct cse_reg_info): REGNO now unsigned.
89 (cached_regno): Now unsigned.
90 (REGNO_QTY_VALID_P): Add cast.
91 (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
92 (remove_invalid_regs): Likewise.
93 (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
94 as are variables END and I.
95 (get_cse_reg_info, insert): Likewise.
96 (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
97 (canon_hash): Likewise.
98 (insert_regs, lookup_for_remove): REGNO now unsigned.
99 (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
100 New variable RN.
101 * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
102 * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
103 * emit-rtl.c (subreg_realpart_p): Add cast.
104 (operand_subword): Arg I is now unsigned as is var PARTWORDS.
105 (operand_subword_force): Arg I is now unsigned.
106 * except.c (eh_regs): Variable I is now unsigned.
107 * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
108 * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
109 length is unsigned HOST_WIDE_INT; likewise for internal variables.
110 (store_split_bit_field, extract_fixed_bit_field): Likewise.
111 (extract_split_bit_field, store_bit_field, extract_bit_field):
112 Likewise.
113 * expr.c (store_constructor_fields, store_constructor, store_field):
114 Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
115 (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
116 (do_jump): Likewise.
117 (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
118 MAX_SIZE is now unsigned.
119 (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
120 (emit_group_store): Likewise.
121 (emit_move_insn): I now unsigned.
122 (store_constructor): Use host_integerp, tree_low_cst, and
123 bitsize_unit_node.
124 (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
125 Rework all calculations to use trees and new fields.
126 * expr.h (promoted_input_arg): Regno now unsigned.
127 (store_bit_field, extract_bit_field): Adjust types of pos and size.
128 (mark_seen_cases): Arg is HOST_WIDE_INT.
129 * flow.c (verify_wide_reg_1): REGNO now unsigned.
130 * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
131 precisions and alignments are unsigned.
132 (optimize_bit_field_compare, fold_truthop): Likewise.
133 (int_const_binop): Adjust threshold for size_int_type_wide call.
134 (fold_convert): Likewise.
135 (size_int_type_wide): Make table larger and fix thinko that only
136 had half of table used.
137 (all_ones_mask_p, fold): Precisions are unsigned.
138 * function.c (put_reg_info_stack): REGNO is unsigned.
139 (instantiate_decl): Size is HOST_WIDE_INT.
140 (instantiate_virtual_regs): I is unsigned.
141 (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
142 (promoted_input_arg): REGNO is unsigned.
143 * function.h (struct function): x_max_parm_reg is now unsigned.
144 * gcse.c (max_gcse_regno): Now unsigned.
145 (struct null_pointer_info): min_reg and max_reg now unsigned.
146 (lookup_set, next_set): REGNO arg now unsigned.
147 (compute_hash_table): REGNO and I now unsigned.
148 (handle_avail_expr): regnum_for_replacing now unsigned.
149 (cprop_insn): REGNO now unsigned.
150 (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
151 * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
152 * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
153 * hard-reg-set.h (reg_class_size): Now unsigned.
154 * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
155 * jump.c (mark_modified_reg): I now unsigned; add cast.
156 (rtx_equal_for_thread_p): Add cast.
157 * loop.c (max_reg_before_loop): Now unsigned.
158 (struct_movable): REGNO now unsigned.
159 (try_copy_prop): REGNO arg unsigned.
160 (regs_match_p): XN and YN now unsigned.
161 (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
162 (strength_reduce): Likewise; NREGS also unsigned.
163 (first_increment_giv, last_increment_giv unsigned): Now unsigned.
164 * loop.h (struct iv_class): REGNO now unsigned.
165 (max_reg_before_loop, first_increment_giv, last_increment_giv):
166 Now unsigned.
167 * machmode.h (mode_size, mode_unit_size): Now unsigned.
168 (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
169 * optabs.c (expand_binop): I and NWORDS now unsigned.
170 (expand_unop): I now unsigned.
171 * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
172 print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
173 * real.c (significand_size): Now returns unsigned.
174 * real.h (significand_size): Likewise.
175 * regclass.c (reg_class_size): Now unsigned.
176 (choose_hard_reg_mode): Both operands now unsigned.
177 (record_reg_classes): REGNO and NR now unsigned.
178 (reg_scan): NREGS now unsigned.
179 (reg_scan_update): old_max_regno now unsigned.
180 (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
181 * reload.c (find_valid_class): BEST_SIZE now unsigned.
182 (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
183 (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
184 Likewise for variable R.
185 (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
186 as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
187 (find_equiv_reg): Add casts.
188 (regno_clobbered_p): Arg REGNO now unsigned.
189 * reload.h (struct reload): NREGS now unsigned.
190 (refers_to_regno_for_reload_p): Regno args are unsigned.
191 (regno_clobbered_p): Likewise.
192 * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
193 (compute_use_by_pseudos): REGNO now unsigned.
194 (find_reg): I and J now unsigned, new variable K, and change loop
195 variables accordingly; THIS_NREGS now unsigned.
196 (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
197 (spill_hard_reg): REGNO arg now unsigned; add casts.
198 (forget_old_reloads_1): REGNO, NR, and I now unsigned.
199 (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
200 (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
201 END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
202 (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
203 (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
204 (emit_reload_insns): REGNO now unsigned.
205 (reload_cse_move2add): Add cast.
206 (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
207 and rework loop.
208 * resource.c (mark_referenced_resources, mark_set_resources): New
209 variable R; REGNO and LAST_REGNO now unsigned.
210 (mark_target_live_regs): J and REGNO now unsigned.
211 * rtl.c (mode_size, mode_unit_size): Now unsigned.
212 * rtl.h (union rtunion_def): New field rtuint.
213 (XCUINT): New macro.
214 (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
215 (operand_subword, operand_subword_force): Word number is unsigned.
216 (choose_hard_reg_mode): Operands are unsigned.
217 (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
218 (find_regno_note, find_regno_fusage, replace_regs): Likewise.
219 (regno_use_in, combine_instructions, remove_death): Likewise.
220 (reg_scan, reg_scan_update): Likewise.
221 (extended_count): Return is unsigned.
222 * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
223 INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
224 (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
225 (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
226 (reg_reg_last_1): FIRS and LAST now unsigned.
227 (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
228 (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
229 now unsigned.
230 (find_regno_note, regno_use_in): Arg REGNO now unsigned.
231 (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
232 (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
233 (replace_regs): Arg NREGS now unsigned.
234 * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
235 * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
236 (simplify_binary_operation): Likewise.
237 (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
238 THIS_LAST now unsigned.
239 (cselib_record_set): Add cast.
240 * ssa.c (ssa_max_reg_num): Now unsigned.
241 (rename_block): REGNO now unsigned.
242 * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
243 sizes now unsigned.
244 (all_cases_count): Just return -1 not -2.
245 COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
246 Rework tests to use trees whenever possible.
247 Use host_integerp and tree_low_cst.
248 (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
249 Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
250 (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
251 * stor-layout.c (mode_for_size): SIZE arg now unsigned.
252 (smallest_mode_for_size): Likewise.
253 (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
254 KNOWN_ALIGN is now an alignment, so simplify code.
255 Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
256 (start_record_layout): Renamed from new_record_layout_info.
257 Update to new fields.
258 (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
259 New functions.
260 (place_union_field): Renamed from layout_union_field.
261 Update to use new fields in rli.
262 (place_field): Renamed from layout_field.
263 Major rewrite to use new fields in rli; pass alignment to layout_decl.
264 (finalize_record_size): Rework to use new fields in rli and handle
265 union.
266 (compute_record_mode): Rework to simplify and to use new DECL fields.
267 (finalize_type_size): Make rounding more consistent.
268 (finish_union_layout): Deleted.
269 (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
270 (layout_type, case RECORD_TYPE): Call new function names.
271 (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
272 (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
273 (get_best_mode): UNIT is now unsigned; remove casts.
274 * tree.c (bit_position): Compute from new fields.
275 (byte_position, int_byte_position): New functions.
276 (print_type_hash_statistics): Cast to remove warning.
277 (build_range_type): Use host_integerp and tree_low_cst to try to hash.
278 (build_index_type): Likewise; make subtype of sizetype.
279 (build_index_2_type): Pass sizetype to build_range_type.
280 (build_common_tree_nodes): Use size_int and bitsize_int to
281 initialize nodes; add bitsize_{zero,one,unit}_node.
282 * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
283 (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
284 (DECL_PACKED, DECL_BIT_FIELD): Likewise.
285 (DECL_FIELD_BITPOS): Deleted.
286 (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
287 (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
288 (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
289 (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
290 (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
291 (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
292 (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
293 (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
294 (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
295 (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
296 (DECL_ALIGN): Adjust to new field in union.
297 (DECL_OFFSET_ALIGN): New field.
298 (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
299 (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
300 (union tree_decl): Add struct for both aligns.
301 (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
302 (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
303 (struct record_layout_info): Rework fields to have offset
304 alignment and byte and bit position.
305 (start_record_layout, place_field): Renamed from old names.
306 (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
307 (byte_position, int_byte_position): Likewise.
308 (get_inner_reference): Change types of position and length.
309 * unroll.c (unroll_loop): New variable R; use for some loops.
310 MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
311 (calculate_giv_inc): Arg REGNO now unsigned.
312 (copy_loop_body): REGNO and SRC_REGNO now unsigned.
313 * varasm.c (assemble_variable): Clean up handling of size using
314 host_integerp and tree_low_cst.
315 (decode_addr_const): Use byte, not bit, position.
316 (output_constructor): bitpos and offsets are HOST_WIDE_INT;
317 use tree_low_cst and int_bit_position.
318 * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
319
db525e17
JE
320Fri Mar 24 20:13:49 2000 Jason Eckhardt <jle@cygnus.com>
321
322 * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
323 (reorder_block_def): New members eff_head and eff_end.
324 (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
325 (verify_insn_chain): New function.
326 (skip_insns_between_block): Add code to skip deleted insns.
327 Check for note before using.
328 (chain_reorder_blocks): Replace calls to skip_insns_between_block
329 with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
330 Check for note before using.
331 (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
332 (fixup_reorder_chain): Restructure, clean up, defect removal.
333 (reorder_basic_blocks): Remove last_insn and references to it.
334 Moved insn chain verification code into a new function (see above).
335 Delete defective code that sets last insn.
336 Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
337 all blocks.
338
0d74d20f
MH
3392000-03-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
340
341 * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
342
194c7c45
RH
3432000-03-24 Richard Henderson <rth@cygnus.com>
344
345 * tree.c (lang_safe_for_unsave): Remove.
346 (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
347 allowing for two levels of unsafeness. Remove lang hook.
348 * tree.h: Update declarations.
349 * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
350 Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
351 Always fail sibcalls when there are pending cleanups.
352
02ce8f4e
GK
3532000-03-24 Geoff Keating <geoffk@cygnus.com>
354
355 * flow.c (propagate_block): When we delete an ADDR_VEC,
356 also delete the BARRIER following it if there is one.
357
3477addf
RH
3582000-03-24 Richard Henderson <rth@cygnus.com>
359
360 * builtins.c (expand_builtin_bzero): Convert `length' argument
361 to sizetype.
362
7d167afd
JJ
3632000-03-24 Jakub Jelinek <jakub@redhat.com>
364
365 * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
366 comparison if regno's are equal.
367 * calls.c (initialize_argument_informat): Add ecf_flags argument.
368 Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
369 (expand_call): Update caller.
370 Avoid making a sibling call if argument size of the callee is larger
371 than argument size of the caller.
372 Call hard_function_value with outgoing set if in sibcall pass.
373 Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
374
375 * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
376 Change LEAF_REGISTERS from an array initializer to actual array
377 identifier. Move static global variable into the function.
378 (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
379 sequences for leaf functions.
380 * global.c (global_alloc): Likewise.
381 * tm.texi (LEAF_REGISTERS): Update documentation.
382
383 * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
384 TARGET_FLAT leaf disabling hack.
385 (LEAF_REGISTERS): Changed from an array initializer to actual array
386 identifier to avoid duplication and remove the above hack.
387 (FUNCTION_OK_FOR_SIBCALL): Define.
388 * config/sparc/sparc.md (sibcall): New attr type. Use it almost
389 always like call attribute.
390 (eligible_for_sibcall_delay): New attribute.
391 (sibcall): New delay type.
392 (sibcall, sibcall_value, sibcall_epilogue): New expands.
393 (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
394 sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
395 * config/sparc/sparc.c (sparc_leaf_regs): New array.
396 (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
397 New functions.
398 (output_function_epilogue): Move part of the code into
399 output_restore_regs.
400 (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
401 TYPE_SIBCALL.
402 * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
403 prototypes.
404
46238b7d
JJ
405 * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
406 until infrastructure is finished.
407
eef9a168
JL
408Fri Mar 24 13:49:45 2000 Jeffrey A Law (law@cygnus.com)
409
410 * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
411 (save_parm_insns): Not here.
412
e3a709be
KG
4132000-03-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
414
415 * builtins.c (expand_builtin_bzero): New function.
416 (expand_builtin): Handle bzero.
417
418 * builtins.def: Add BUILT_IN_BZERO.
419
420 * c-common.c (c_common_nodes_and_builtins): Provide builtin
421 prototype & function for bzero.
422
265ae617
MM
4232000-03-23 Michael Meissner <meissner@redhat.com>
424
425 * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
426 change adding TARGET_FP to the TF floating point insns, except for
427 trunctfsf2, which generates direct calls to truncdfsf2.
428
1751425f
GK
4292000-03-23 Geoff Keating <geoffk@cygnus.com>
430
431 * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
432 try to protect against middle-end changes that break binary
433 compatibility.
434 (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
435
cf92d7df
MH
4362000-03-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
437
438 * config/c4x/c4x.md (load_immed_address): Add DP reg clobber.
439
25a1fcb4
RK
440Thu Mar 23 17:10:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
441
442 * calls.c (expand_call): If TARGET is passed by reference and
443 is readonly, write a CLOBBER.
444
4b2a62db
KG
4452000-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
446
447 * builtins.c (expand_builtin): Handle bcmp.
448
449 * builtins.def: Add BUILT_IN_BCMP.
450
451 * c-common.c (c_common_nodes_and_builtins): Provide builtin
452 prototype & function for bcmp.
453
d4daa0b4
JW
454Thu Mar 23 11:34:39 2000 Jim Wilson <wilson@cygnus.com>
455
456 * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
457 (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
458 * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
459
fc5b7cda
AH
460Thu Mar 23 16:04:40 2000 Andrew Haley <aph@cygnus.com>
461
462 * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
463 alternative when using -fp64 -gp32.
464
8034da37
JM
4652000-03-22 Jason Merrill <jason@casey.cygnus.com>
466
467 * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
468 * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
469 * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
470
471 * frame.h (frame_state): Revert last change.
472 * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
473 * libgcc2.c (throw_helper): Revert last change.
474
17e71da2
RH
4752000-03-22 Richard Henderson <rth@cygnus.com>
476
477 * stmt.c (expand_asm_operands): Don't promote the temporary.
478
2f939d94
TP
4792000-03-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
480
481 * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
482 * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
483 c_get_alias_set): Likewise.
484 * c-decl.c (duplicate_decls): Likewise.
485 * c-typeck.c (default_conversion,build_unary_op): Likewise.
486 * calls.c (initialize_argument_information): Likewise.
487 * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
488 Likewise.
489 * dwarfout.c (decl_class_context,output_type): Likewise.
490 * expr.c (get_inner_reference): Likewise.
491 * fold-const.c (simple_operand_p,fold): Likewise.
492 * function.c (aggregate_value_p): Likewise.
493 * stmt.c (expand_asm_operands): Likewise.
494 * varasm.c (named_section): Likewise.
495
2c849145
JM
4962000-03-22 Jason Merrill <jason@casey.cygnus.com>
497
2c849145
JM
498 Implement dwarf2 exception handling for the ARM.
499 * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
500 (DWARF_FRAME_RETURN_COLUMN): Define.
501 * config/arm/arm.c (emit_multi_reg_push): Return rtx. Attach
502 REG_FRAME_RELATED_EXPR note.
503 (emit_sfm): Likewise.
504 (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
505 * dwarf2out.c (reg_save): Handle saving a register to itself.
506 (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
507 * except.c (eh_regs): Don't use the static chain reg if it's
508 callee-saved.
509 * frame.h (frame_state): Add cfa_saved field.
510 * frame.c (execute_cfa_insn): Set it.
511 * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
512 the epilogue.
513 * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
514 Now takes a parm.
515 (instantiate_virtual_regs): Adjust.
516 * tm.texi: Adjust.
517 * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
518 * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
519 * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
520
521 * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
522 (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
523
cb1072f4
KG
5242000-03-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
525
526 * builtins.def: New file.
527
528 * Makefile.in (TREE_H): Depend on builtins.def.
529
530 * builtins.c (built_in_names): Use builtins.def.
531
532 * tree.h (built_in_function): Likewise.
533
dc397323
MM
5342000-03-22 Mark Mitchell <mark@codesourcery.com>
535
536 * tree.c (size_in_bytes): Return size_zero_node, not
537 integer_zero_node.
538
fae8209a
GK
5392000-03-22 Geoff Keating <geoffk@cygnus.com>
540
541 * config/fp-bit.c (pack_d): Correct the case when a denormal
542 is rounded up and stops being denormal.
543
ea2e5dbe
RH
5442000-03-21 Richard Henderson <rth@cygnus.com>
545
546 * config/alpha/alpha.c (function_arg): Check for void_type_node
547 before using MUST_PASS_IN_STACK.
548
5d64361b
SC
5492000-03-21 Stephane Carrez <stcarrez@worldnet.fr>
550
551 * regmove.c (combine_stack_adjustments_for_block): Check that
552 the stack pointer is a valid memory address.
553
de76b467
JH
554Wed Mar 22 11:44:50 MET 2000 Jan Hubicka <jh@suse.cz>
555
556 * calls.c: re-install Mar 16 emit_library_call merge.
557
021e2ecc
JJ
5582000-03-21 Jakub Jelinek <jakub@redhat.com>
559
560 * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
561 we cannot be sure that if reload_completed base register will
562 be properly aligned.
563
1fa4609a
RH
5642000-03-21 Richard Henderson <rth@cygnus.com>
565
566 * flow.c (delete_block): Fix typo last change.
567
b8de2d02
MM
5682000-03-21 Mark Mitchell <mark@codesourcery.com>
569
570 * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
571 not COMPLETE_TYPE_P, to check the type of the expression.
572
4287843d
MM
5732000-03-21 Michael Meissner <meissner@redhat.com>
574
575 * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
576 all floating point insns that just tested the macro
577 TARGET_HAS_XFLOATING_LIBS.
578 (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
579 used to only use the gprs.
580
d0f062fb
NS
5812000-03-21 Nathan Sidwell <nathan@codesourcery.com>
582
583 * tree.h (COMPLETE_TYPE_P): New macro.
584 (COMPLETE_OR_VOID_TYPE_P): New macro.
585 (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
586 * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
587 * c-aux-info.c (gen_type): Use them.
588 * c-common.c (c_expand_expr_stmt): Likewise.
589 * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
590 grokdeclarator, grokparms, finish_struct, start_function,
591 store_parm_decls, combine_parm_decls): Likewise.
592 * c-parse.y (cast_expr): Likewise.
593 * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
594 c_size_in_bytes, c_alignof, build_component_ref,
595 build_indirect_ref, build_array_ref, convert_arguments,
596 build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
597 * calls.c (initialize_argument_information): Likewise.
598 * convert.c (convert_to_integer): Likewise.
599 * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
600 * dwarfout.c (location_or_const_value_attribute,
601 output_enumeration_type_die, output_structure_type_die,
602 output_union_type_die, output_type): Likewise.
603 * expr.c (safe_from_p, expand_expr): Likewise.
604 * function.c (assign_parms): Likewise.
605 * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
606 * tree.c (build_array_type, build_function_type,
607 build_method_type, build_offset_type, build_complex_type): Likewise.
608 * c-parse.c, c-parse.h: Regenerated.
609
7d6e6314
MH
6102000-03-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
611
612 * config/c4x/rtems.h: Include config/rtems.h.
613
8053f393
DC
614Tue Mar 21 09:24:00 2000 Denis Chertykov <denisc@overta.ru>
615
616 * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
617 decl is a FUNCTION_DECL
618
1ff5b671
JW
619Mon Mar 20 19:53:53 2000 Jim Wilson <wilson@cygnus.com>
620
621 * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
622 function uses output registers. Don't save RP for leaf functions.
623 Do save RP even if no epilogue.
624 * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
625 (CALL_USED_REGISTERS): Unmark in registers.
626 (REG_ALLOC_ORDER): Move out regs up, to near the top. Move in regs up,
627 to near the middle.
628
1c882ea4
GK
6292000-03-20 Geoff Keating <geoffk@cygnus.com>
630
631 * config/rs6000/rs6000.md (bunordered): New expander.
632 (bordered): New expander.
633 (buneq): New expander.
634 (bunge): New expander.
635 (bungt): New expander.
636 (bunle): New expander.
637 (bunlt): New expander.
638 (bltgt): New expander.
639
640 * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
641 (ccr_bit_negated_p): New function.
642 (print_operand): For %C, generate appropriate cror for UNEQ,
643 UNLT, UNGT, and LTGT. For %T and %t, use ccr_bit_negated_p.
644
bf5e8d0c
AJ
6452000-03-20 Andreas Jaeger <aj@suse.de>
646
647 * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
648 warning.
649
8c57aea6
AJ
650 * tree.h (safe_for_unsave): Prototype.
651
9e11785b
RH
6522000-03-20 Richard Henderson <rth@cygnus.com>
653
654 * regmove.c (stack_memref_p): Fix typo, reorg for readability.
655 (combine_stack_adjustments_for_block): Don't allow sp references
656 in the side of a set we're not fixing up.
657 * toplev.c (rest_of_compilation): Run combine_stack_adjustments
658 after life_analysis.
659
e245d3af
RH
6602000-03-20 Richard Henderson <rth@cygnus.com>
661
662 * calls.c (expand_call): Don't bother generating tail call
663 sequences if there are pending cleanups. Use
664 expand_start_target_temps/expand_end_target_temps to elide
665 cleanups created during sibcall expansion.
666
1c521d41
GK
6672000-03-20 Geoff Keating <geoffk@cygnus.com>
668
669 * configure.in: Set $IFS to a value if it doesn't already have one
670 in the --enable-checking handling.
671 * configure: Regenerate.
672
949d707d
ML
673