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