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