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