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